a :jgD@sddlZddlmZmZmZddlZddlmZddZ ddZ dd Z ej d d d d ZddZddZddZddZddZddZGdddZdS)N)assert_array_equal assert_equal assert_raises)chaincCsgdgdggdgdgg}dD]R}tj||d}tj|dd}t|jtjt|td gd ggd gd gggq$tttjtj|t ddS) N)rr)rrr)rrr)rrr ?bBhHiIlLqQdtypeaxis@ ) nparraypackbitsrr uint8rr TypeErrorfloat)adtarrbrG/usr/local/lib/python3.9/site-packages/numpy/lib/tests/test_packbits.py test_packbitss&rcCsRgd}dD]@}|D]6}tj||d}t|}t|jtjt|jdqq dS)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]Z}|D]P\}}t|D]>\}}tj||d}tj||d}t|jtjt|j|qnq^qVdS)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_shapeZ out_shapesax out_shaperrrrrtest_packbits_empty_with_axis s          r6bitorderlittlebigc(stgd}|d}dD]}tj||dtjd|d}t|jtjgd}|dkrht||ttj||ddd |fd d t d d D}t|gd ddtjdd}t|jtjt|gdgdgdgdgdgtjd d}t|jtjt|gdgdgdgdgdgdgdgdgd gd!gd"gd#gd$gd%gd&gd'gd(gd)gd*gd+gd gd,gd-gd.gd/gd0gd1gd2gd3gd4gd5gd6gd7gd8gd9gd:g$j tjdd}t|jtjt|gd;gd<gd=gd>gtjd d}t|jtjt|gd?gd@gdAgdBgdCgdDgdEgdFgdGgdHgdIgdJgdKgdLgdMgdNgdOgdPgdQgdRgdSgdTgdUgdVgdWgqdXD]z}tj||dtj jt|jt|jj|dY}d ||dk<||9tjdZd}tt|dd |qtttjtj|tddS)[N(,rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr-rrr r7)qrr-r<rr?rrr<qr-rCrrBrrB~rr=rCr?r@rJ?rBrG8rIrArrIrKrHrLr<prLrCrEr-rArLrHrOrKrCrCrHrNrr@rr-rCrQrrrCrHrrCr<rGrKrrrr<rNrKrrFrQr<rDrCr-rMrLr<rNr?rrDrCrCrJrLrIrErIrSrQr@rMr:r7cs(g|] }tjd| dddqS)Nr r )rr).0irrr Yz'test_packbits_large..r)rMrMrMr@rBr[rrrrQr$rr )rdWSrhrQrkrlrm(ikKJX)HrErPrIriZrxrhrhwr=mIr-)hzrx)rDxrErvr]<4rerererrCrCr)rrrDrrrurt\rNn'rrw)rrMrMrPrO0r r rHrAr|rMr rHrAr|rrrArHrrM)r<r=rr)r?r<rFrM)rArrBr)rCrMrrM)rr@rCrM)rJrKrr)rCrAr?r)r?rHrNr)rGrrHr)rCrCrQr)rLrBrGr)rDrErIrM)rIrJrKr)rrBrOr)rFrEr-rM)rBrGrLr)rLrCrPrM)rAr?rHr)rIrSrrM)rCrCr>r)r-rPrEr)rrCrPrM)rMrrCrM)rHrrCrM)rEr<rGr)rr?r-rM)rHrDrEr)rr<r=rM)rJrKrHr)rHrNrKr)r?r-rMr)rDrCrCrM)rBrDrQr)r?rIrJr)rNrLr<r)$r<r?rArCrrJrCr?rGrCrLrDrIrrFrBrLrArIrCrGr-rrMrHrErrHrrJrHr?rDrBr?rN)$r=r<rrMr@rKrArHrrCrBrErJrBrErGrCr?rSrCrrPrCrrr<r?rDr<rKrNr-rCrDrIrL)$rrFrBrrCrr?rNrHrQrGrIrKrOr-rLrPrHrr>rHrErPrCrCrGr-rEr=rHrKrMrCrQrJr<)$rrMrrMrMrrrrrrrMrrrMrrMrrMrrrrMrMrMrrMrrMrrrrMrrr)rbrurDrr)rcrvrrrM)rdrErErrM)rdrPrvrr)rerIrrr)rfrir]rrO)rgrwrrr)rhrxrrr )rhrxrrur )rirhrertrH)rQrhrerrA)rjryrerr|)rkr=rrr)rkrzrrrM)rlr{rrr )rlrrrrH)rmr|rCrrA)rmr}rCrr|)rnr~rrr)rorrrr)rprrrr)rqrrrwrA)rrrrrrH)rsrxrrr)rtrrrrMZ bBhHiIlLqQ)lowhighsizer r )rrrepeatrrr rr unpackbitsrangeZreshapeTcopyrandomrandintZiinfominmaxrZastyperrr)r7rr rrZrndrrXrtest_packbits_large4s      %    rcCs>tddD].}dD]$}tjd|ftd}tj|ddqq dS)Niirrrr )rrZonesboolr)srxrrrtest_packbits_very_largesrcCs^tjdgdgdggtjd}tj|dd}t|jtjt|tgdgdgd gdS) Nr,r?rrr )rrrrrrrr)rrrrrrrr)rrrrrrrr)rrrrrr rrrrrrtest_unpackbitssrcCstjdgdgdggtjd}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 r9r;r:r rrTr ) rrrrrr rrr ValueErrorr)rrZb_littleZb_bigrrrtest_pack_unpack_orders rcCs<tjdtjd}t|}t|jtjt|tddS)Nrr)rr(rrrr rrrrrtest_unpackbits_emptys rc Csdgdfgddfgddfgddfgdd fgd d fgd d fgddfg}|D]R\}}t|D]@\}}tj|tjd}tj||d}t|jtjt|j|qfqVdS)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*Z in_shapesr5r4r3rrrrrtest_unpackbits_empty_with_axiss        rc Cstjdtjd}ttt||ttt|ddd|dddt|d}ttjtj|dddd||j}ttjtj|dddd|dS)Nirr,)r-rrr r) rZarangerrrrZtilerr)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?r7r8count:cCs\|dkr|d}n|}tj|j|d}tj|||d}t|jtjt||jd|dS)NrrrT)rr7 rrrrrr rrpadded1)selfr7rcutoffpackedunpackedrrrtest_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 rr7) rrrrrr rrpadded2r))rr7rrpacked0 unpacked0packed1 unpacked1rrrtest_roundtrip_axisEs  $ zTestCount.test_roundtrip_axisr9)r7rr:cCsFtj|jdd}tj|fddi|}t|jtj|dddkrjt||j ddd|jj dfn6t|dddddf|j ddd|jj dftj|jdd}tj|fddi|}t|jtj|dddkr t||j d|jj dddfn6t|dddddf|j d|jj dddfdS)Nrr r r7r: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__rrrrZzerosrZravelZpadded1brrpytestmark parametrizerrrrrrrrrrrrsH       r)numpyrZ numpy.testingrrrr itertoolsrrr+r6rrrrrrrrrrrrrrs      "