python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_memoryview.cpython-311.pyc

e~UNdZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZGddZGddeZ
Gdd	eZGd
dZGdd
ZGddZGddejee
ZGddejeeZGddejee
ZGddejeeZGddejee
ZGddejeeZGddejZedkrejdSdS)zUnit tests for the memoryview

   Some tests are in test_bytes. Many tests that require _testbuffer.ndarray
   are in test_buffer.
N)
import_helperceZdZdZedZedZdZdZdZ	dZ
dZd	Zd
Z
dZdZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdS)AbstractMemoryTestsabcdefc|jSN)source_bytesselfs H/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_memoryview.py_sourcezAbstractMemoryTests._sources  c:td|j|jgSr)filterro_typerw_typer
s r_typeszAbstractMemoryTests._typessdT\4<8999rc||j}tj|}|||dtd|dt|dtd|dtd|dtd|tfd|tfd|tfd	|tfd
|tfd|tfd|tfd
d|tj||dS)NraficdS)Nmsr<lambda>z=AbstractMemoryTests.check_getitem_with_type.<locals>.<lambda>)sadrcdS)Nrrsrrz=AbstractMemoryTests.check_getitem_with_type.<locals>.<lambda>*saerc(tjSrsysmaxsizersrrz=AbstractMemoryTests.check_getitem_with_type.<locals>.<lambda>+s
anrc*tjSrr"rsrrz=AbstractMemoryTests.check_getitem_with_type.<locals>.<lambda>,saorcdSrrrsrrz=AbstractMemoryTests.check_getitem_with_type.<locals>.<lambda>.sQtWrcdS)Nrrsrrz=AbstractMemoryTests.check_getitem_with_type.<locals>.<lambda>/QsVrcdS)Narrsrrz=AbstractMemoryTests.check_getitem_with_type.<locals>.<lambda>0r)r)r
r#getrefcount_viewassertEqualordassertIsInstanceintassertRaises
IndexError	TypeError)rtpboldrefcountrs    @rcheck_getitem_with_typez+AbstractMemoryTests.check_getitem_with_typesBt|oa((JJqMM1s4yy)))adC(((1s4yy)))2D		***2D		****llll333*mmmm444*&<&<&<&<===*&=&=&=&=>>>)____555)^^^^444)^^^^444++[99999rcD|jD]}||dSr)rr8)rr5s  rtest_getitemz AbstractMemoryTests.test_getitem4s4+	-	-B((,,,,	-	-rc
|jD]p}||j}|||t	fdtt
DqdS)Nc g|]
}|Srr).0irs  r
<listcomp>z1AbstractMemoryTests.test_iter.<locals>.<listcomp><s&C&C&Cqt&C&C&Cr)rr
r-r.listrangelenrr5r6rs   @r	test_iterzAbstractMemoryTests.test_iter8s+	E	EB4<  A

1

AT!WW&C&C&C&CU3q66]]&C&C&CDDDD	E	Erc|js|d||j}tj|}||fd}|t|d|t|d|t|tdd|	tj||dS)Nno read-only type to testc|d<dS)Nrr)valuers rsetitemz:AbstractMemoryTests.test_setitem_readonly.<locals>.setitemDsAaDDDrrA)
rskipTestr
r#r,r-r2r4
memoryviewr.)rr6r7rIrs    @rtest_setitem_readonlyz)AbstractMemoryTests.test_setitem_readonly>s|	7MM5666LL&&oa((JJqMM					)Wd333)Wb111)Wj.>.>???++[99999rc
|js|d|j||j}tj|}||t
dd<||dddd<||dddd	<||d
ddd<||d
ddd<||dd
ddd	<||dddd<dd	d
d<||dfd}|t|dd|t|dd|t|tj
d|t|tj
d|t|dd|t|dd|t|tddddfd|t|dtdddfd|t|dd|t|ddtdddtddd
f}|t||djdkrtnt}|||dd|||dd|t|tddd|t|tdd
dd|tj||dS)Nno writable type to test1rs1bcdef0s0bcdefs12s012defrrrscdedefsababcfc$||<dSrr)keyrHrr5s  rrIz:AbstractMemoryTests.test_setitem_writable.<locals>.setitemesRYYAcFFFrrrr r()rr+csab)rrKr
r#r,r-r/_check_contentsr2r3r$r4sliceNotImplementedErrorformat
ValueErrorr.)rr6r7rIslicesexcrr5s      @@rtest_setitem_writablez)AbstractMemoryTests.test_setitem_writableLs|	6MM4555
\LL&&oa((JJqMM4yy!RI...D!A#RI...E!A#RI...C!A#RI...r)}}!!!RI...1Q3!A#RI...r)}}!!!1Q3!A#RI...							
*gq$777*gr4888*gs{DAAA*g|TBBB)Wc4888)WdD999)WuQq||Q.?FFF)Wq%!A,,.?FFF)WdD999)Wc4888!A,,a!--wEEEHOOjj#w3///#w5111*guQqzz4@@@*guQqzz4@@@++[99999rc<|jD]}||j}||}|t5|d=dddn#1swxYwY|t5|dd=dddn#1swxYwYdS)NrR)rr
r-r2r4rCs    rtest_delitemz AbstractMemoryTests.test_delitems"+		B4<  A

1

A""9--

aD














""9--

acF














		s$	AA	 A	>BB	B	c.jD]}|j}|}dfddD}|||tdS)Nrc3^K|]'}t|gV(dSr)getitem_typebytes)r=rWrs  r	<genexpr>z3AbstractMemoryTests.test_tobytes.<locals>.<genexpr>sR B B23!!%**-- B B B B B Brr)rr-r
tobytesjoinr.r0rf)rr5rr6expecteds`    rtest_tobytesz AbstractMemoryTests.test_tobytess+	,	,B

22dl++,,A		Axx B B B B7@ B B BBBHQ)))!!!U++++	,	,rc|jD]\}|||j}|}||td]dS)Nr)rr-r
tolistr.r@)rr5rls    rtest_tolistzAbstractMemoryTests.test_tolistsf+	1	1B

22dl++,,A

AQY0000	1	1rc|jD]g}|||j|jD]}||dk||dk||dk||dk||dk||dk|k|ddk|ddddk|ddk|dk|dk|dk|dkdfD]~|tfd|tfd	|tfd
|tfdidS)Nrsabcdesabcde1rrrabcdefckSrrrWrsrrz2AbstractMemoryTests.test_compare.<locals>.<lambda>QUrckSrrrssrrz2AbstractMemoryTests.test_compare.<locals>.<lambda>Q!VrckSrrrssrrz2AbstractMemoryTests.test_compare.<locals>.<lambda>rvrckSrrrssrrz2AbstractMemoryTests.test_compare.<locals>.<lambda>rtr)rr-r

assertTrueassertFalser2r4)rr5tp_comprWrs   @@rtest_comparez AbstractMemoryTests.test_compares+	<	<B

22dl++,,A;
9
9WWY%7%7 7888  ggi&8&8!8999  ggh&7&7!7888WWX%6%6 6777  ggi&8&8!8999WWY%7%7 78888OOAF###OOA111I&&&OOAacFadN+++QqsVq[)))
Q(]+++OOAM***X]+++OOHM***^
<
<!!)]]]]];;;!!)^^^^^<<<!!)^^^^^<<<!!)]]]]];;;;	
<+	<	<rc|||j}||j|j||j|j||jd||jd|t|d||j|jf||j	d|S)NrR)rrr)
r-r
r.r[itemsizendimshaperBstrides
suboffsets)rr5rs   rcheck_attributes_with_typez.AbstractMemoryTests.check_attributes_with_typesJJrr$,''((4;///T]333###$'''Q###T]$4555r***rc|js|d||j}||jddS)NrFT)rrKrr.readonlyrrs  rtest_attributes_readonlyz,AbstractMemoryTests.test_attributes_readonlysR|	7MM5666++DL99T*****rc|js|d||j}||jddS)NrOF)rrKrr.rrs  rtest_attributes_writablez,AbstractMemoryTests.test_attributes_writablesR|	6MM4555++DL99U+++++rc|jD]}||j}tj|}||}tj|}t|d}||||d|tj||d}|tj||dS)Nzutf-8)	rr
r#r,r-strrXencoder.)rr5r6r7roldviewrefcountss       rtest_getbufferz"AbstractMemoryTests.test_getbuffers+		>		>B4<  A/!,,K

1

A!oa00OAwA  Q(9(9:::S_Q//AAAAS_Q//====		>		>rc|jD]V}t|tsGdd}Gdd|}Gdd}||d}||}|}||_||_t
j|}dx}x}}tj	|
|du|||d}|}||_||_t
j|}dx}}tj	|
|du|XdS)NceZdZdZdS)+AbstractMemoryTests.test_gc.<locals>.MyViewc.t||_dSr)rLr)rbases  r__init__z4AbstractMemoryTests.test_gc.<locals>.MyView.__init__s'--DFFFrN)__name__
__module____qualname__rrrrMyViewrs#.....rrceZdZdS)-AbstractMemoryTests.test_gc.<locals>.MySourceNrrrrrrMySourcerrrceZdZdS)-AbstractMemoryTests.test_gc.<locals>.MyObjectNrrrrMyObjectrrrrabc)r
isinstancetyper-roweakrefrefgccollectryx)	rr5rrrr6rrwrs	         rtest_gczAbstractMemoryTests.test_gcs+#	0#	0Bb$''

.
.
.
.
.
.
.
.




2











F$$A

1

A

AACACQBAAJLLLOOBBDDDL""$$///rr&zz""A

AACACQBLAJLLLOOBBDDDL""$$////G#	0#	0rcr|td}|5t|dddn#1swxYwY|5|dddn#1swxYwY|5|dddn#1swxYwY|5|ddddn#1swxYwY|5d|d<dddn#1swxYwY|5t|dddn#1swxYwY|5|jdddn#1swxYwY|5|jdddn#1swxYwY|5|jdddn#1swxYwY|5|j	dddn#1swxYwY|5|j
dddn#1swxYwY|5|jdddn#1swxYwY|5|5	dddn#1swxYwYdddn#1swxYwY|dt||dt||||||t#||j||||jdS)Nreleasedrxzreleased memory)assertRaisesRegexr\rfrhrmrBr[r~rrrrassertInrreprr.assertNotEqualrLr
)rrr5checks    r_check_releasedz#AbstractMemoryTests._check_releaseds|&&z:>>
E!HHH
AIIKKK
AHHJJJ
AaDD
4AaD
CFFF
AHH
AJJ
AFF
AJJ
AGG
AII
		
















																


'Q000

'a111AAz""T\*:*:;;<<<Arr$,//00000s	:>>A((A,/A,5BBB#	B88B<?B<CCC$DDD
D!!D%(D%.EE	EE##E'*E'0FFFF%%F),F)2GG

G
G;G$G;$G(	(G;+G(	,G;;G?G?cv|jD]}||j}||}|5}|||dddn#1swxYwY|||||}|5|dddn#1swxYwYdSr)rr
r-assertIsrrelease)rr5r6rcms     rtest_contextmanagerz'AbstractMemoryTests.test_contextmanagers7+				B4<  A

1

A
%b

b!$$$
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%  B'''

1

A

		














				s#AA	A	B--B1	4B1	c|jD]{}||j}||}|||||||||dSr)rr
r-rrrCs    rtest_releasez AbstractMemoryTests.test_release%s+	(	(B4<  A

1

A
IIKKK  B'''
IIKKK  B''''	(	(rc|j}||d||j}||}t	jd}|t|j|dS)NrFsZZZZ)	rrKr
r-ioBytesIOr2r4readinto)rr5r6rr>s     rtest_writable_readonlyz*AbstractMemoryTests.test_writable_readonly/sr\
:MM5666Bt|JJqMMJw)QZ33333rcH|t|jidSr)r2r4r-r
s rtest_getbuf_failz$AbstractMemoryTests.test_getbuf_fail:s")TZ44444rc|j}||d||j}||}|t|td||t|td||}||tt
|dS)NrFr)	rrKr
r-r.hashrr2r\rCs    r	test_hashzAbstractMemoryTests.test_hash=s\
:MM5666Bt|JJqMMa$y//222			a$y//222
JJqMM			*dA.....rc|j}||d||j}||}|t
t|dS)NrO)rrKr
r-r2r\rrCs    rtest_hash_writablez&AbstractMemoryTests.test_hash_writableOs_
\
:MM4555Bt|JJqMM*dA.....rc|jD]}||j}||}g|ffd	}tj||}|||~tj||d|d|dS)Nc2|dSr)append)rr6Ls  rcallbackz2AbstractMemoryTests.test_weakref.<locals>.callback^srr)	rr
r-rrrtestsupport
gc_collect)rr5r6rrrrs      @rtest_weakrefz AbstractMemoryTests.test_weakrefXs+	#	#B4<  A

1

AA 





Q))BMM""$$"""L##%%%MM""$$%%%MM!A$""""	#	#rc
|jD]}||j}||}tt	|}|tt	|||tt	|t|ddddS)Nr)rr
r-r@reversedrmr.)rr5r6raslists     r
test_reversedz!AbstractMemoryTests.test_reversedgs+	?	?B4<  A

1

A(188::..//FT(1++..777T(1++..QtttW

>>>>	?	?rc|jD]}||j}||}|}||j|t
|j||||	|dSr)
rr
r-
toreadonlyryrrLr.rmr)rr5r6rmms     rtest_toreadonlyz#AbstractMemoryTests.test_toreadonlyos+		B4<  A

1

ABOOBK(((OOJrNN3444RYY[[!((**555JJLLL
HHJJJJ		rctjdgd}t|}|d}|d}|dd}t|}~||dd||dd||jd||jd|d}||dd||dd||jd||jddS)NH)rrrBrrTrI)arrayrLcastr.r[)rr+rrr6rWd_s        rtest_issue22668z#AbstractMemoryTests.test_issue22668zs;K11122qMM
FF3KK
FF3KK
acFqMM
1s###1s###3'''3'''
FF3KK1s###1s###3'''3'''''rN) rrrr	propertyr
rr8r:rDrMr_rbrkror|rrrrrrrrrrrrrrrrrrrrrsL
!!X!::X::::*---EEE:::2:2:2:h,,,111<<<<			+++,,,>>>$0$0$0L1110


(((	4	4	4555///$///
#
#
#???			(((((rrc"eZdZeZeZeZdZdZ	dS)BaseBytesMemoryTestsrRrN)
rrrrfr	bytearrayrrer~r[rrrrrs'GGLH
FFFrrceZdZdZdZdZejdjZdZe	j
ddZe	j
ddZdS)	BaseArrayMemoryTestsNcFtjdt|SNr>)rr@rr6s  rrzBaseArrayMemoryTests.<lambda>sek#tAww77rcjtjdt|Sr)rr@rhrs  rrzBaseArrayMemoryTests.<lambda>s$5;sDGG#<#<#D#D#F#Frr>z/XXX test should be adapted for non-byte bufferscdSrrr
s rrz#BaseArrayMemoryTests.test_getbufferrz:XXX NotImplementedError: tolist() only supports byte viewscdSrrr
s rroz BaseArrayMemoryTests.test_tolistrr)
rrrrrrerr~r[unittestskiprrorrrrrsG77GFFLu{3(H
FX]DEE

FE
X]OPP

QP


rrceZdZdZdZdS)BaseMemoryviewTestsc t|SrrL)robjs  rr-zBaseMemoryviewTests._views#rcD||||dSrr.rr5rcontentss    rrXz#BaseMemoryviewTests._check_contentss&bbll+++++rN)rrrr-rXrrrrrs2,,,,,rrc$eZdZdZdZdZdZdS)BaseMemorySliceTestsXabcdefYc4t|}|ddSNrRrrrrs   rr-zBaseMemorySliceTests._viewssOO1v
rcT||dd||dSrrrs    rrXz$BaseMemorySliceTests._check_contents.QqS22h<<00000rc|jD]e}t||j}tj|}|dd|tj||fdS)NrRrT)rrLr
r#r,r.)rr5rr7s    r	test_refszBaseMemorySliceTests.test_refssu+	>	>B22dl++,,A/!,,K
acFFS_Q//====		>	>rN)rrrr	r-rXrrrrrrsFL111>>>>>rrceZdZdZdZdZdS)BaseMemorySliceSliceTestsrcDt|}|ddddS)NrrRrrs   rr-zBaseMemorySliceSliceTests._views#sOO!uQRRyrcT||dd||dSrrrs    rrXz)BaseMemorySliceSliceTests._check_contentsrrN)rrrr	r-rXrrrrrs7L11111rrceZdZdZdS)BytesMemoryviewTestc|jD]}||j}|t||t||t
t|t
t|||t
t||t
t|ddS)N)object)argumentT)rr
ryrLr2r4)rr5obs   rtest_constructorz$BytesMemoryviewTest.test_constructors+	H	HBDL!!BOOJrNN+++OOJb111222i444iR<<<ibAAAiR$GGGG	H	HrN)rrrrrrrrrs(HHHHHrrceZdZdZdS)ArrayMemoryviewTestctjdtd}t|}tjdtddd}||dd<|||dS)Nr>
	r)rrArLr.)rr+rnew_as    rtest_array_assignz%ArrayMemoryviewTest.test_array_assignsjKU2YY''qMMCq"b!1!122!!!E"""""rN)rrrrrrrrrs######rrceZdZdS)BytesMemorySliceTestNrrrrrrDrrceZdZdS)ArrayMemorySliceTestNrrrrrrrrrceZdZdS)BytesMemorySliceSliceTestNrrrrrrrrrceZdZdS)ArrayMemorySliceSliceTestNrrrrr!r!rrr!c,eZdZdZdZdZdZdZdS)	OtherTestctjd}t|d}|}t	|d}|dd|dd<|dd|dd<||jddD]}||5|}t	||}t	||dd|dd<t	||dd|dd<||jddddn#1swxYwYdS)Nctypesg333333?rrTBbc)	r
import_modulerfc_doublerLrr.rHsubTest)rr%p6rrr[s      rtest_ctypes_castzOtherTest.test_ctypes_casts,X66
6??3''
(
(OOqMMs##2A2"1"122!""#&&&	/	/Ff%%
/
/OO%%qMM&&v.."2++F33BQB7"1""2++F33ABB7!""  #...
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/	/	/s?B0E;;E?	E?	cddz}t|}|ddd}||ddzdS)NrQi@
r30)rLr.hex)rrm1m2s    rtest_memoryview_hexzOtherTest.test_memoryview_hexsM6M
]]
"X4&=11111rctd}|t5tj|ddddS#1swxYwYdS)Nr)rLr2r4copyrs  r	test_copyzOtherTest.test_copysv


y
)
)		IaLLL																		sAAActd}ttjdzD]I}|t
5tj||dddn#1swxYwYJdS)NrrR)rLrApickleHIGHEST_PROTOCOLr2r4dumps)rrprotos   rtest_picklezOtherTest.test_picklesv62Q677	'	'E""9--
'
'Q&&&
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'	'	'sA**A.	1A.	cdfdGfdd}Gfdd}Gfdd}dttd	z|t5|dddn#1swxYwYdttd	z|td|d
gdzdttd	z|t|dd
gdzdttd	zd
d|td5|dfdddn#1swxYwYdttd	zd
d|td5d|fdddn#1swxYwYdttd	z|td5d|<dddn#1swxYwY|ddddttd	z|td5dd|<dddn#1swxYwY|ddddttd	z|td5d|d<dddn#1swxYwY|ddddttd	zd
d|td5d|df<dddn#1swxYwY|ddddttd	zd
d|td5dd|f<dddn#1swxYwY|ddddttd	z|td5|d<dddn#1swxYwY|ddddD]}||5dttd	z||td5|d<dddn#1swxYwY|ddddddn#1swxYwYdD]}||5dttd	z||td5|d<dddn#1swxYwY|ddddddn#1swxYwYdttd	zd|td5|d<dddn#1swxYwY|ddddS)NcNtdSr)rr)barsizesrrz3OtherTest.test_use_released_memory.<locals>.release)s
IIKKK4BBBrceZdZfdZdS)3OtherTest.test_use_released_memory.<locals>.MyIndexcdS)Nrarrrs r	__index__z=OtherTest.test_use_released_memory.<locals>.MyIndex.__index__.s			qrN)rrrrDrsrMyIndexrA-s.






rrFceZdZfdZdS)3OtherTest.test_use_released_memory.<locals>.MyFloatcdS)Ng@rrCs r	__float__z=OtherTest.test_use_released_memory.<locals>.MyFloat.__float__2			trN)rrrrJrEsrMyFloatrH1.






rrLceZdZfdZdS)2OtherTest.test_use_released_memory.<locals>.MyBoolcdS)NTrrCs r__bool__z;OtherTest.test_use_released_memory.<locals>.MyBool.__bool__6rKrN)rrrrQrEsrMyBoolrO5rMrrRrar)@rTzoperation forbiddenr)rTrV*ssspambhilqnBHILQN)fmtfd?)	rLrr2r\r.r@rrr))	rrFrLrRrZr>rrr?s	     @@@@rtest_use_released_memoryz"OtherTest.test_use_released_memory$s#	!	!	!	!	!	!	!																														
y..//


z
*
*		
ggiiLL															y..//a

m,,seai888
y..//a		!n--uqy999
y..//44S'BB

#
#J0E
F
F		
ggiilOO															y..//44S'BB

#
#J0E
F
F		
alOO															y..//

#
#J0E
F
F		AggiiL															BQB)))
y..//

#
#J0E
F
F	$	$#AjwwyyjM	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$BQB)))
y..//

#
#J0E
F
F	%	%$AggiikN	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%BQB)))
y..//44S'BB

#
#J0E
F
F	!	! AggiilO	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!AbD7+++
y..//44S'BB

#
#J0E
F
F	!	! AalO	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!BQB)))
y..//

#
#J0E
F
F		799AaD															BQB)))!	2	2C#&&
2
2y6677<<SAA++J8MNN%%"799AaD%%%%%%%%%%%%%%%  BQB111
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2	2	2C#&&
2
2y6677<<SAA++J8MNN%%"799AaD%%%%%%%%%%%%%%%  BQB111
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2y..//44S99

#
#J0E
F
F		688AaD															BQB)))))s"6BBBF==GGH77H;>H;>JJJ=LL L>NN!NP//P36P3(SSS)UU
UAX%W0$X%0W44X%7W48!X%%X)	,X)	A[*Z5)[*5Z99[*<Z9=![**[.	1[.	]]#&]#N)rrrr+r1r4r:r]rrrr#r#sd///&222
'''d*d*d*d*d*rr#__main__)__doc__rtest.supportrr#rrrrr3r6rrrrrrrTestCaserrrrrr!r#rmainrrr<module>rcs



								



&&&&&&y(y(y(y(y(y(y(y(@.









.





(,,,,,,,,>>>>>>>>"11111111HHHHH(+-HHH	#	#	#	#	#(+-	#	#	#					8,.								8,.								 13								 13			
J*J*J*J*J*!J*J*J*XzHMOOOOOr