3
KdD                 @   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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   dddgdddggdddgdddggg} xZdD ]R}t j| |d}t j|d
d}t|jt j t|t jdgdggdgd	ggg q.W ttt jt j| t	d d S )N   r   z?bBhHiIlLqQ)dtype)axis   @          )
nparraypackbitsr   r   uint8r   r   	TypeErrorfloat)adtarrb r   Q/var/www/html/virt/lib64/python3.6/site-packages/numpy/lib/tests/test_packbits.pytest_packbits   s    
(r   c           
   C   sf   dddd	d
dddg} xLdD ]D}x>| D ]6}t j||d}t j|}t|jt j t|jd q$W qW d S )Nr   
      z?bBhHiIlLqQ)r   )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dddgfddddgfddddgfddddgfddddgfdd d!d"gfd#d$d%d&gfg} xpdD ]h}x`| D ]X\}}xLt |D ]@\}}tj||d}tj||d}t|jtj t|j|  qW  qpW  qfW d S )'Nr   r   r         z?bBhHiIlLqQ)r   )r   )r   )r   )r   r   r   )r!   r   r   )r   r"   r   )r   r   r   )r   r   r   )r!   r   r   )r   r   r   )r   r   r"   )r   r   r   )r   r   r   )r   r!   r   )r   r   r"   )r   r   r   )r"   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r"   r   )r   r   r   )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    
r'   bitorderlittlebigc          -     s
  t jddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddg,}|jd}x dD ]}t j||d t j d | d}t|jt j ddd	dd
dddddddddddddddd	ddd	ddddddddddddddddddddddddddddddddddddddddddddd	ddddddddddddddd	dddddddddddddddddddddddddddddgq}| d krt|| tt j|| d!d dt |  fd#d$t	dd%D }t|ddddd&dd'd%ddddd(d)d	g  j
d*d+ t j dd,}t|jt j t|d-d.d/d/d0d1d2d3d3d4dd5d6d6d7d7d8d8d9d:d;d<d=d>d?gd@dAdddd4dBdCdCd3d3dDddEdFdGdHdIdJdKdLdMdNdCdOgddPddAdQd'dRdSdTd0d0d0dUdVdVdWdddXdYdZd[d[d\d]gd^dVdVdGd_d`d`dd@d?dadadbdcdddedfdgdhdididBdjdkdlgdddd	dmddndododddHdpddodddHdpdpdqddd	dgg t j dd,}t|jt j t|ddd	dgddddgddddgddddgd	dddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddd	dgddd
dgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgg$  jj  t j dd,}t|jt j t|ddddd	dddddddddddddddddddddddddddddddg$ddddddddddddddddddddddddddddddddddddg$d	dddddddddddddddddd	d
ddddddddddddddddg$ddddddddddddddddddddddddddddddddddddg$g t j dd,}t|jt j t|d-d@dd^dgd.dAdPdVdgd/dddVdgd/ddAdGd	gd0ddQd_dmgd1d4d'd`dgd2dBdRd`dngd3dCdSddogd3dCdTd@dogd4d3d0d?dgdd3d0dadgd5dDd0dadHgd6ddUdbdpgd6dEdVdcdgd7dFdVdddogd7dGdWdedgd8dHddfdgd8dIddgdHgd9dJdXdhdpgd:dKdYdidpgd;dLdZdidqgd<dMd[dBdgd=dNd[djdgd>dCd\dkd	gd?dOd]dldgg qvW xdrD ]z}t j||d t jjt j|jt j|j j|ds}d||dk<  |j|9  t j dud,}tt j|d dv | 	qxW ttt jt j|td d S )wNr   r   r"   z?bBhHiIlLqQ)r   )r   r(         r                     q         ~            ?   8         p               r*   )r(      c                s(   g | ] }t j d |  d dd qS )N)r   r   r   )r   r   ).0i)r   r   r   
<listcomp>Y   s    z'test_packbits_large.<locals>.<listcomp>               $      )r                  W   S                     (   i   k   K   J   X   H         Z   w   m   I   r
            -   )   h   z      x      <   4                                    D      \   N   n   '                           P   0   r	         Z
bBhHiIlLqQ)lowhighsizer   r   r   )r   r   repeatr   r   r   r   r   
unpackbitsrangeZreshapeTcopyrandomrandintZiinfominmaxr   Zastyper   r   r   )r(   r   r   r   rZrndr   )r   r   test_packbits_large4   s"   ,(((((((((((((0
 "






































 
r   c              C   sF   x@t ddD ]2} x,dD ]$}tjd| ftd}tj|dd qW qW d S )Ni  i  z?bBhHiIlLqQ   )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 jddddddddgddddddddgddddddddgg d S )Nr!   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   )r(   r   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 j| }t|jt j t|t jd d S )Nr   )r   )r   )r   )r   r   r   r   r   r   r   )r   r   r   r   r   test_unpackbits_empty   s    
r   c              C   s   dgd	fd
ddgdfdddgdfdddgdfdddgdfdddgdfddd gd!fd"d#d$gd%fg} xb| D ]Z\}}xNt |D ]B\}}tj|tjd}tj||d}t|jtj t|j|  qxW  qfW d S )&Nr   r!   rI   rG   r"   )r   )r   )r   )r   )r!   rI   r   )rG   r"   r   )rG   rI   r   )rG   rI   r   )r!   r   rI   )rG   r   rI   )rG   r   r"   )rG   r   rI   )r   rG   rI   )r   r!   rI   )r   rG   r"   )r   rG   rI   )r"   r   r   )rI   r   r   )rI   r   r   )rI   r   r   )r   rI   r   )r   r"   r   )r   rI   r   )r   rI   r   )r   r   rI   )r   r   rI   )r   r   r"   )r   r   rI   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r#   r   r   r   r   r   r   r   )r   Z	in_shapesr&   r%   r$   r   r   r   r   r   test_unpackbits_empty_with_axis   s    r   c              C   s   t jdt jd} 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dd|  | jj } tt jt j| dddd|  d S )	Ni  )r   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dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddggejdZejdejdZej	 edd< ejdejdZ
eddd j j	 e
dd< ejdejd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d Zejjdi ddigdd Zejjd	d!ejjdeeded"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d Zdd ZdS )%	TestCountr   r   )r   9   N1   	   r.   r(   r)   r*   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   )r(   )r   r(   )	r   r   r   r   r   r   r   r   padded1)selfr(   r   cutoffpackedunpackedr   r   r   test_roundtrip.  s    
zTestCount.test_roundtripkwargsc             C   s@   t j| j}t j|f|}t|jt j t|| jd d  d S )Nr   r   )	r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   
test_count<  s    zTestCount.test_countrZ   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   r   r(   )
r   r   r   r   r   r   r   r   padded2r   )r   r(   r   r   packed0	unpacked0packed1	unpacked1r   r   r   test_roundtrip_axisE  s    

$
zTestCount.test_roundtrip_axis)r(   r   c             C   sF  t j| jdd}t j|fddi|}t|jt j |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 |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   r(   r*   r   r   r   r   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| j}ttt j|d
d d S )Nr   )r   r   )r   r   r   r   )r   iii)r   r   r   r   r   r   )r   r   r   r   r   r   r   test_bad_countr  s    zTestCount.test_bad_countr   )r   r   )r)   r*   r   ir   )r)   r*   r   ir   )__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     s8   
**r   )r)   r*   )Znumpyr   Znumpy.testingr   r   r   r   	itertoolsr   r   r    r'   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s    #		