
    G/PhD                         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                            dd          d	             Zd
 Zd Zd Zd Zd Zd Z G d d          ZdS )    N)assert_array_equalassert_equalassert_raises)chainc            	         g dg dgg dg dgg} dD ]y}t          j        | |          }t          j        |d          }t          |j        t           j                   t          |t          j        d	gd
ggdgdggg                     zt          t          t           j        t          j        | t                               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bs       ]/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numpy/lib/tests/test_packbits.pytest_packbitsr      s    
))YYY	
))YYY		!A H Hhq###K"%%%QWbh'''1bh#t}'EFFGGGG)R["(1E*B*B*BCCCCC    c                      g d} dD ]e}| D ]`}t          j        ||          }t          j        |          }t          |j        t           j                   t          |j        d           afd 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   s        r   test_packbits_emptyr.      s      F  ( ( 	( 	(Eb)))AAA"(+++$''''		(( (r   c            
      \   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 ]z\  }}t          |          D ]e\  }}t          j        ||          }t          j        ||          }t	          |j        t          j                   t	          |j        |           f{d S )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889	8889	8889	5556	F  1 1$* 	1 	1 Hj!*:!6!6 1 1IHXR000K+++QWbh///QWi0000	1	11 1r   bitorderlittlebigc                 t   t          j        g d          }|                    d          }dD ]}t          j        ||          t          j        d |           }t	          |j        t           j                   g d}| dk    rt          ||           t          t          j        ||           d d	         |           fd
t          dd          D             }t          |g d           
                    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                                        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                            t          j        |          j        t          j        |          j        j        |X          }d||dk    <   |                    |          z  t          j        dY          }t          t          j        |          d d	         |           t)          t*          t           j        t          j        |t,                               d S )ZN(,  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   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<   c                 Z    g | ]'}t          j        d |          d           d         (S )Nr   r   )r   r   ).0ir   s     r   
<listcomp>z'test_packbits_large.<locals>.<listcomp>Y   s7    HHHaR[SqbS---b1HHHr   r      )rS   rS   rS   rF      rH      r`   r   r   r   rW         r   $      r   r   )         ri         W   S   rm      rW         rp      rq      rr      (   i   k   K   J   X   )H      rK   rV   rO   rn      Z   r}   rm   rm   w   rC   m   I   r            -   )   h   z   r}      )rJ   x   rK   r{      rb   <   4      rj   rj   rj         r      rI   rI               r         )   r   r   r   D      r   r   rz   ry   \   r   N   n   '                  r   r|            )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   )rg   rz   rJ   r   r   )rh   r{   r   r   rS   )ri   rK   rK   r   rS   )ri   rV   r{   r   r   )rj   rO   r   r   r   )rk   rn   rb   r   rU   )rl   r|   r   r   r   )rm   r}   r   r   r   )rm   r}   r   rz   r   )rn   rm   rj   ry   rN   )rW   rm   rj   r   rG   )ro   r~   rj   r   r   )rp   rC   r   r   r   )rp   r   r   r   rS   )rq   r   r   r   r   )rq   r   r   r   rN   )rr   r   rI   r   rG   )rr   r   rI   r   r   )rs   r   r   r   r   )rt   r   r   r   r   )ru   r   r   r   r   )rv   r   r   r|   rG   )rw   r   r   r   rN   )rx   r}   r   r   r   )ry   r   r   r   rS   
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   )r<   r   r   r   rrndr   s         @r   test_packbits_larger   4   s    	 N N N 	O 	OA 	
A ~; ~;hq&&&K$:::QWbh'''/ / / uq!$$$2=X>>>ssCQGGG IHHH5B<<HHH1 . . . 	/ 	/ 	/ kk"b!!K!$$$QWbh'''1  1  1  1 6  6  6 ;  ;  ; 4  4  4 >  >  >? 	@ 	@ 	@  K!$$$QWbh'''1 #5333 #5333#5333#5  433#5  433	#5
  433#5  433#5  433#5  433#5  433#5  433#5  433#5  433#5  433#5  433#5  433#5   433!#5"  433##5$  433%#5&  433'#5(  433)#5*  433+#5,  433-#5.  433/#50  4331#52  4333#54  4335#56  4337#58  4339#5:  433;#5<  433=#5>  433?#5@  433A#5B  433C#5D  433E#5F  433G#5 #	6 #	6 #	6J ejjllK!$$$QWbh'''1  3  3  3!7 !7 !7!: !: !:!M !M !MN 	O 	O 	O  K!$$$QWbh'''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88888888888888888888888888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: 	; 	; 	; 	;8  5 5hq&&&iBHUOO$7%'Xe__%8sx&+   - - C1Hszz%   K"%%%2=++CRC0!4444)R["(1E*B*B*BCCCCCr   c                      t          dd          D ]:} dD ]5}t          j        d| ft                    }t          j        |d           6;d S )Ni  i  r	      r
   r   r   )r   r   onesboolr   )sr   xs      r   test_packbits_very_larger      sk     3 # # 	# 	#Ba---AK"""""	## #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                     d S )
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      s    
1#sRD!22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           d S )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!222A
aa   A"(###}QQ:::HM!!e444Eq%   q"+hQJJJKKKq44R4y(+++q"+e!eDDDEEE*bmQ====)R]A;;;;;;r   c                      t          j        dt           j                  } t          j        |           }t	          |j        t           j                   t          |t          j        d                     d S )Nr!   r
   )r   r+   r   r   r   r   r   r   s     r   test_unpackbits_emptyr      sY    
RX&&&A
aA"(###q"(4..)))))r   c            	      f   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 ]o\  }}t          j        |t          j                  }t          j        ||          }t          |j        t          j                   t          |j        |           pd S )Nr!   ))r0   rb   r   )r`   r1   r   r`   rb   r   r   ))r0   r   rb   r`   r   rb   )r`   r   r1   r   )r   r`   rb   )r   r0   rb   )r   r`   r1   r   )r2   rb   r   r   r   r   )r   rb   r   r3   r   r   )r   r   rb   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0 	- 	-LB222Aab)))A"(+++),,,,		-- -r   c            
      v   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                                        } t          t          j        t          j        | d          d          |            d S )Ni  r
   r0   )r1   r   r   r   r   )	r   aranger   r   r   r   tiler   r   )ds    r   test_unpackbits_larger     s    
	#RX&&&Ar{2=#3#344a888r{2=33Q3#8#8991SSqS6BBB
6Ar{2=#;#;#;!DDDaHHH	

Ar{2=#;#;#;!DDDaHHHH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	                                ed
d<    ej        d	ej                  Z
ed
d
d                                         	                                e
d
d<    ej        dej                  Zeed
dd
df<   ej                            dd          ej                            d e ed           eddd                              d                         Zej                            di dd
ig          d             Zej                            dd          ej                            d e ed           e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             Z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   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 |                    d S )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.  s~     199QYFFFTVh777=uxHHHX^RX...8T\'6'%:;;;;;r   kwargsc                     t          j        | j                  }t          j        |fi |}t	          |j        t           j                   t          || j        d d                    d S )Nr   r   )r   r   r   r   s       r   
test_countzTestCount.test_count<  sa     TV$$=22622X^RX...8T\#2#%677777r   rs   c                 2   |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                    d S )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    199QYFFF+df1x@@@M'+35 5 5	Y_bh///9dl7F7<LTV\!_<L3L&MNNN+df1x@@@M'+35 5 5	Y_bh///9dl3CDFLO3CWfW3L&MNNNNNr   r>   )r<   r   r?   c                 h   t          j        | j        d          }t          j        |fddi|}t	          |j        t           j                   |                    dd          dk    r2t          || 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                   |                    dd          dk    r3t          || 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   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    +df1---M'<<<V<<	Y_bh///::j%((E11y$,ss<LTV\!_<L7L*MNNNNy2qqq14<EUdflSToEU@U3VWWW+df1---M'<<<V<<	Y_bh///::j%((E11y$,7GQ7G"7L*MNNNNNyDDbD14<@Pa@PRUSURU@U3VWWWWWr   c                 t   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           d S )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  s    +df1---j"-qKKKK+df1---j"-qKKKKTV$$j"-sCCCCC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        X	 	 	A bhr***G7799GCRCLrx"(+++HdddGLLNN((**HSbSMbhvRX...GGBQBFO[Z):;;[WeeEE"IIuuRb7I7I&J&JKK
< 
< LK <;
< [X$(  8 8 8 [Z):;;[WeeEE!HHeeBB6G6G&H&HIIO O JI <;O$ [X$(+!)D99%(!&66(  X X X"D D D D 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
     sV       I I I I I I I I I I       
D 
D 
D
( 
( 
(1 1 1( %677^D ^D 87^DB# # #@ @ @< < <* * *- - -(I I I[D [D [D [D [D [D [D [D [D [Dr   