
    BwgD                         d dl Zd dlmZmZmZ d dlZd dlmZ d Z	d Z
d Zej                  j                  dd      d	        Zd
 Zd Zd Zd Zd Zd Z G d d      Zy)    N)assert_array_equalassert_equalassert_raises)chainc            	         g dg dgg dg dgg} dD ]}  }t        j                  | |      }t        j                  |d      }t        |j                  t         j
                         t        |t        j                  d	gd
ggdgdggg              t        t        t         j                  t        j                  | t                     y )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bs       T/var/www/horilla/myenv/lib/python3.12/site-packages/numpy/lib/tests/test_packbits.pytest_packbitsr      s    
Y	
Y		!A Hhhq#KK"%QWWbhh'1bhh#t}'EFG	H )R[["((1E*BC    c                      g d} dD ]o  }| D ]h  }t        j                  ||      }t        j                  |      }t        |j                  t         j
                         t        |j                  d       j q y )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   s        r   test_packbits_emptyr.      sf    F  ( 	(Eb)AAA"((+$'		((r   c            
      n   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 ]m  \  }}t        j                  ||      }t        j                  ||      }t	        |j
                  t        j                         t	        |j                  |       o   y )Nr!   r"   ))   r$   r   )r#      r   r"   r%   ))r0   r   r$   r%   )r#   r   r1   r&   )r&   )r   r0   r$   )r   r#   r1   r'   )r1   r   r   r'   r'   r(   )r(   r   r1   r   r(   r)   )r)   r)   r   r   r1   r*   r*   r*   r*   r	   r
   r   )	enumerater   r+   r   r   r   r   r,   )r-   r   in_shape
out_shapesax	out_shaper   r   s           r   test_packbits_empty_with_axisr;       s     
v	;<	;<	;<	89	89	89	56	F  1$* 	1 Hj!*:!6 1IHHXR0KK+QWWbhh/QWWi0	1	11r   bitorderlittlebigc                    t        j                  g d      }|j                  d      }dD ]  }t        j                  ||      }t        j                  |d |       }t	        |j
                  t         j                         g d}| dk(  rt        ||       t        t        j                  ||       d d	 |       t        d
d      D cg c]   }t        j                  |d |  d       d   " }}t        |g d       |j                  dd      }t        j                  |d      }t	        |j
                  t         j                         t        |g dg dg dg dg dg       t        j                  |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 d/g d0g d1g d2g d3g d4g d5g d6g d7g d8g d9       |j                  j                         }t        j                  |d      }t	        |j
                  t         j                         t        |g d:g d;g d<g d=g       t        j                  |d
      }t	        |j
                  t         j                         t        |g d>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        dWD ]  }t        j                  ||      }t         j                  j                  t        j                  |      j                   t        j                  |      j"                  |j$                  |X      }d
||dk(  <   ||j'                  |      z  }t        j                  |d      }t        t        j                  |      d d	 |        t)        t*        t         j                  t        j                  |t,                     y c c}w )YN(,  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r1   r	   r
   r   r<   )q      r   r1         rB   r   rE         r      r      rB   q      r1   rI   r   rH      r   rH   ~   r      rC   rI         rE   rF   rP   ?   rH   rM   8   rO   rG   r   rO      rQ   rN      rR   rB   p   rR   rI      rK   r1   rG   rR   rN   rU   rQ   rI   rI      rN   rT   r   rF      r   r1   rI   rW   r   r   rI   rN   r   rI   rB   rM   rQ   r   r   r   rB   rT   rQ   r   rL   rW   rB   rJ   rI   r1   rS   rR   rB   rT   rE   r   rJ   rI   rI   rP   rR   rO      rK   rO   rY   rW   rF   rS   r?   r<   r      r   r   )rS   rS   rS   rF      rH      r\   r   r   r   rW         r   $      r   )         re         W   S   ri      rW         rl      rm      rn      (   i   k   K   J   X   )H      rK   rV   rO   rj      Z   ry   ri   ri   w   rC   m   I   r            -   )   h   z   ry      )rJ   x   rK   rw      r^   <   4      rf   rf   rf         r      rI   rI               r         )   r   r   r   D      r   r   rv   ru   \   r   N   n   '                  r   rx            )r   rS   rS   r   P   rU   0   r   r   rN   rG   r}      rS   r   rN   rG   r}   r   r      rG   rN   r   rS   )rB   rC   r   r   )rE   rB   rL   rS   )rG   r   rH   r   )rI   rS   r   rS   )r   rF   rI   rS   )rP   rQ   r   r   )rI   rG   rE   r   )rE   rN   rT   r   )rM   r   rN   r   )rI   rI   rW   r   )rR   rH   rM   r   )rJ   rK   rO   rS   )rO   rP   rQ   r   )r   rH   rU   r   )rL   rK   r1   rS   )rH   rM   rR   r   )rR   rI   rV   rS   )rG   rE   rN   r   )rO   rY   r   rS   )rI   rI   rD   r   )r1   rV   rK   r   )r   rI   rV   rS   )rS   r   rI   rS   )rN   r   rI   rS   )rK   rB   rM   r   )r   rE   r1   rS   )rN   rJ   rK   r   )r   rB   rC   rS   )rP   rQ   rN   r   )rN   rT   rQ   r   )rE   r1   rS   r   )rJ   rI   rI   rS   )rH   rJ   rW   r   )rE   rO   rP   r   )rT   rR   rB   r   )$rB   rE   rG   rI   r   rP   rI   rE   rM   rI   rR   rJ   rO   r   rL   rH   rR   rG   rO   rI   rM   r1   r   rS   rN   rK   r   rN   r   rP   rN   rE   rJ   rH   rE   rT   )$rC   rB   r   rS   rF   rQ   rG   rN   r   rI   rH   rK   rP   rH   rK   rM   rI   rE   rY   rI   r   rV   rI   r   r   rB   rE   rJ   rB   rQ   rT   r1   rI   rJ   rO   rR   )$r   rL   rH   r   rI   r   rE   rT   rN   rW   rM   rO   rQ   rU   r1   rR   rV   rN   r   rD   rN   rK   rV   rI   rI   rM   r1   rK   rC   rN   rQ   rS   rI   rW   rP   rB   )$r   rS   r   rS   rS   r   r   r   r   r   r   rS   r   r   rS   r   rS   r   rS   r   r   r   rS   rS   rS   r   rS   r   rS   r   r   r   rS   r   r   r   )rc   rv   rJ   r   r   )rd   rw   r   r   rS   )re   rK   rK   r   rS   )re   rV   rw   r   r   )rf   rO   r   r   r   )rg   rj   r^   r   rU   )rh   rx   r   r   r   )ri   ry   r   r   r   )ri   ry   r   rv   r   )rj   ri   rf   ru   rN   )rW   ri   rf   r   rG   )rk   rz   rf   r   r}   )rl   rC   r   r   r   )rl   r{   r   r   rS   )rm   r|   r   r   r   )rm   r   r   r   rN   )rn   r}   rI   r   rG   )rn   r~   rI   r   r}   )ro   r   r   r   r   )rp   r   r   r   r   )rq   r   r   r   r   )rr   r   r   rx   rG   )rs   r   r   r   rN   )rt   ry   r   r   r   )ru   r   r   r   rS   
bBhHiIlLqQ)lowhighsizer   )r   r   repeatr   r   r   r   r   
unpackbitsrangereshapeTcopyrandomrandintiinfominmaxr   astyper   r   r   )r<   r   r   r   r   rirnds           r   test_packbits_larger   4   s    	 N 	OA 	
A ~;hhq&KK$:QWWbhh'/ uq!$2==X>sCQG <AB<HaR[[Sqb-b1HH1 . 	/ kk"b!KK!$QWWbhh'1  1 6 ; 4 >? 	@  KK!$QWWbhh'1 #53 #53#53#5  4#5  4	#5
  4#5  4#5  4#5  4#5  4#5  4#5  4#5  4#5  4#5  4#5  4#5   4!#5"  4##5$  4%#5&  4'#5(  4)#5*  4+#5,  4-#5.  4/#50  41#52  43#54  45#56  47#58  49#5:  4;#5<  4=#5>  4?#5@  4A#5B  4C#5D  4E#5F  4G#5 #	6J eejjlKK!$QWWbhh'1  3!7!:!MN 	O  KK!$QWWbhh'188888888888888888888888881: 	;M~;D  5hhq&iiBHHUO$7$7%'XXe_%8%8sxx&+   - C1Hszz%  KK"%2==+CR0!45 )R[["((1E*BCu Is   	%Qc                      t        dd      D ]=  } dD ]6  }t        j                  d| ft              }t        j                  |d       8 ? y )Ni  i  r	      r
   r   r   )r   r   onesboolr   )sr   xs      r   test_packbits_very_larger      sK     3 # 	#Ba-AKK"	##r   c            	          t        j                  dgdgdggt         j                        } t        j                  | d      }t	        |j
                  t         j                         t        |t        j                  g dg dg d	g             y )
Nr0   rE      r
   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   s     r   test_unpackbitsr      si    
1#sRD!2A
aa A"((#q"(($<$<$<$> ? @r   c                     t        j                  dgdgdggt         j                        } t        j                  | d      }t	        |j
                  t         j                         t        j                  | dd      }t        j                  | dd	      }t        ||       t        | t        j                  |dd             t        |d d d d d
f   |       t        | t        j                  |dd	             t        t        t         j                  | d       t        t        t         j                  | d       y )Nr0   rE   r   r
   r   r   r>   rA   r?   r   r   rZ   r#   )r   r   r   r   r   r   r   r   r   
ValueErrorr   )r   r   b_littleb_bigs       r   test_pack_unpack_orderr      s    
1#sRD!2A
aa A"((#}}QQ:HMM!!e4Eq% q"++hQJKq4R4y(+q"++e!eDE*bmmQ=)R]]A;r   c                      t        j                  dt         j                        } t        j                  |       }t	        |j
                  t         j                         t        |t        j                  d             y )Nr!   r
   )r   r+   r   r   r   r   r   r   s     r   test_unpackbits_emptyr      sH    
RXX&A
aA"((#q"((4.)r   c            	      |   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                        }t        j                  ||      }t        |j                  t        j                         t        |j                  |       }  y )Nr!   ))r0   r^   r   )r\   r1   r   r\   r^   r   r   ))r0   r   r^   r\   r   r^   )r\   r   r1   r   )r   r\   r^   )r   r0   r^   )r   r\   r1   r   )r2   r^   r   r   r   r   )r   r^   r   r3   r   r   )r   r   r^   r   r4   r   r5   r*   r
   r   )r6   r   r+   r   r   r   r   r,   )r-   	in_shapesr:   r9   r7   r   r   s          r   test_unpackbits_empty_with_axisr      s     	.<	.<	.<	,j9	,j9	,j9	*I6	F !' -	9%i0 	-LB2Aab)A"((+),		--r   c            
      f   t        j                  dt         j                        } t        t        j                  t        j
                  |             |        t        t        j                  t        j
                  | d d d               | d d d          t        j                  | d      } t        t        j                  t        j
                  | d      d      |        | j                  j                         } t        t        j                  t        j
                  | d      d      |        y )Ni  r
   r0   )r1   r   r   r   r   )	r   aranger   r   r   r   tiler   r   )ds    r   test_unpackbits_larger     s    
		#RXX&Ar{{2==#34a8r{{2==3Q3#891SqS6B
6Ar{{2==#;!DaH	
Ar{{2==#;!DaHr   c                      e Zd Z ej                  g dg dg dg dg dg dg dgej
                        Z ej                  d	ej
                        Zej                         ed
d  ej                  d	ej
                        Z
ed
d
d   j                         j                         e
d
d  ej                  dej
                        Zeed
dd
df<   ej                  j                  dd      ej                  j                  d e ed       eddd                  d               Zej                  j                  di dd
ig      d        Zej                  j                  dd      ej                  j                  d e ed       eddd                  d               Zej                  j                  di dd
iddidd
dddidd
dg      d        Zd Zy
)	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   N1   r   )	   r   rE   r<   r=   count:   c                 
   |dk  r|dz
  }n|}t        j                  | j                  |      }t        j                  |||      }t	        |j
                  t         j                         t        || j                  d |        y )Nr   r   rZ   )r   r<   	r   r   r   r   r   r   r   r   padded1)selfr<   r   cutoffpackedunpackeds         r   test_roundtripzTestCount.test_roundtrip.  sf     19QYFFTVVh7==uxHX^^RXX.8T\\'6%:;r   kwargsc                     t        j                  | j                        }t        j                  |fi |}t	        |j
                  t         j                         t        || j                  d d        y )Nr   r   )r   r   r   r   s       r   
test_countzTestCount.test_count<  sP     TVV$==262X^^RXX.8T\\#2%67r   ro   c                 r   |dk  r|dz
  }n|}t        j                  | j                  d|      }t        j                  |d||      }t	        |j
                  t         j                         t        || j                  d |d | j                  j                  d   f          t        j                  | j                  d|      }t        j                  |d||      }t	        |j
                  t         j                         t        || j                  d | j                  j                  d   d |f          y )Nr   r   rA   )r   r   r<   )
r   r   r   r   r   r   r   r   padded2r,   )r   r<   r   r   packed0	unpacked0packed1	unpacked1s           r   test_roundtrip_axiszTestCount.test_roundtrip_axisE  s     19QYFF++dff1x@MM'+35	Y__bhh/9dll7F7<LTVV\\!_<L3L&MN++dff1x@MM'+35	Y__bhh/9dll3CDFFLLO3CWfW3L&MNr   r>   )r<   r   r?   c                    t        j                  | j                  d      }t        j                  |fddi|}t	        |j
                  t         j                         |j                  dd      dk(  r7t        || 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      }t        j                  |fddi|}t	        |j
                  t         j                         |j                  dd      dk(  r7t        || j                  d | j                  j                  d   d df          y t        |d d d d df   | j                  d | j                  j                  d   d df          y )Nr   r   r   r<   r?   r   r   )r   r   r   r   r   r   r   getr   r   r,   )r   r   r   r   r   r   s         r   test_axis_countzTestCount.test_axis_countZ  s|    ++dff1-MM'<<V<	Y__bhh/::j%(E1y$,,ss<LTVV\\!_<L7L*MNy2q14<<EUdffllSToEU@U3VW++dff1-MM'<<V<	Y__bhh/::j%(E1y$,,7GQ7G"7L*MNyDbD14<<@Pa@PRUSURU@U3VWr   c                    t        j                  | j                  d      }t        t        t         j
                  |dd       t        j                  | j                  d      }t        t        t         j
                  |dd       t        j                  | j                        }t        t        t         j
                  |d       y )Nr   r   r   )r   r   r   r   )r   )r   r   r   r   r   r   )r   r   r   r   s       r   test_bad_countzTestCount.test_bad_countr  sv    ++dff1-j"--qK++dff1-j"--qKTVV$j"--sCr   )__name__
__module____qualname__r   r   r   r   zerosr   ravelpadded1br   r   pytestmarkparametrizer   r   r   r   r   r   r    r   r   r   r     s    XX	A bhhr*G779GCRLrxx"((+HddGLLN((*HSbMbhhvRXX.GGBQBFO[[Z):;[[WeE"IuRb7I&JK
< L <
< [[X$( 88 [[Z):;[[WeE!HeBB6G&HIO J <O$ [[X$(+!)D9%(!&6( XX"Dr   r   )numpyr   numpy.testingr   r   r   r   	itertoolsr   r   r.   r;   r  r  r   r   r   r   r   r   r   r   r  r   r   <module>r     s}     I I  
D
(1( %67^D 8^DB#@<*-(I[D [Dr   