a
    ç´«jŠD  ã                   @   s    d dl Zd dlmZmZmZ d dlZd dlmZ dd„ Z	dd„ Z
dd	„ Zej d
d¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZG dd„ dƒZdS )é    N)Úassert_array_equalÚassert_equalÚassert_raises)Úchainc                  C   s”   g d¢g d¢gg d¢g d¢gg} dD ]R}t j| |d�}t j|dd�}t|jt jƒ t|t  d	gd
ggdgdggg¡ƒ q$ttt jt j| t	d�ƒ d S )N)é   r   r   )r   r   r   )r   r   r   )r   r   r   ú?bBhHiIlLqQ©Údtypeéÿÿÿÿ©Úaxisé    é@   éÀ   é    )
ÚnpÚarrayÚpackbitsr   r	   Úuint8r   r   Ú	TypeErrorÚfloat)ÚaÚdtÚarrÚb© r   ú\/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/numpy/lib/tests/test_packbits.pyÚtest_packbits   s    ÿ&r   c                  C   sR   g d¢} dD ]@}| D ]6}t j||d�}t  |¡}t|jt jƒ t|jdƒ qqd S )N)©r   ©é
   é   r   ©r    r   r!   ©r   r    r!   ©r!   r   r   ©r   r!   r   ©r   r   r!   ©r   r   r   r   r   r   )r   Úemptyr   r   r	   r   Úshape)Úshapesr   r)   r   r   r   r   r   Útest_packbits_empty   s    
r+   c               
   C   s¶   ddgfdg d¢fdg d¢fdg d¢fdg d	¢fd
g d¢fdg d¢fdg d¢fg} dD ]Z}| D ]P\}}t |ƒD ]>\}}tj||d�}tj||d�}t|jtjƒ t|j|ƒ qnq^qVd S )Nr   r   ))é   r!   r   )r    é   r   r   r"   ))r,   r   r!   r"   )r    r   r-   r#   )r#   )r   r,   r!   )r   r    r-   r$   )©r-   r   r   r$   r$   r%   )r%   ©r   r-   r   r%   r&   )r&   r&   ©r   r   r-   r'   ©r'   r'   r'   r   r   r   )Ú	enumerater   r(   r   r   r	   r   r)   )r*   r   Úin_shapeZ
out_shapesÚaxÚ	out_shaper   r   r   r   r   Útest_packbits_empty_with_axis    s     






ø
r6   Úbitorder©ÚlittleÚbigc              (      sš  t  g d¢¡}| d¡}dD �]Þ}t j||d�‰ t jˆ d | d�}t|jt jƒ g d¢}| dkrht||ƒ tt j|| d�d d	… |ƒ ‡ fd
d„t	ddƒD ƒ}t|g d¢ƒ ˆ  
dd¡‰ t jˆ dd�}t|jt jƒ t|g d¢g d¢g d¢g d¢g d¢gƒ t jˆ dd�}t|jt jƒ t|g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d ¢g d!¢g d"¢g d#¢g d$¢g d%¢g d&¢g d'¢g d(¢g d)¢g d*¢g d+¢g d ¢g d,¢g d-¢g d.¢g d/¢g d0¢g d1¢g d2¢g d3¢g d4¢g d5¢g d6¢g d7¢g d8¢g d9¢g d:¢g$ƒ ˆ j ¡ ‰ t jˆ dd�}t|jt jƒ t|g d;¢g d<¢g d=¢g d>¢gƒ t jˆ dd�}t|jt jƒ t|g d?¢g d@¢g dA¢g dB¢g dC¢g dD¢g dE¢g dF¢g dG¢g dH¢g dI¢g dJ¢g dK¢g dL¢g dM¢g dN¢g dO¢g dP¢g dQ¢g dR¢g dS¢g dT¢g dU¢g dV¢g dW¢gƒ qdXD ]z}t j||d�‰ t jjt  |¡jt  |¡jˆ j|dY�}d||dk< ˆ | |¡9 ‰ t jˆ dZd�}tt  |¡d d	… |ƒ �qttt jt j|td�ƒ d S )[N(,  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r-   r   r   ©r   r7   )qéü   é   r   r-   éþ   é   r<   r   r?   é   éð   r   é   r   éÿ   r<   éq   éø   r-   rC   r   rB   é   r   rB   é~   r   éà   r=   rC   éã   éŽ   r?   r@   rJ   é?   rB   rG   é8   rI   rA   r   rI   é€   rK   rH   é   rL   r<   ép   rL   rC   éñ   rE   r-   rA   rL   rH   rO   rK   rC   rC   éÇ   rH   rN   r   r@   é�   r   r-   rC   rQ   r   r   rC   rH   r   rC   r<   rG   rK   r   r   r   r<   rN   rK   r   rF   rQ   r<   rD   rC   r-   rM   rL   r<   rN   r?   r   rD   rC   rC   rJ   rL   rI   é�   rE   rI   rS   rQ   r@   rM   r:   ©r7   éüÿÿÿc                    s(   g | ] }t jˆ d | … d d�d ‘qS )Nr   r
   )r   r   )Ú.0Úi©r   r   r   Ú
<listcomp>Y   ó    z'test_packbits_large.<locals>.<listcomp>r   é   )rM   rM   rM   r@   é   rB   é   r[   r   r   r   rQ   éÆ   éÄ   r   é$   é   r   r   )é¾   éº   é²   rd   é–   é×   éW   éS   rh   éÃ   rQ   éÎ   éÌ   rk   éŒ   rl   éˆ   rm   é   é(   éi   ék   éK   éJ   éX   )éH   éØ   rE   rP   rI   ri   éÊ   éZ   rx   rh   rh   éw   r=   ém   éI   r   éÐ   éô   é½   é-   é)   éh   éz   rx   é   )rD   éx   rE   rv   é˜   r]   é<   é4   é¶   re   re   re   é’   éÒ   rŠ   éö   rC   rC   éß   é—   é   é   r�   éƒ   é£   )éÖ   rŠ   rŠ   r   éD   é   r”   r   ru   rt   é\   r•   éN   én   é'   éµ   é•   éÜ   éÞ   éÚ   r�   rw   éê   éª   é¨   )r   rM   rM   r   éP   rO   é0   r   r   rH   rA   r|   é�   rM   r   rH   rA   r|   r£   r£   é°   rA   rH   r   rM   )r<   r=   r   r   )r?   r<   rF   rM   )rA   r   rB   r   )rC   rM   r   rM   )r   r@   rC   rM   )rJ   rK   r   r   )rC   rA   r?   r   )r?   rH   rN   r   )rG   r   rH   r   )rC   rC   rQ   r   )rL   rB   rG   r   )rD   rE   rI   rM   )rI   rJ   rK   r   )r   rB   rO   r   )rF   rE   r-   rM   )rB   rG   rL   r   )rL   rC   rP   rM   )rA   r?   rH   r   )rI   rS   r   rM   )rC   rC   r>   r   )r-   rP   rE   r   )r   rC   rP   rM   )rM   r   rC   rM   )rH   r   rC   rM   )rE   r<   rG   r   )r   r?   r-   rM   )rH   rD   rE   r   )r   r<   r=   rM   )rJ   rK   rH   r   )rH   rN   rK   r   )r?   r-   rM   r   )rD   rC   rC   rM   )rB   rD   rQ   r   )r?   rI   rJ   r   )rN   rL   r<   r   )$r<   r?   rA   rC   r   rJ   rC   r?   rG   rC   rL   rD   rI   r   rF   rB   rL   rA   rI   rC   rG   r-   r   rM   rH   rE   r   rH   r   rJ   rH   r?   rD   rB   r?   rN   )$r=   r<   r   rM   r@   rK   rA   rH   r   rC   rB   rE   rJ   rB   rE   rG   rC   r?   rS   rC   r   rP   rC   r   r   r<   r?   rD   r<   rK   rN   r-   rC   rD   rI   rL   )$r   rF   rB   r   rC   r   r?   rN   rH   rQ   rG   rI   rK   rO   r-   rL   rP   rH   r   r>   rH   rE   rP   rC   rC   rG   r-   rE   r=   rH   rK   rM   rC   rQ   rJ   r<   )$r   rM   r   rM   rM   r   r   r   r   r   r   rM   r   r   rM   r   rM   r   rM   r   r   r   rM   rM   rM   r   rM   r   rM   r   r   r   rM   r   r   r   )rb   ru   rD   r’   r   )rc   rv   r„   rŠ   rM   )rd   rE   rE   rŠ   rM   )rd   rP   rv   r   r   )re   rI   r…   r“   r¡   )rf   ri   r]   r”   rO   )rg   rw   r†   r”   r¢   )rh   rx   r‡   r   r   )rh   rx   rˆ   ru   r   )ri   rh   re   rt   rH   )rQ   rh   re   r•   rA   )rj   ry   re   r•   r|   )rk   r=   r‰   r–   r£   )rk   rz   rŠ   r—   rM   )rl   r{   rŠ   r˜   r   )rl   r   r‹   r™   rH   )rm   r|   rC   rš   rA   )rm   r}   rC   r›   r|   )rn   r~   rŒ   rœ   r£   )ro   r   r�   r�   r£   )rp   r€   rŽ   r�   r¤   )rq   r�   r�   rw   rA   )rr   r‚   r�   rž   rH   )rs   rx   r�   rŸ   r   )rt   rƒ   r‘   r    rM   Z
bBhHiIlLqQ)ÚlowÚhighÚsizer	   r
   )r   r   Úrepeatr   r   r	   r   r   Ú
unpackbitsÚrangeZreshapeÚTÚcopyÚrandomÚrandintZiinfoÚminÚmaxr§   Zastyper   r   r   )r7   r   r	   r   ÚrZrndr   rX   r   Útest_packbits_large4   sÖ    



ô
Ý%

ô
èþr²   c                  C   s>   t ddƒD ].} dD ]$}tjd| ftd�}tj|dd� qq
d S )Ni¶  i  r   éÈ   r   r   r   )rª   r   ZonesÚboolr   )Úsr   Úxr   r   r   Útest_packbits_very_largeÖ   s    r·   c                  C   s^   t jdgdgdggt jd�} t j| dd�}t|jt jƒ t|t  g d¢g d¢g d	¢g¡ƒ d S )
Nr,   r?   é   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r©   r   r	   r   ©r   r   r   r   r   Útest_unpackbitsß   s    þrº   c                  C   sÒ   t jdgdgdggt jd�} t j| dd�}t|jt jƒ t j| ddd�}t j| dd	d�}t||ƒ t| t j|ddd�ƒ t|d d …d d d
…f |ƒ t| t j|dd	d�ƒ tt	t j| dd� tt
t j| dd� d S )Nr,   r?   r¸   r   r   r   r9   r;   r:   r
   r±   rT   r    )r   r   r   r©   r   r	   r   r   r   Ú
ValueErrorr   )r   r   Zb_littleZb_bigr   r   r   Útest_pack_unpack_orderè   s    
r¼   c                  C   s<   t jdt jd�} t  | ¡}t|jt jƒ t|t  d¡ƒ d S )Nr   r   )r   r(   r   r©   r   r	   r   r¹   r   r   r   Útest_unpackbits_empty÷   s    
r½   c               	   C   s®   dgdfg d¢dfg d¢dfg d¢dfg d¢d	fg d
¢dfg d¢dfg d¢dfg} | D ]R\}}t |ƒD ]@\}}tj|tjd�}tj||d�}t|jtjƒ t|j|ƒ qfqVd S )Nr   ))r,   r]   r   )r[   r-   r   ©r[   r]   r   r¾   ))r,   r   r]   ©r[   r   r]   )r[   r   r-   r¿   )©r   r[   r]   )r   r,   r]   )r   r[   r-   rÀ   )r.   ©r]   r   r   rÁ   rÁ   )©r   r]   r   r/   rÂ   rÂ   )©r   r   r]   rÃ   r0   rÃ   r1   r'   r   r   )r2   r   r(   r   r©   r   r	   r)   )r*   Z	in_shapesr5   r4   r3   r   r   r   r   r   Útest_unpackbits_empty_with_axisþ   s    






ø
rÄ   c               	   C   s¦   t jdt jd�} tt  t  | ¡¡| ƒ tt  t  | d d d… ¡¡| d d d… ƒ t  | d¡} tt jt j| dd�dd�| ƒ | j ¡ } tt jt j| dd�dd�| ƒ d S )Ni  r   r,   )r-   r   r   r   r   )	r   Zaranger   r   r   r©   Ztiler«   r¬   )Údr   r   r   Útest_unpackbits_large  s    *
rÆ   c                   @   s„  e Zd Zejg d¢g d¢g d¢g d¢g d¢g d¢g d¢gejd�Zejd	ejd�Ze 	¡ ed
d…< ejd	ejd�Z
ed
d
d…  ¡  	¡ e
d
d…< ejdejd�Zeed
d…d
d…f< ej dd¡ej deedƒedddƒƒ¡dd„ ƒƒZej di dd
ig¡dd„ ƒZej dd¡ej deedƒedddƒƒ¡dd„ ƒƒZej di dd
iddidd
dœddidd
dœg¡d d!„ ƒZd"d#„ Zd
S )$Ú	TestCount)r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   é9   Né1   r
   )é	   rÊ   r?   r7   r8   Úcounté:   éÇÿÿÿc                 C   s\   |dk r|d }n|}t j| j|d�}t j|||d�}t|jt jƒ t|| jd |… ƒ d S )Nr   r   rT   )rË   r7   ©	r   r   r¶   r©   r   r	   r   r   Úpadded1)Úselfr7   rË   ÚcutoffÚpackedÚunpackedr   r   r   Útest_roundtrip.  s    
zTestCount.test_roundtripÚkwargsc                 C   sD   t  | j¡}t j|fi |¤Ž}t|jt jƒ t|| jd d… ƒ d S )Nr
   rÎ   )rÐ   rÕ   rÒ   rÓ   r   r   r   Ú
test_count<  s    zTestCount.test_countrn   é÷ÿÿÿc                 C   sÆ   |dk r|d }n|}t j| jd|d�}t j|d||d�}t|jt jƒ t|| jd |…d | jj	d …f ƒ t j| jd|d�}t j|d||d�}t|jt jƒ t|| jd | jj	d …d |…f ƒ d S )Nr   r   r;   )r   rË   r7   )
r   r   r¶   r©   r   r	   r   r   Úpadded2r)   )rÐ   r7   rË   rÑ   Úpacked0Ú	unpacked0Úpacked1Ú	unpacked1r   r   r   Útest_roundtrip_axisE  s    

ÿ$
ÿzTestCount.test_roundtrip_axisr9   )r7   rË   r:   c                 C   sF  t j| jdd�}t j|fddi|¤Ž}t|jt jƒ | dd¡dkrjt|| j	d d…d | jj
d …f ƒ n6t|d d d…d d …f | j	d d…d | jj
d …f ƒ t j| jdd�}t j|fddi|¤Ž}t|jt jƒ | dd¡dk�rt|| j	d | jj
d …d d…f ƒ n6t|d d …d d d…f | j	d | jj
d …d d…f ƒ d S )Nr   r   r   r7   r:   r
   r   )r   r   r¶   r©   r   r	   r   Úgetr   rØ   r)   )rÐ   rÕ   rÙ   rÚ   rÛ   rÜ   r   r   r   Útest_axis_countZ  s    &6&zTestCount.test_axis_countc                 C   sj   t j| jdd�}ttt j|ddd� t j| jdd�}ttt j|ddd� t  | j¡}ttt j|dd� d S )Nr   r   r×   )r   rË   r   rÍ   )rË   )r   r   r¶   r   r»   r©   )rÐ   rÙ   rÛ   rÒ   r   r   r   Útest_bad_countr  s    zTestCount.test_bad_count)Ú__name__Ú
__module__Ú__qualname__r   r   r   r¶   ZzerosrÏ   ZravelZpadded1br¬   rØ   ÚpytestÚmarkÚparametrizer   rª   rÔ   rÖ   rÝ   rß   rà   r   r   r   r   rÇ     sH   ùø	ÿ
û
rÇ   )Únumpyr   Znumpy.testingr   r   r   rä   Ú	itertoolsr   r   r+   r6   rå   ræ   r²   r·   rº   r¼   r½   rÄ   rÆ   rÇ   r   r   r   r   Ú<module>   s    
 "		