o 6aD@sddlZddlmZmZmZddlZddlmZddZ ddZ dd Z ej d d d d ZddZddZddZddZddZddZGdddZdS)N)assert_array_equal assert_equal assert_raises)chaincCsgdgdggdgdgg}dD])}tj||d}tj|dd}t|jtjt|td gd ggd gd gggqtttjtj|t ddS) N)rr)rrr)rrr)rrr ?bBhHiIlLqQdtypeaxis@ ) nparraypackbitsrr uint8rr TypeErrorfloat)adtarrbr?/usr/lib/python3/dist-packages/numpy/lib/tests/test_packbits.py test_packbitss&rcCsRgd}dD] }|D]}tj||d}t|}t|jtjt|jdq qdS)N)r rr rr!rr r!r!rrrr!rrrr!rrrrrr)remptyrrr rshape)shapesrr)rrrrrtest_packbits_emptys r+c Csddgfdgdfdgdfdgdfdgd fd gd fd gd fdgdfg}dD]-}|D](\}}t|D]\}}tj||d}tj||d}t|jtjt|j|q7q/q+dS)Nrr))r!r)r rrr"))r,rr!r")r rr-r#)r#)rr,r!)rr r-r$)r-rrr$r$r%)r%rr-rr%r&)r&r&rrr-r'r'r'r'rrr ) enumeraterr(rrr rr))r*rin_shape out_shapesax out_shaperrrrrtest_packbits_empty_with_axis s&        r7bitorderlittlebigcstgd}|d}dD]}tj||dtjd|d}t|jtjgd}|dkr4t||ttj||ddd |fd d t d d D}t|gd ddtjdd}t|jtjt|gdgdgdgdgdgtjd d}t|jtjt|ggdgdgdgdgdgdgdgdgd gd!gd"gd#gd$gd%gd&gd'gd(gd)gd*gd+gd gd,gd-gd.gd/gd0gd1gd2gd3gd4gd5gd6gd7gd8gd9gd:j tjdd}t|jtjt|gd;gd<gd=gd>gtjd d}t|jtjt|gd?gd@gdAgdBgdCgdDgdEgdFgdGgdHgdIgdJgdKgdLgdMgdNgdOgdPgdQgdRgdSgdTgdUgdVgdWgqdXD]=}tj||dtj jt|jt|jj|dY}d ||dk<||9tjdZd}tt|dd |qtttjtj|tddS)[N(,rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr-rrr r8)qrr-r=rr@rrr=qr-rDrrCrrC~rr>rDr@rArK?rCrH8rJrBrrJrLrIrMr=prMrDrFr-rBrMrIrPrLrDrDrIrOrrArr-rDrRrrrDrIrrDr=rHrLrrrr=rOrLrrGrRr=rErDr-rNrMr=rOr@rrErDrDrKrMrJrFrJrTrRrArNr;r8cs(g|]}tjd| dddqS)Nr r )rr).0irrr Ys(z'test_packbits_large..r)rNrNrNrArCr[rrrrRr$rr )rdWSrhrRrkrlrm(ikKJX)HrFrQrJriZrxrhrhwr>mIr-)hzrx)rExrFrvr]<4rerererrDrDr)rrrDrrrurt\rNn'rrw)rrNrNrPrP0r r rIrBr|rNr rIrBr|rrrBrIrrN)r=r>rr)r@r=rGrN)rBrrCr)rDrNrrN)rrArDrN)rKrLrr)rDrBr@r)r@rIrOr)rHrrIr)rDrDrRr)rMrCrHr)rErFrJrN)rJrKrLr)rrCrPr)rGrFr-rN)rCrHrMr)rMrDrQrN)rBr@rIr)rJrTrrN)rDrDr?r)r-rQrFr)rrDrQrN)rNrrDrN)rIrrDrN)rFr=rHr)rr@r-rN)rIrErFr)rr=r>rN)rKrLrIr)rIrOrLr)r@r-rNr)rErDrDrN)rCrErRr)r@rJrKr)rOrMr=r)$r=r@rBrDrrKrDr@rHrDrMrErJrrGrCrMrBrJrDrHr-rrNrIrFrrIrrKrIr@rErCr@rO)$r>r=rrNrArLrBrIrrDrCrFrKrCrFrHrDr@rTrDrrQrDrrr=r@rEr=rLrOr-rDrErJrM)$rrGrCrrDrr@rOrIrRrHrJrLrPr-rMrQrIrr?rIrFrQrDrDrHr-rFr>rIrLrNrDrRrKr=)$rrNrrNrNrrrrrrrNrrrNrrNrrNrrrrNrNrNrrNrrNrrrrNrrr)rbrurErr)rcrvrrrN)rdrFrFrrN)rdrQrvrr)rerJrrr)rfrir]rrP)rgrwrrr)rhrxrrr )rhrxrrur )rirhrertrI)rRrhrerrB)rjryrerr|)rkr>rrr)rkrzrrrN)rlr{rrr )rlrrrrI)rmr|rDrrB)rmr}rDrr|)rnr~rrr)rorrrr)rprrrr)rqrrrwrB)rrrrrrI)rsrxrrr)rtrrrrN bBhHiIlLqQ)lowhighsizer r )rrrepeatrrr rr unpackbitsrangereshapeTcopyrandomrandintiinfominmaxrastyperrr)r8rr rrrndrrYrtest_packbits_large4s           !"# %   rcCs>tddD]}dD]}tjd|ftd}tj|ddq qdS)Niirrrr )rronesboolr)srxrrrtest_packbits_very_larges rcCs^tjdgdgdggtjd}tj|dd}t|jtjt|tgdgdgd gdS) Nr,r@rrr )rrrrrrrr)rrrrrrrr)rrrrrrrr)rrrrrr rrrrrrtest_unpackbitss rcCstjdgdgdggtjd}tj|dd}t|jtjtj|ddd}tj|dd d}t||t|tj|dddt|ddddd f|t|tj|dd dtt tj|d d tt tj|d d dS)Nr,r@rrrr r:r<r;r rrUr ) rrrrrr rrr ValueErrorr)rrb_littleb_bigrrrtest_pack_unpack_orders rcCs<tjdtjd}t|}t|jtjt|tddS)Nrr)rr(rrrr rrrrrtest_unpackbits_emptys rc Csdgdfgddfgddfgddfgdd fgd d fgd d fgddfg}|D])\}}t|D] \}}tj|tjd}tj||d}t|jtjt|j|q3q+dS)Nr))r,r]r)r[r-rr[r]rr))r,rr]r[rr])r[rr-r)rr[r])rr,r])rr[r-r)r.r]rrrr)rr]rr/rr)rrr]rr0rr1r'rr )r2rr(rrrr r))r* in_shapesr6r5r3rrrrrtest_unpackbits_empty_with_axiss"        rc Cstjdtjd}ttt||ttt|ddd|dddt|d}ttjtj|dddd||j}ttjtj|dddd|dS)Nirr,)r-rrr r) rarangerrrrtilerr)drrrtest_unpackbits_larges*  "rc @seZdZejgdgdgdgdgdgdgdgejdZejd ejdZe ed d <ejd ejdZ ed d d  e d d <ejd ejdZ ee d dd df<e jdde jdeeded dd ddZe jdidd igddZe jdde jdeeded dd ddZe jdidd iddidd dddidd dgd d!Zd"d#Zd S)$ TestCount)rrrrrrr)rrrrrrr)rrrrrrr)rrrrrrr)rrrrrrr)rrrrrrr)rrrrrrrr9N1r ) rr@r8r9count:cCs\|dkr |d}n|}tj|j|d}tj|||d}t|jtjt||jd|dS)NrrrU)rr8 rrrrrr rrpadded1)selfr8rcutoffpackedunpackedrrrtest_roundtrip.s zTestCount.test_roundtripkwargscCsDt|j}tj|fi|}t|jtjt||jdddS)Nr r)rrrrrrr test_count<s zTestCount.test_countrncCs|dkr |d}n|}tj|jd|d}tj|d||d}t|jtjt||jd|d|jj dftj|jd|d}tj|d||d}t|jtjt||jd|jj dd|fdS)Nrrr<)r rr8) rrrrrr rrpadded2r))rr8rrpacked0 unpacked0packed1 unpacked1rrrtest_roundtrip_axisEs  $ (zTestCount.test_roundtrip_axisr:)r8rr;cCsFtj|jdd}tj|fddi|}t|jtj|dddkr5t||j ddd|jj dfnt|dddddf|j ddd|jj dftj|jdd}tj|fddi|}t|jtj|dddkrt||j d|jj dddfdSt|dddddf|j d|jj dddfdS)Nrr r r8r;r r) rrrrrr rgetrrr))rrrrrrrrrtest_axis_countZs&6(:zTestCount.test_axis_countcCsjtj|jdd}tttj|dddtj|jdd}tttj|dddt|j}tttj|dddS)Nrr r)r rrr)r)rrrrrr)rrrrrrrtest_bad_countrs  zTestCount.test_bad_count)__name__ __module__ __qualname__rrrrzerosrravelpadded1brrpytestmark parametrizerrrrrrrrrrrrsJ         r)numpyr numpy.testingrrrr itertoolsrrr+r7rrrrrrrrrrrrrrs"    "