o
    Ô­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 ])}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   úZ/var/www/html/CropPilot/venv/lib/python3.10/site-packages/numpy/lib/tests/test_packbits.pyÚtest_packbits   s   ÿ&r   c                  C   sR   g d¢} dD ] }| D ]}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 ]-}| D ](\}}t |ƒD ]\}}tj||d�}tj||d�}t|jtjƒ t|j|ƒ q7q/q+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-   r'   ©r'   r'   r'   r   r   r   )Ú	enumerater   r(   r   r   r	   r   r)   )r*   r   Úin_shapeÚ
out_shapesÚaxÚ	out_shaper   r   r   r   r   Útest_packbits_empty_with_axis    s&   






ø
üÿÿr7   Ú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r4t||ƒ 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 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:¢‘ƒ ˆ 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 ]=}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   r8   )qéü   é   r   r-   éþ   é   r=   r   r@   é   éð   r   é   r   éÿ   r=   éq   éø   r-   rD   r   rC   é   r   rC   é~   r   éà   r>   rD   éã   éŽ   r@   rA   rK   é?   rC   rH   é8   rJ   rB   r   rJ   é€   rL   rI   é   rM   r=   ép   rM   rD   éñ   rF   r-   rB   rM   rI   rP   rL   rD   rD   éÇ   rI   rO   r   rA   é�   r   r-   rD   rR   r   r   rD   rI   r   rD   r=   rH   rL   r   r   r   r=   rO   rL   r   rG   rR   r=   rE   rD   r-   rN   rM   r=   rO   r@   r   rE   rD   rD   rK   rM   rJ   é�   rF   rJ   rT   rR   rA   rN   r;   ©r8   éüÿÿÿc                    s(   g | ]}t jˆ d | … d d�d ‘qS )Nr   r
   )r   r   )Ú.0Úi©r   r   r   Ú
<listcomp>Y   s   ( z'test_packbits_large.<locals>.<listcomp>r   é   )rN   rN   rN   rA   é   rC   é   r[   r   r   r   rR   éÆ   éÄ   r   é$   é   r   r   )é¾   éº   é²   rd   é–   é×   éW   éS   rh   éÃ   rR   éÎ   éÌ   rk   éŒ   rl   éˆ   rm   é   é(   éi   ék   éK   éJ   éX   )éH   éØ   rF   rQ   rJ   ri   éÊ   éZ   rx   rh   rh   éw   r>   ém   éI   r   éÐ   éô   é½   é-   é)   éh   éz   rx   é   )rE   éx   rF   rv   é˜   r]   é<   é4   é¶   re   re   re   é’   éÒ   rŠ   éö   rD   rD   éß   é—   é   é   r�   éƒ   é£   )éÖ   rŠ   rŠ   r   éD   é   r”   r   ru   rt   é\   r•   éN   én   é'   éµ   é•   éÜ   éÞ   éÚ   r�   rw   éê   éª   é¨   )r   rN   rN   r   éP   rP   é0   r   r   rI   rB   r|   é�   rN   r   rI   rB   r|   r£   r£   é°   rB   rI   r   rN   )r=   r>   r   r   )r@   r=   rG   rN   )rB   r   rC   r   )rD   rN   r   rN   )r   rA   rD   rN   )rK   rL   r   r   )rD   rB   r@   r   )r@   rI   rO   r   )rH   r   rI   r   )rD   rD   rR   r   )rM   rC   rH   r   )rE   rF   rJ   rN   )rJ   rK   rL   r   )r   rC   rP   r   )rG   rF   r-   rN   )rC   rH   rM   r   )rM   rD   rQ   rN   )rB   r@   rI   r   )rJ   rT   r   rN   )rD   rD   r?   r   )r-   rQ   rF   r   )r   rD   rQ   rN   )rN   r   rD   rN   )rI   r   rD   rN   )rF   r=   rH   r   )r   r@   r-   rN   )rI   rE   rF   r   )r   r=   r>   rN   )rK   rL   rI   r   )rI   rO   rL   r   )r@   r-   rN   r   )rE   rD   rD   rN   )rC   rE   rR   r   )r@   rJ   rK   r   )rO   rM   r=   r   )$r=   r@   rB   rD   r   rK   rD   r@   rH   rD   rM   rE   rJ   r   rG   rC   rM   rB   rJ   rD   rH   r-   r   rN   rI   rF   r   rI   r   rK   rI   r@   rE   rC   r@   rO   )$r>   r=   r   rN   rA   rL   rB   rI   r   rD   rC   rF   rK   rC   rF   rH   rD   r@   rT   rD   r   rQ   rD   r   r   r=   r@   rE   r=   rL   rO   r-   rD   rE   rJ   rM   )$r   rG   rC   r   rD   r   r@   rO   rI   rR   rH   rJ   rL   rP   r-   rM   rQ   rI   r   r?   rI   rF   rQ   rD   rD   rH   r-   rF   r>   rI   rL   rN   rD   rR   rK   r=   )$r   rN   r   rN   rN   r   r   r   r   r   r   rN   r   r   rN   r   rN   r   rN   r   r   r   rN   rN   rN   r   rN   r   rN   r   r   r   rN   r   r   r   )rb   ru   rE   r’   r   )rc   rv   r„   rŠ   rN   )rd   rF   rF   rŠ   rN   )rd   rQ   rv   r   r   )re   rJ   r…   r“   r¡   )rf   ri   r]   r”   rP   )rg   rw   r†   r”   r¢   )rh   rx   r‡   r   r   )rh   rx   rˆ   ru   r   )ri   rh   re   rt   rI   )rR   rh   re   r•   rB   )rj   ry   re   r•   r|   )rk   r>   r‰   r–   r£   )rk   rz   rŠ   r—   rN   )rl   r{   rŠ   r˜   r   )rl   r   r‹   r™   rI   )rm   r|   rD   rš   rB   )rm   r}   rD   r›   r|   )rn   r~   rŒ   rœ   r£   )ro   r   r�   r�   r£   )rp   r€   rŽ   r�   r¤   )rq   r�   r�   rw   rB   )rr   r‚   r�   rž   rI   )rs   rx   r�   rŸ   r   )rt   rƒ   r‘   r    rN   Ú
bBhHiIlLqQ)ÚlowÚhighÚsizer	   r
   )r   r   Úrepeatr   r   r	   r   r   Ú
unpackbitsÚrangeÚreshapeÚTÚcopyÚrandomÚrandintÚiinfoÚminÚmaxr¨   Úastyper   r   r   )r8   r   r	   r   ÚrÚrndr   rY   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   Ú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   r:   r<   r;   r
   rµ   rU   r    )r   r   r   rª   r   r	   r   r   r   Ú
ValueErrorr   )r   r   Úb_littleÚ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 ])\}}t |ƒD ] \}}tj|tjd�}tj||d�}t|jtjƒ t|j|ƒ q3q+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/   rÊ   rÊ   )©r   r   r]   rË   r0   rË   r1   r'   r   r   )r2   r   r(   r   rª   r   r	   r)   )r*   Ú	in_shapesr6   r5   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   Úaranger   r   r   rª   Ú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@   r8   r9   Ú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   rU   )rÖ   r8   ©	r   r   r¼   rª   r   r	   r   r   Úpadded1)Úselfr8   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Ö   r8   )
r   r   r¼   rª   r   r	   r   r   Úpadded2r)   )rÛ   r8   rÖ   rÜ   Úpacked0Ú	unpacked0Úpacked1Ú	unpacked1r   r   r   Útest_roundtrip_axisE  s   

ÿ$
ÿ(zTestCount.test_roundtrip_axisr:   )r8   rÖ   r;   c                 C   sF  t j| jdd�}t j|fddi|¤Ž}t|jt jƒ | dd¡dkr5t|| j	d d…d | jj
d …f ƒ nt|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 ƒ d S t|d d …d d d…f | j	d | jj
d …d d…f ƒ d S )Nr   r   r   r8   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¼   ÚzerosrÚ   ÚravelÚpadded1br®   rã   ÚpytestÚmarkÚparametrizer   r«   rß   rá   rè   rê   rë   r   r   r   r   rÒ     sJ    ùø	ÿ
û
rÒ   )Únumpyr   Únumpy.testingr   r   r   rò   Ú	itertoolsr   r   r+   r7   ró   rô   r·   r½   rÀ   rÄ   rÅ   rÍ   rÑ   rÒ   r   r   r   r   Ú<module>   s"    
 "		