python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_buffer.cpython-311.opt-2.pyc

elddlZddlZddlmZddlmZddlmZmZddl	m
Z
mZmZddl
Z
ddlZddlZddlZddlZddlmZddlmZ	ddlTn
#e$rdZYnwxYw	ddlZn
#e$rdZYnwxYw	ddlZn
#e$rdZYnwxYw	ej5e_e
j5dd	lmZdddn#1swxYwYdddn#1swxYwYn
#e$rdZYnwxYw	ddl Z n
#e$rdZ YnwxYwd
Z!ddddddddddddddddZ"ere"d=e"d
=er-	ej#ddde"d<de"d<n#ej$$rYnwxYwdddddddddddddddzddzfdZ%dZ&e"e"e%e%e%e%dZ'ere'dD]Z(e&e(e'de(<e")Z*e")Z+e"D]	Z,e,d vre+e,=
e")Z-e"D]	Z,e,d!vre-e,=
e*e'd"<e*e'd#<e+e'd$<e-e'd%<e-e'd&<dZ.dZ/gdgd'fd$gd(gfd(gd(gfd#d"gd(gfd&d%gd(gfd)Z0d*Z1d+Z2d,Z3d-Z4dhd/Z5d	d0Z6d	d1Z7d2Z8d3Z9d4e'dDZ:d5Z;d6Z<d7Z=d8Z>d9Z?d:Z@d;ZAd<ZBd=ZCd>ZDd?ZEd@ZFdAZGdBZHdCZIdDZJdEZKdFZLdGZMdHZNdIZOdJZPdidNZQdOZRdPZSdjdQZTdRZUdkdSZVdTZWdldUZXdVZYdWZZdXZ[dmdZZ\dmd[Z]dnd\Z^dld]Z_d^Z`d_ZadKZbd`Zce!rd`ZadaZbdbZce]ZZe^Z[e_ZejdedcejdeddGdedfejeZfegdgkrejhdSdS)oN)support)	os_helper)permutationsproduct)	randrangesamplechoice)Decimal)Fraction)*)ndarrayT)?cbBhHiIlLnNfdPrrQqrr)i)i)ri))rllr)rrrrrrrrrrrrrrc	|dkrd}nr|dkrd}ni|dkrd}n`|dkrdd	zdd	zf}nNd
D]4}	tj|d|zdz
n#tj$rY1wxYw|dzrd|zd|zfndd|zf}|S)Nrr"rr rr(rr,r-)
r$@? r)structpackerror)fmtlhexps   D/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_buffer.pynative_type_ranger?_s(
czz
	
	
	4j!T'
";		C
C!S&!,,,<



$'!G
<3iC
 
 !QV
IsAA#"A#)@<>=!rA
bBhHiIlLfdBbcm@mar@b)r@123r@)r
arraynumpy
memoryviewbytefmtc&	tt||}|dkrt|g}|dkr|dkrd}|dkrt|}|dks|dkr0t	j||}t	j||d}|S)	NrrPrrrr)rfmtdictbytesboolr8r9unpack)modecharobjxs    r>
randrange_fmtr^s74=&'As{{1#JJ'>>a7llAs{{GGs{{dckkKa  M$""1%Hc	|d\}}g}|D]&}|t|||'t|dkr|dnt	|S)N#r,r)splitappendr^lentuple)r;r\rZcharsr]rs      r>gen_itemrgso$))C..KD%
A
..	tQ,,----q66Q;;1Q44E!HH,r_c	|dkrt||Sdg|z}t|D]}t||||<|SNr)rgrange)rr;r\lstrs     r>	gen_itemsrlsX6AvvS!!!#'C
1XX$$#s##AJr_ctt|t}|dz}|d}t	dd}t|D]o}tt
t|}tt|t}||t|r|ndzz
}|||zz
}pt|||}	t||}
||	|
fS)Nraambr!
r,)r	capMODEstriprrjrerVMULTintrlrg)rr\rZxfmtr;nmemb_r[
multiplieritemsitems           r>struct_itemsr{s#c(4.!!D#:D
**U

CaE
5\\##eGDM**++CHTN++
*;JJ!<<<=
T!"as##ED#Dtr_r
c	|%tt|t}|'ttt|}tt|t
}|dz|t
|r|ndzz}t|||}t||}|	d|z|z}|||fS)Nrar,rn)
r	rprqrerVrsrtrlrgrr)rr\rZr[rxr;ryrzs        r>	randitemsr}s,|c#htn%%|eGDM**++C''J
*tc
"A**BBB
BCac""ECD
**U

j
(4
/Ctr_c#K	t|tD]&}t|D]}t||||V'dSN)rprqrVr})rr\rZr[s    r>	iter_moders_;C00DM	0	0DAsD$//////	000r_c#nK	t||D]}|V|dkrdSt||VdS)Nr
)rr{)nitemstestobjts   r>iter_formatrs[=
vw
'
')
vw
'
''''''r_cd|vpd|vpd|vS)Nrrr)r;s r>is_byte_formatrs#:11scz1r_cv	t|}|dks|dko|ddko||dz
tvS)Nr,r!rrA)rd
MEMORYVIEW)r;r]s  r>is_memoryview_formatrsG(CA
!V
1Q03q6S=
#!H
"$r_c0g|]}t||Sr)r.0rs  r>
<listcomp>rs%DDD.2C2CD1DDDr_c0	t|tSr
isinstancelistrks r>atomprsC#t$$$$r_c,t|tSrrrs r>listprsc4   r_cf	t|dkrdS|d}|ddD]}||z}|SNrr,)rd)rkr]vs   r>prodrsI#
3xx1}}qAA
W	QHr_cJ	|dkrdS|dkrLt|dd|gz}t|dz
ddD]}||xx||dzzcc<nG|gt|ddz}td|D]}||xx||dz
zcc<|S)NrrCr,r!)rrj)ndimshapeitemsizelayoutstridesrs      r>strides_from_shapersqyyr
}}uQRRy//XJ.tAvr2&&	'	'AAJJJ'!A#,&JJJJ	'*tE#2#J///q$	'	'AAJJJ'!A#,&JJJJNr_cB	t|r|St|dkr|dSdg|dz}|drt||dznd}t|dD]-}||z}t||||z|dd||<.|Sr)rrdrj_ca)rysrkstriderstarts      r>rrs3U||
1vv{{Qx#!*C#$Q4
.SZZ1Q4

QF
1Q4[[77&U5v-.!""66AJr_c	t|r|St|dkr|dSdg|dz}|d}t|dD]&}t||d||dd||<'|Sr)rrdrj_fa)ryrrkrrs     r>rr%s9U||
1vv{{Qx#!*C
qTF
1Q4[[..U19f9%qu--AJr_ct|r3d|vr/t|t|krtdt	||SNrzprod(shape) != len(items))rrrd
ValueErrorrryrs  r>carrayr2MU||6AJJ4;;#e**+D+D4555uer_ct|r3d|vr/t|t|krtdt	||Sr)rrrdrrrs  r>farrayr7rr_c.	d|D}t|S)Nc,g|]}t|Srrjrrs  r>rzindices.<locals>.<listcomp>>s)))aq)))r_)r)r	iterabless  r>indicesr<s#2))5)))IIr_cX	d}t|D]}|||||zz
}|Srir)rindrretrs     r>getindexrAs=K
C
4[[##wqzCF""Jr_c>	|s|St|}t||dd}t||ddddd}dgt|z}t|D]8}t|||}t||ddd|}||||<9|S)Nr,rrr)rdrrr)	srcrrsstridesdstridesdestrfrtos	         r>	transposerHsH
u::D!$q#66H!$dddQ<<H
3S>Du~~
dC
*
*
dC"Ix
0
0r7RKr_c	|gkr|St|r|gSt|dt|ddzSrr_flattenrs r>rrWsO
byy
SzzuCFhs122w////r_cD	t|r|St|Srrrs r>flattenr_s$'Szz
C==r_c	t|rgSt||dgt|d|ddzSr)rrdslice_shaperkslicess  r>rresNSzz	F1I ;s1vvabbz#B#BBBr_c\	t|r|Sfd|dDS)Nc@g|]}t|ddSr,N)
multislice)rsublstrs  r>rzmultislice.<locals>.<listcomp>ps+HHHvJvvabbz**HHHr_r)rrs `r>rrls;GSzz
HHHHVAYHHHHr_c	t|r|Sfdt|d|dD}||d<|S)Nc
Zg|]'\}}t||dddd(Sr)m_assign)rrrlslicesrslicess   r>rzm_assign.<locals>.<listcomp>sQAAA1
Q7122;44AAAr_r)rzipllstrlstrrs  ``r>rrrs

T{{AAAAAD,d71:.>??AAADDKr_c	t||}t||}t|t|krdStt|D]&}||||krdS||dkrdS'dS)Nrr)rrdrj)rrrrlshapershapers       r>
cmp_structurersC
w
'
'F
w
'
'FFs6{{""r
3v;;

!9q	!!22!9>>111r_cr	t||||dkrtdt||||S)Nrz+lvalue and rvalue have different structures)rrrrs    r>multislice_assignrsADT4'22Q66FGGGD$111r_cr	|zrdS|dks	|z|krdStfdDrdS|dkr|dkooSdvrdStfdt|D}tfdt|D}d||zko||zz|kS)NFrc3"K|]	}|zV
dSrrrrrs  r>	<genexpr>z#verify_structure.<locals>.<genexpr>s'
)
)A1x<
)
)
)
)
)
)r_Tc3XK|]$}|dk||dz
zV%dSrr,Nrrjrrs  r>rz#verify_structure.<locals>.<genexpr>sI##1!*//qz58A:&!///##r_c3XK|]$}|dk||dz
zV%dSrrrs  r>rz#verify_structure.<locals>.<genexpr>sI""1!*q..qz58A:& ...""r_)anysumrj)memlenrrrroffsetiminimaxs ` ``   r>verify_structurers5u
zzVH_v--u

)
)
)
)
)
)
)))uqyyqy6Y6w;6Ezzt#####d#####D"""""d"""""D
t>tH 4 >>r_c |D]
}||}|Srr)rkrrs   r>get_itemrs!
!fJr_cj	|\}}}}}}|}t|D]}	|||	||	zz
}|Srr)
rrrrrrrrprs
          r>memory_indexrsO7562FHdE7FA
4[[##	WQZ

""Hr_c	|\}}}}}}d|z}t|D]$}t||}	d|	z}
||
zrdS||
z}%dS)Nr,TF)rr)rrrrrrrvisitedrrbits           r>is_overlappingrst672FHdE7FiGu~~a  dS=	4435r_r4rcp	st|dz}|dkr?|r|||dddfStdd}||z}tddkr|n|}|||dd|fSd}	td}
|
dkr|rd}	n|
dkrd}	dg|zt|D]}t|	|dz|<nt}d	}td}
|
dkr|
dzrd
nd}
dg|z|t||dzz|dz
<|
s|dz
dkr||dz
<t|dz
ddD]i}||dzr|dzndz}|
r|t||dzz|<:d
td|ztd|dzz|<jdx}}dvrRtfdt|D}tfdt|D}||z
}|r||z}||dz|zz}n$||z|z}tddkr||z
n|}||||fS)Nr,rrr!d_ZrTFrr,rc3XK|]$}|dk||dz
zV%dSrrrs  r>rz!rand_structure.<locals>.<genexpr>sI''qajAoo1:uQxz*%ooo''r_c3XK|]$}|dk||dz
zV%dSrrrs  r>rz!rand_structure.<locals>.<genexpr>sI&&qaj1nn1:uQxz*$nnn&&r_)rrjrdr)rvalidmaxdimmaxshaperrrrrminshaperr	maxstridezero_striderrrs    `           @r>rand_structurers3
""AII
>4R::"1d++(*&/lla&7&7(Vxr2v==cNN77u7HH
"WWHd
t	7	7A 8A:66E!HH	75zzI#Ar''a!e'$$KcDjGI:y{!C!CCGDFO#746?a//"Q
462r
"
"@@51:4U1Q3ZZ14		@!Iyj)A+$F$FFGAJJ 1."#%.q)A+%>%>?GAJJOD4::'''''E$KK'''''&&&&&E$KK&&&&&D[FA!46X--%$,(*#,Q<<1#4#4$x&8T5'699r_c	||z
}t|dz}|r||z
|znd}td|dz}|||zz}t|||}t||\}}}}	|	|krt|SNr,)rslice
slice_indicesRuntimeError)
slicelenlistlenmaxstartrmaxstepstepstoprrwcontrols
          r>randslice_from_slicelenr'sG!Hhqj!!E/7>w8++QGQ	""D8d?"D
eT4  A$Q00Aq!W(Hr_c	dg|z}dg|z}t|D]K}||}|dkrtd|dznd}t||||<t||||<Lt|t|fSr)rjrrre)rrrrrrrs       r>randslice_from_shaper4s@cDjGcDjG
4[[::!H()A9Q!$$$1,Xq99
,Xq99

>>5>>))r_c	td|dz}d}td}|dkrd}n|dkrd}tddkrdnd	}dg|z}dg|z}dg|z}dg|z}	t|D])}t||dz}
t||dz}||
kr|
|}
}|rxt|
|
dz}t|
|
dz}
d
tdtd|
dzz}t||
|}t||
\}}}}n+|
dkrtd|
dznd}t	||
}t	||}tddkr||
c||<||<||c|	|<||<|
|c||<||<||c|	|<||<+||t|t|	fS)Nr,r!rrrrPTFr)rrjrrrre)rrrr	r
all_randomrrrrsmallbigrrrs_smallrwrs_bigs                   r>rand_aligned_slicesr#@sEQq!!DH#ABww	
b"32--5JSXFDvc$hG1#d(
4[[44(HQJ//(1*--;;C	?ufeAg..EeVU1W--D)A,,')AuQw*?*??DE4..G -gu = =Aq!XX05		yE!G,,,qH-h>>G(#66Q<<1#& F1Ivay%*G"GAJ

#(# F1Ivay%,e"GAJ

65>>5>>99r_cD	|\}}}}}}t||zd|zdS)NrarP)rl)r;rrrrws     r>randitems_from_structurer%ks4#$ FHaAqVX%s3w888r_c	P	|\}}}}}}	t|||||	t|zS)Nrrformatrflags)r
ND_WRITABLE)
ryr;rr)rrrrrrs
          r>ndarray_from_structurer+qs@D562FHdE7F5ws E(9;;;;r_c	|\}}}}}}t|}	t|D]\}
}tj||	|
|z| t	|	||||S)N)bufferrrdtyper)	bytearray	enumerater8	pack_intonumpy_array)ryr;rrrrrrrbufrrs            r>numpy_array_from_structurer4wsH562FHdE7F
F

C%  221c1X:q1111c 1111r_c	|j}|rt|z|krd|fSn<|gkr|jdks|krd|fSn t|\}}|g}|dkrd|fS|fdtdt
D}g}|D]>}	tj||	d}
|
|
krd|fcS|	|
?|gkr||fn	|d|fS)Nrc*g|]}||zSrr)rrrmems  r>rzcast_items.<locals>.<listcomp>s&IIIqQqz\"IIIr_nan)
nbytesrrdivmodtobytesrjrdr8rYrc)exporterr;rrbytelenrr	byteitemsryrrzr7s  `        @r>
cast_itemsr?sTHoG
;;!W,,;-	"=AW!4!4;"5gx((166;




CIIIIIE!SXXx,H,HIIIIE
}S!$$Q'4<<%<
T"b[[E5>>uQx.??r_c#LK	tdD]}|gVtdd}tddkrdndfdt|DVtdd}tddkrdndfd	t|DVdS)
Nr2rrr,r!c0g|]}tdSrrrrwr	s  r>rz!gencastshapes.<locals>.<listcomp>#
7
7
7a9Xq!!
7
7
7r_c0g|]}tdSrDrErFs  r>rz!gencastshapes.<locals>.<listcomp>rGr_)rjr)rrr	s  @r>
gencastshapesrIs*
2YYc				Q??DcNNR''qqQH
7
7
7
75;;
7
7
7777Q??DcNNR''qqQH
7
7
7
75;;
7
7
777777r_c		tt||dzt||dzt||dzSr)rrj)rs r>	genslicesrKsA>5!QqS>>5!QqS>>5!QqS>>BBBr_cN	fdt|D}t|S)Nc:g|]}t|Sr)rKrrrs  r>rz"genslices_ndim.<locals>.<listcomp>s%:::58$$:::r_)rjr)rrrs ` r>genslices_ndimrOs09::::eDkk:::IIr_Fcb	|s|dkrdnd}t||dz}t||Sr)rr)rallow_emptyminlenrs    r>rslicerSsB
.aQQQF1%%H"8Q///r_c#TK	tdD]}t||VdS)Nr)rjrS)rrQrws   r>rrsA8
1XX%%Q$$$$$$%%r_c#NK	t|D],}tfdt|DV-t|D],}tfdt|DV-tdt|DVdS)Nc3BK|]}t|VdSrrSrNs  r>rzrslices_ndim.<locals>.<genexpr>s/::F58$$::::::r_c3FK|]}t|dVdS)T)rQNrWrNs  r>rzrslices_ndim.<locals>.<genexpr>s4LL1F58666LLLLLLr_c38K|]}tdddVdSr)rrrws  r>rzrslices_ndim.<locals>.<genexpr>s,22a!222222r_)rjre)rr
iterationsrws `  r>rslices_ndimr\s3
:

;;::::eDkk:::::::::
:

MMLLLLdLLLLLLLLL
22eDkk222
2
222222r_c#Kt|}|t|n|}tt||VdSr)rerdr)iterablerpools   r>rpermutationr`sF??DYD			AA
tQ
 
      r_c		|}n+#ttf$r|}YnwxYwt	|t
r|j}|j}nd}d}td|d|j	d|j
d|jd|d|jd|j
d	|d
tjdS)Nunknownzndarray(z, shape=z
, strides=z
, suboffsets=z	, offset=z
, format='z', itemsize=z, flags=))tolist	TypeErrorNotImplementedErrorr;rr
rr)printrr
suboffsetsr(rsysstdoutflush)ndr]rr)s    r>
ndarray_printrms&IIKK*+JJLL"g	E11bhhh


BMMM666
999bkkk555*+++Js%AArrorAz%struct module required for this test.z%ndarray object required for this testceZdZdZddddZdRdZejddZdZ	d	Z
d
ZdZdZ
d
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ d Z!d!Z"d"Z#d#Z$d$Z%d%Z&d&Z'd'Z(d(Z)d)Z*d*Z+ej,Z,d+Z-d,Z.d-Z/d.Z0d/Z1ejdd0Z2d1Z3d2Z4d3Z5e6j7d4Z8d5Z9d6Z:d7Z;d8Z<d9Z=d:Z>d;Z?d<Z@d=ZAd>ZBd?ZCd@ZDdAZEdBZFdCZGdDZHdEZIdFZJdGZKdHZLdIZMdJZNdKZOdLZPdMZQdNZRdOZSejTdPZUdQS)STestBufferProtocolc,t|_dSr)get_sizeof_void_p
sizeof_void_pselfs r>setUpzTestBufferProtocol.setUps.00r_F)slicedcastc

:	
%&'(rtz'nst	'n'd(jrdd}t	dD]4}
|
dkrn%|
dkr||
|
dz
zz
}5|gdt	dz
Dz(j}ddkr|}|gt
ddzj|	j
'	j	jj
|	j	jt!
r(s(	jt!	jt!(t%t&st)r@rn}	|	sdS|st/}d}t1D]}	t3|}t5	|}t%|t rt7jg|R}nt7j|}||n#t<$rd}YnwxYw	|||s'	|t?}d d|D}	|!|rnd}tE	}d	D]}}|d
krItGdrtGdr(tI|}t'||tJ
}n8tGdrtGd
r|dkrt'||}tMtN|%	%|(tS%|dkrt|}|rdntT}tWdtX%	t%|z%fdt	|D}t|ddkrd|D}t'||} 	t?| t?t?}!	|!%t?d}!	|!%t?d}!	|!%tWd
tX%	t%|z%fdt	|D}t|ddkrd|D}t'||tJz} 	t?| t?t?d
}!	|!%tWdtX%	t%|z%fdt	|D}t|ddkrd|D}tGd
rtJnd}"t'||"|z} 	t?| t?t?d}!	|!%t)r	t?}n#t<$rYdSwxYwt%t>rjn&|f&'	
(fd	}#|#||-5}$|#|$ddddn#1swxYwY|dSdS)Nrrr,cg|]}dS)rrrs  r>rz-TestBufferProtocol.verify.<locals>.<listcomp>s(C(C(C(C(C(Cr_Tr@c3 K|]	}d|zV
dS)z%02xNrrs  r>rz,TestBufferProtocol.verify.<locals>.<genexpr>Us&221FQJ222222r_rrFAr}r~rrr(r)rr(cBg|]}tj|zSrr8unpack_fromrrcontigr;rs  r>rz-TestBufferProtocol.verify.<locals>.<listcomp><666#$ &1#vqzJJ666r_cg|]
}|dSrrrs  r>rz-TestBufferProtocol.verify.<locals>.<listcomp>"9"9"9A1Q4"9"9"9r_rr)r(ordercBg|]}tj|zSrrrs  r>rz-TestBufferProtocol.verify.<locals>.<listcomp>rr_cg|]
}|dSrrrs  r>rz-TestBufferProtocol.verify.<locals>.<listcomp>rr_cBg|]}tj|zSrrrs  r>rz-TestBufferProtocol.verify.<locals>.<listcomp>rr_cg|]
}|dSrrrs  r>rz-TestBufferProtocol.verify.<locals>.<listcomp>rr_cd|j|j|j|j|j||j	|jt
rs(|j
t|jt	dkrdnt}t||r

n
}||
dSr)assertIsr\assertEqualr9rr(readonlyrrrerrhrdrdr;)rHexpected_readonlyrrepexexpected_lenr;rrkrresultrurrwrrhs    r>check_memoryviewz3TestBufferProtocol.verify.<locals>.check_memoryviews

aeR(((  <888  X666  3///  ->???  ...  %,,777@:@$$QYg???  uZ/@/@AAAAAC  Q+++),Bfmmooo&..2B2B  c***  F+++++r_)r).rrdrh
assertGreaterrjrsrrr\rr9rr(rrrrerrr
rrdr;r/rget_pointerrr8r9extendBufferErrorrQjoinhexr
is_contiguousr
ND_FORTRANget_contiguous
PyBUF_READ
assertTrue
cmp_contigr*py_buffer_to_contiguous
PyBUF_FULL_RO
toreadonly))rurr\rr;rrrrrkrwrx
suboffset0rstride0rrbuf_errritem1item2r]rHrff	flattenedrexpectedtransrvroinitlstycontig_bytesrrmmrrrrhs)`` `` `````                          @@@@r>verifyzTestBufferProtocol.verifys

	(;;x/LL
("3xx'
	4tQ'''J1d^^
=
=8q==E1:??71:+q!"<<J$(C(CU46]](C(C(CCJ(GqzA~~"(i$wqrr{"3"33G

fj#&&&555(333,,,

fox000d+++uU||444	=:	=V^U7^^<<<*E*,=,=>>>fg&&	'*>s*C*C	'%(>&--///fnn.>.>CS#&&&	Fo	;AGu~~
/
/
'44E$S#..E!%//4"K4e444"KU33HHQKKKK""GEE  ....^
;  !1!11555v&&GG2222222  !,,, (SSS#CLL	
-M;M;E%H||,VS99A(55A%.i$?$?E'.uE"5?(A(A(AH -VS99R(55R:?3,,'.yb'Q'Q'QH+FJFFF$$V^^%5%5q999OOJvx$@$@AAAqyy 	NNE&7KB5VS-PPF$$S[[%(2BCCC666666(-e666G71:!++"9"9"9"9"9uBsKKKA$$Z]]Jv4F4FGGG#-f#5#5#=#=#?#?L$$\6:::#-f#5#5#=#=D#=#I#IL$$\6:::#-f#5#5#=#=C#=#H#HL$$\6:::5VS-PPF$$S[[%(2BCCC666666(-e666G71:!++"9"9"9"9"9uBzM'*,,,A$$Z]]Jv4F4FGGG#-f#5#5#=#=C#=#H#HL$$\6:::5VS-PPF$$S[[%(2BCCC666666(-e666G71:!++"9"9"9"9"9&3FC&@&@G

aAuAbDMMMA$$Z]]Jv4F4FGGG#-f#5#5#=#=C#=#H#HL$$\6::::$$	
v&&



)&*==I6B6>
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,&
Q
=2  t<<<<
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
IIKKKKK;		s7A2LLL0b
b
b c::c>c>c$d}|jr||ts||tr|jr||tr|jrj||tr|jrR||ts|j	s:||ts|jr"||ts6||tr%|
tt||dSt!|tst#|jr|}n*t|t(}|}||trdn|j}|j}	|j}
|j}||tsd}	|}||tsd}||tr|jnd}||tr|jnd}
t||}||||
|	||||
||

dS)Nc||z|kSrr)reqflags  r>matchz/TestBufferProtocol.verify_getbuf.<locals>.matchsX$&'r_getbufFr@r,r)	r\rr;rrrrrkrw)rPyBUF_WRITABLEPyBUF_C_CONTIGUOUSc_contiguousPyBUF_F_CONTIGUOUSf_contiguousPyBUF_ANY_CONTIGUOUS
contiguousPyBUF_INDIRECTrh
PyBUF_STRIDESPyBUF_NDPyBUF_FORMATassertRaisesrr
rrr(rdrrrr;rrr)ruorig_exrrrwrrkrlrr;rrrrs              r>
verify_getbufz TestBufferProtocol.verify_getbufs|	(	(	([	"U377	U3*
+
+	57O	U3*
+
+		57O		
U3,
-
-	
79m	sN++	13
	sM**	46?	sH%%	+0%\*B*B	
k7BsCCCFb'""	&:29&E&E	))++CCM222B))++CeC00
AUUbki;wuS,''	$C//##CuS(##	D!&sH!5!5=

2%*U3
%>%>F'//B
R
$
$
$BB%3UGF		,	,	,	,	,r_cpuc	tttttt
tttttttttf}dtdDdfgddfgddfdtdDdff}ggd	fgd
gd	fdggd	fdgdgdfd
gdgd	fd
gdgdfddggd	fddgddgdfddgddgdfddgddgdff
}d	t t"t"t zt$t$t zf}d	t&t(t&t(zf}|D]x\}}t+j||D]Z\}}	}
fd|	D}	|
z}
|D]<}|	r|t"zr|s|t$zr|r|n|d	}t/|||||	|
}
|r|
dddnd}t1|
}|rt1|}|
jd	ks|
jdkr|r|	r|||
|r%|jdkr|r|	r||||D]u}|D]p}||
|
||z||
|||z|r8|||||zd|||||zdqv>\zgd}t/|dgt8}|t<t.|t/dgdg}t/|t}|t<t.|t&|t<t.|t|t<t.|t|t<t.|t|t<t.|t
|t<t.|tt/|t}gdgdfD]}d	t"fD]}t/|||t z}|tA|d|tA|d|D]Y}t/||}|tA|d|tA|dZdS) Nc g|]}|dzrdndS)r!TFrrr]s  r>rz:TestBufferProtocol.test_ndarray_getbuf.<locals>.<listcomp>s%
:
:
:1a!e&dd
:
:
:r_rr,r!rnrArrBr7r6	rorrrc,g|]}|dzrd|z
nd|zS)r!r'r&rrs  r>rz:TestBufferProtocol.test_ndarray_getbuf.<locals>.<listcomp>s-
D
D
DQ1q50uQwwvax
D
D
Dr_rr)r,rnr,rrrBr!rnrAr,r6cg|]}|zSrrrs  r>rz:TestBufferProtocol.test_ndarray_getbuf.<locals>.<listcomp>*s999A1x<999r_)r(r)rrrT)rwrr)rr)r,rr,)r7rr7r}r)!rrrPyBUF_SIMPLErrr
PyBUF_FULLr
PyBUF_RECORDSPyBUF_RECORDS_RO
PyBUF_STRIDEDPyBUF_STRIDED_ROPyBUF_CONTIGPyBUF_CONTIG_ROrjr*rND_PILrrr8calcsizer
rQrrrND_GETBUF_FAILrrrr)rurequests	items_fmt	structurendflags
real_flagsryr;rrrr)_itemsex1ex2m1m2rbitsrbaserlrrs                       @r>test_ndarray_getbufz&TestBufferProtocol.test_ndarray_getbufs
M8\ 24H
++/	
;
:b		
:
:
:C@
)
)
)3/
)
)
)3/
D
D%))
D
D
DcJ	
	QK
WWb!T2qMTB4S1#qMS2$OVROVb"Xr"VaVQVb"Xq!
	
{J
;(>F;&

$\13
$!	@!	@JE3s++H*3
@
@&w9999999("$@@E!E*$4!  !eFl! &+9UUqF!&E(-wvOOOC',6#ddd))$C#CB-'__x1}}Q5W((S1112sx1}}}7}((S111'@@$.@@D ..sCTBBB ..sBDAAA"@ $ 2 23SX:>!3!@!@!@ $ 2 23CH:>!3!@!@!@
@@)@
@B-,,U2$n
=
=
=+w333sQC  
T,
/
/
/+w>JJJ+w8DDD+w=III+w;MNNN+w;MNNN+w;OPPP
R
-
-
-XXwww&		<		<EJ
<
<U%u[7HIII
b# 6 6777
b# 6 6777%<<E E222BOOM"c$:$:;;;OOM"c$:$:;;;;<
<		<		<r_c	tdgdg}tdgdgt}t|j|jfD]}|t|hd|t|gd|t|gd|t|gddh	|t|gddgdh
|t|gddgg|t|dgdgi|t|dgdgi
|t|dgdgi|t|dgdgdgt
|t|dggt
|t|gdg	|t|dgdgd|tj	|dgdgd|t|ddgdgd|t|gddgdtdz}|t|dg|zdg|z	|t|dgdg	|t|gddg	|t|dgddzg	|t|gdddgd|t|gddgdg
|t|dgdgddzg
|t|ddgddgdg
|t|gddgdgd|t|gddgd|t|gddgdd|t|gddgd |tj	|dgdgd!gd"}|t||ddgd#d$gd%&|t|td'(|t|dgdgt|t|dg|ttd)t*tdgdgt}|t|jdgdgttd)}|t|jdgdg|t|jtdgdg}|dgdgt#|}|t|jdgdg|t|j|||t|j~|tt&igd|tt&d)itt)t+d+dgd+z	}|tt&|d%gtt)t+d,ddg	}|tt&|gd-|tt&|ddg|tt&|d#dg|tt&|d.dgtgddgd}t|t,*}|t|jtgddgd}t|}	t|	}|t|jtd/gdgd0}|t|jt}tt)t+|dg|z	}|t|jtdgdg	}|tt2ddddd%|tt2|d1d2|tt2|d.d2|tt2|t4d3|t6t2|t4d4|tt2|t4d5|tt2|d6d7tdgdg	}|tt8ddddd%|tt8i||tt8|itdgdg	}|tt:ddddd%|tt:id7|tt:|d8dS)9Nrr,r)>r,r!rn)r,r!rN)r,r!rnrAr,r!rnrnrrrrrrr)rrrrr)XXXrirr!rnr!QLrrNr$r,r!rnrArrLr,r!rnrArrr(rA)rrr(r@z@#$)
r,r!rnrArrBr7r6rrorr)rrrrr(123rrr)r!rnrAr+)r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLxyzru Zr~)r
ND_VAREXPORTpushrrerrrr8r:ND_MAX_NDIM
OverflowErrorr/rrrpoprQreleaserrrjrrdmemoryview_from_bufferrrUnicodeEncodeErrorrr)
rurlndmrrryrHrrrs
          r>test_ndarray_exceptionsz*TestBufferProtocol.test_ndarray_exceptionshsy

aS1#

qcA3l33327CH-G	1G	1AiGGG444iIII666iKKK888iGGGA3???iGGGA3LLLiGGGA3rJJJiQCs2FFFiQCs"EEEiQCs2FFF
iQCsQC$.

0
0
0
iQCrHHH
j!Rs;;;j!eWQCLLLflAvaSMMMj!aYqc#NNNj!WWWQCMMMA
Aj!aSU1#a%@@@
j!aS===j!WWWSEBBBmQAsF8DDDj![[[1aPPP
j!WWWQC#OOOmQA3'(#vh

0
0
0
j!aU1Q%!MMMj!YYYqcA3%(

*
*
*
j!WWWQCJJJj!WWWQC%(

*
*
*
j!WWWQCKKKflAy%*

,
,
,+**Ej!U1Q%')2hq

:
:
:
iIKKDDD
iQCs:NNN
iQC0000	
+w~NNNaS1#\
2
2
2*bgsQC|LLLV__+rwaS999+rv...aS1#


aSrNN+rwaS999+rv...			
	
+rv...	
)["ggg>>>)[&"===
T%**%%aSW
5
5
5*k2s;;;
T%))__QqE
2
2
2*k2www???*k2!u===*k21v>>>-b5)DDDWWWQC
4
4
4
R
-
-
-*bi000gggaS555cll
S\\)R%>???
hZs7
;
;
;)R%>???
T%((^^A3q5
1
1
1*b&?@@@aS
$
$
$)^Q1aCCC)^RDDD-UCHHH)^RSIII,nb*"	$	$	$*nb*cJJJ*nb#sCCCaS
$
$
$)ZAq!Q???)ZR888)ZR888aS
$
$
$)]Aq!QBBB)]B<<<)]B<<<<<r_cttdD]}dgdz}tgddgt}t	||d<tddD].}|gddgt	|||</tdD]"}|||#|t|j	~dS)Nrrrrnrr,r)
rrjr
r
rQrrrrr)rupermrHrlrs     r>test_ndarray_linked_listz+TestBufferProtocol.test_ndarray_linked_lists q**
	
	DAA<@@@Bb>>AaD1a[[
&
&s+++!"~~!1XX
%
%$q'
""$$$$k26222
	
	r_ctdD]J\}}}tj|}t|d|}||d||dddd|		KdS)NrrrTr\rr;rrrrrk)rr8rr
r)rur;scalarrwrrls      r>test_ndarray_format_scalarz-TestBufferProtocol.test_ndarray_format_scalars)!nn	$	$NCs++Hr#666BKK!)sTb""

$
$
$
$	$	$r_c
tdd}t|D]Z\}}}tj|}dtfD]6}t||g||}||d||dd|f|f|		7[dS)Nr,rorrTr)rrr8rrr
r)rurr;ryrwrr)rls        r>test_ndarray_format_shapez,TestBufferProtocol.test_ndarray_format_shape sAr""(00	'	'MCs++HV
'
'U6(3eLLLBD%-3!"6)h[ %''''
'	'	'r_ctdd}t|D]\}}}tj|}t	ddD]}|dkr	t|dd|g}||zg}|dkr||dz
znd}	dtfD]>}
t|||||	|
}||d||dd|||dd|		?dS)	Nr,rrr'Tr)	rrr8rrjrdrr
r)rurr;ryrwrrrrrr)rls            r>test_ndarray_format_stridesz.TestBufferProtocol.test_ndarray_format_strides,s*1b!!(00	3	3MCs++Hb!
3
3199U66T6]++,=/04q6!8,,a[33E eW(+F%IIIBKK)1sT%&eW$)&&D&M 33333
3	3	3r_cgd}t|dd}t|ttz}||t|ddS)Nrr)r,rnrr)r
rrrrdr)ruryrrls    r>test_ndarray_fortranz'TestBufferProtocol.test_ndarray_fortranAsg,,,
U&&
9
9
9
R 2< ?
@
@
@fUF&;&;<<<<<r_ctdD]}dt|D}t|}t|D]}t|\}}}t	j|}dtfD]R}	|dkr|	tkrt||||	}
t|||d}t||}|
|
d||d||||		t|rt|||}
t|
ttz	}
||
jd
k|
}|
|d||d||||		t||||	t"z}
t|||d}t%||}|
|
d||d||||		TdS)Nrc.g|]}tddS)r!rorErZs  r>rz<TestBufferProtocol.test_ndarray_multidim.<locals>.<listcomp>Is"===AyB''===r_rrrTrrrrr})rjrrr}r8rrr
rrrrrrrrrrr)rurshape_trrr;ryrwrr)rlrrkrmvs               r>test_ndarray_multidimz(TestBufferProtocol.test_ndarray_multidimGs-!HH*	)*	)D==t===G']]F%g..'
)'
) )& 1 1
UA!?3//[")")EqyyUf__ !eCuMMMB0uhLLG ..CKK)1sT%)$' )))
,C00	-$U%DDD$R0LMMM
b(89996688BD-53)-UG(+$---!eC',Z'7999B1uhLLG ..CKK)1sT%)$' ))))?")'
)*	)*	)r_c$tdgdg}|t|jddt	|}||||t|jddtdgdgt}|t|jdt	|}||||t|jdtdgdgt}|t|j	d|t|jddt	|}||||t|j	d|t|jddgd}t|t|gdt}|tj
|jd	d
|t|jddt	|}||||t|jd	d
|t|jddgd}t|t|gd
t}|t|jd	d
|tj
|jdddS)Nr,rr6rr+r,r!rnrArrBr7r6rrr!i,)r)r,r!r)rrBLQ)s1r*)r
rre__setitem__rQrr*__delitem__r
__getitem__
IndexErrorrdr8r:r)rurlr&rys    r>test_ndarray_index_invalidz-TestBufferProtocol.test_ndarray_index_invalidts
aS
$
$
$)R^Q:::
^^R   )R^Q:::aS;
7
7
7)R^Q777
^^R   )R^Q777aS;
7
7
7-???-BBB
^^R   *bne<<<*bneQ???"!!
U3u::,s+
N
N
N&,3???*bnaDDD
^^R   *bna===)R^Q
CCC%%%
U3u::,t;
O
O
O*bna===&,?KKKKKr_ctddt}t|}||||d}||d|d}||||d}||d|d}||||t|jd|t|jd|t|jdd|t|jdd||d||dd|d<||dd|d<||dd|d<||dd|d<||ddS)	Nr,rr.rr6rr)	r
r*rQrrdrrer/r-)rurlr&r]s    r>test_ndarray_index_scalarz,TestBufferProtocol.test_ndarray_index_scalars
Qb
4
4
4
^^R   rFT%%a+++sGT%%ahhjj"))++>>>rFT%%a+++sGT%%ahhjj"))++>>>)R^Q777)R^Q777)R^Q:::)R^Q:::a(((a(((2D$$RYY[[!4442D$$RYY[[!4443T%%biikk15553T%%biikk155555r_c	:tttdddgt}t|t}|t|jd|t|jtddddS)	Nr6r!rArrr,rnr)	r
rrjr*rrrr/r)rurrls   r>test_ndarray_index_null_stridesz2TestBufferProtocol.test_ndarray_index_null_stridess
T%**%%aV;
G
G
G
R
-
-
-	
+r~q999+r~uQq||DDDDDr_c4tdD]<\}}}t|dg|}tddD]$}|||||%|t
|jd|t
|jdt|rt|}|||tddD]$}|||||%|t
|jd|t
|jd>tdD]\}}}t|dgt|}t|ttz}tddD]$}|||||%t|rw|}|
||ttddD]$}|||||%gd}t|dg}t|t }tddD]$}|||||%gd}t|dg}t|t"}tddD]$}|||||%dS)	Nrrrrrrr)rr
rjrrr0r/rrQr*rrrr__eq__NotImplementedrr)rur;ryrwrlrr&rs        r>!test_ndarray_index_getitem_singlez4TestBufferProtocol.test_ndarray_index_getitem_singles(^^	A	AMCqc#666B2q\\
2
2  Aa1111j"."===j".!<<<#C((
A^^  R(((r166A$$RUE!H5555!!*bnbAAA!!*bna@@@)^^	6	6MCqcSIIIBL$=>>>B2q\\
2
2  Aa1111#C((
6..00

biimm^<<<r166A$$RUE!H5555
U1#
&
&
&
R
0
0
0r1	.	.ARUE!H----
U1#
&
&
&
R
-
-
-r1	.	.ARUE!H----	.	.r_c~tdD]~\}}}t|dg|t}tdD]}|||<|||<
||||t|jd||t|jd|t|st|dg|t}t|}|||tdD]}|||<|||<
||||t|jd||t|jd|tdD]\}}}t|dg|t}tddD]}||dz||<||dz||<|||t|st|dg|t}t|}|||tddD]}||dz||<||dz||<|||dS)Nrrr7rrAr,)rr
r*rjrrdrr0r-rrQ)rur;rysingle_itemrlrr&s       r>!test_ndarray_index_setitem_singlez4TestBufferProtocol.test_ndarray_index_setitem_singles'21~~	J	J#Cqc#[IIIB1XX
$
$&a#1RYY[[%000j"."kJJJj".![III',,
qc#[IIIBBBR$$$1XX
$
$&a#1RYY[[%000j"."kJJJj".![IIII(31~~	1	1#Cqc#[IIIB2q\\
 
  1:a1Q31RYY[[%000',,
qc#[IIIBBBR$$$2q\\
 
  1:a1Q31RYY[[%0000!	1	1r_c
dd}t|}t|D]}t|\}}}dtfD]l}t	||||}t||}	t
|d|dD]}
||	|
||
t
|d|dD]}||	|
|||
|t
|d|dD]<}||	|
||||
||=t	||||tz}t||}	t
|d|dD]}
||	|
||
t
|d|dD]}||	|
|||
|t
|d|dD]<}||	|
||||
||=ndS)Nr!rnrrrr,r!)rrr}rr
rrjrrdrr)
rur%rrr;ryrwr)rlrkrrks
             r>#test_ndarray_index_getitem_multidimz6TestBufferProtocol.test_ndarray_index_getitem_multidimsg!'**	H	HE%f--MCV
H
HU%5IIIUE**ay%(33HHA$$SVRU\\^^<<<"E!H9eAh77HH((QBqE!HOO4E4EFFF!&ay%(!;!;HHA ,,SVAYq\2a58A;GGGGHHU%#(#3555UE**ay%(33HHA$$SVRU\\^^<<<"E!H9eAh77HH((QBqE!HOO4E4EFFF!&uQxq!:!:HHA ,,SVAYq\2a58A;GGGGHHH#
H		H	Hr_ctdd}|ttdt	t|}||||ttdt	tdD]\}}}t|dg|}t|D]8\}}|||||	||v9t|rWt|}t|D]8\}}|||||	||v9dS)Nr,rrz1 in ndz1 in mvrr)r
rreevallocalsrQrrr0rr)rurlr&r;ryrwrrs        r>test_ndarray_sequencez(TestBufferProtocol.test_ndarray_sequence;s`
Qb
!
!
!)T9fhh???
^^R   )T9fhh???(^^
	-
	-MCqc#666B!"


)
)1  E!H---R((((#C((
-^^%bMM--DAq$$Qa111OOAG,,,,
	-
	-r_c
lgd}t|dgt}t|}|t|jt
ddd||t|jt
ddd|t|dgt}t|dgt}t|t}|t|jt
ddd|t|dgdt}t|}|t|j
t
ddd|t|j
t
dddt|d	d
gdt}t|}|t|j
t
dddt
dddf|t|j
t
dddt
dddf|t|j
d|t|j
dt
dddf|t|j
t
dddif|t|j
t
dddt
dddf|t|j
dt|dgdt}t|dgd
}t|}t|}|t|jt
ddd|dd||
||t|jt
ddd|dd||
|t|dgdt}t|dgd}	t|}t|}|t|jt
ddd|dd||
||t|jt
ddd|dd||
|t|d	d
gd
t}t|dgd
}t|}t|}|t|jt
ddd|dd||
gdgdg|t|jt
ddd|ddt|dgd
t}t|dgd
}t|}t|}|t|jt
dd	d|dd||
||t|jt
dd	d|dd||
||ttt
ddd	i|ttdd|ttt
dddd
t|dgd
t}
|t|
jt|dgd}t|t"}
|t|
jdS)Nr)r6rrr,rrrr!rAz@%$rrrr7r)rrBr7r6z###########)r
r*rQrrer-rrrrr/rfrrdrradd_suboffsetsr)ruryxlmlrxrrlr&mryrr]s           r>test_ndarray_slice_invalidz-TestBufferProtocol.test_ndarray_slice_invalidNs!!!U1#[
9
9
9
^^)R^U1Qq\\5III)R^U1Qq\\5IIIU1#[
9
9
9
U1#[
9
9
9
R
)
)
)+r~uQq||RHHHU1#c
E
E
E
^^*bneAallCCC*bneAallCCC
U1Q%;
G
G
G
^^*bn 1Q<<q16	8	8	8*bn 1Q<<q16	8	8	8)R^U;;;)R^eU1Qq\\5JKKK)R^eAallB5GHHH	
-r~ 1Q<<q16	8	8	8)R^U;;;U1#c
E
E
E
U1#c
2
2
2
^^
^^*bneAallBqsGLLLe,,,*bneAallBqsGLLLe,,,U1#c
E
E
E
U1#c
2
2
2
^^
^^*bneAallBqsGLLLe,,,*bneAallBqsGLLLe,,,U1a&K
H
H
H
U1#c
2
2
2
^^
^^*bneAallBqsGLLLyyy)))&<===-r~uQq||QqS'	#	#	#U1#c
E
E
E
U1#c
2
2
2
^^
^^*bneAallBqsGLLLe,,,*bneAallBqsGLLLe,,,	
)]E!AaLL"EEE)]M1EEE*mU1Qq\\1EEEE!S???)Q%5666
U1#c
2
2
2B|,,,)Q%566666r_cgd}t|dgdt}t|dgd}|dd|dd<|||t	|}t	|}|||||||dd|dd<|||t|ddgdt}t|ddgd}|d	d
ddf|d	d
d
d
f<||t|ddgdS)NrrrrrrrArnr,r!)r
r*rrdrQr)ruryr]rrIrKs      r>test_ndarray_slice_zero_shapez0TestBufferProtocol.test_ndarray_slice_zero_shapesl,,,E"cEEEE"c2221Q3!A#U+++
]]
]]QQQqS'1Q3e,,,E!Q;GGGE!Q444!QqSk!A#qs(VEAq6%:%:;;;;;r_c~d}t|}t|}t|D]}t|\}}}t	j|}dtfD]}	t||||	}
t||}t||D]}d}
	t||}n#t$r}|j}
Yd}~nd}~wwxYwd}	|
|}n#t$r}|j}Yd}~nd}~wwxYw|s|
r|
||
y|||ؐ
dSNr?rr)rdrrr}r8rrr
rr\r	Exception	__class__rrrd)rur%rrrr;ryrwrr)rlrkrlisterrrwenderrndsliceds                  r>test_ndarray_slice_multidimz.TestBufferProtocol.test_ndarray_slice_multidims7||g!'**	D	DE%f--MCs++HV
D
DU%5IIIUE***477DDF"G.!+C!8!8$..."#+.!E,#%f:$,,, !,DD

eW5555(():):FCCCC#D	
D	D	Ds0B..
C		8C	C		C
C3	"C.	.C3	cd}t|}t|}t|D]G}t|\}}}t	j|}t
|||}	|	t
|||}
|
t|
}t||}t||D]}
d}	t||
}n#t$r}|j
}Yd}~nd}~wwxYwd}	|	|
}n#t$r}|j
}Yd}~nd}~wwxYw|s|r|||y|||IdS)N)r!rnrr!r)rdrrr}r8rr
rGrQrr\rrRrSrrrd)rur%rrrr;ryrwrrlrr&rkrrTrwrUrVrWs                   r>'test_ndarray_slice_redundant_suboffsetsz:TestBufferProtocol.test_ndarray_slice_redundant_suboffsetss7||g!'**	@	@E%f--MCs++HeC888BeC888BBB&&C&tU33
@
@*'V44FF ***kGGGGGG*(!&zHH (((KEEEEEE(@G@MM%1111$$X__%6%6????#
@	@	@s0C++
D5DDD
D0D++D0ctdD]e\}}}tdD]M}tdD]9}dtfD]+}|tz}t	|dg||}t	|dg||}	t|	}
d}d}|dd}
	|
|}|
|}|
||
|<t
|t
|k}n#t$r}|j}Yd}~nd}~wwxYwd}	||||<n#t$r}|j}Yd}~nd}~wwxYw|r|	|tn>|||
|	||t|sGd}	|
||
|<n#t$r}|j}Yd}~nd}~wwxYw|r|	|t||
|
||
||	||||
|	|j|d|j|j|j|		-;OgdS)NrrrFr)rrKrr*r
rQrdrRrSrrrrdrrrrrr)rur;ryrwlslicerSr)rrlrr&lsterrdiff_structurerklvalrvalrUrVmverrs                   r> test_ndarray_slice_assign_singlez3TestBufferProtocol.test_ndarray_slice_assign_singles(^^3	/3	/MC#A,,2
/2
/'ll1/1/F"#V0/0/!+-$U1#cKKK$U1#cKKK'^^!%)-#AAAh1#&v;D#&v;D*-f+CK-0YY#d))-CNN(111%&[FFFFFF1!%0)+FBvJJ(000$%KEEEEEE0*9 MM%<<<< ,,RYY[[#>>> MM%8883C88%$ $0)+FBvJJ(000$%KEEEEEE0*	/ MM%<<<< ,,RYY[[#>>> ,,R444 MM%888 KK'){e#%7"(BJ"$))++(////[0/1/2
/3	/3	/sH;C
C.C))C.4D
D
DDF
F5$F00F5c
d}t|}t|}t|D]}t|\}}}dtfD]}ttD]}t||\}	}
t||||tz}t||}d}
	t|||	|
}n#t$r}|j
}
Yd}~nd}~wwxYwd}	||
||	<n#t$r}|j
}Yd}~nd}~wwxYw|s|
r|||
|||dSrQ)rdrrr}rrj
ITERATIONSrr
r*rrrRrSrrrd)rur%rrrr;ryrwr)rrrlrkrTrrUrVs                 r>"test_ndarray_slice_assign_multidimz5TestBufferProtocol.test_ndarray_slice_assign_multidim4s7||g!'**	>	>E%f--MCV
>
>z**>>A';D%'H'H$GW eC',['8:::B ..C"G.!23Wg!N!N$..."#+.!E,&(k7$,,, !,>>

eW5555((f====->
>		>	>s0(B;;
C	C	C	C((
D	2C>	>D	cttD]}tdD]}tj|}t|dtt}|t|t||}t|||}|}t|}t|r*|}	||	||ddkrt|||t }
|
}|||t|
}t|r@|||
|}	||	|t"rc|d}d|vrt%|||}
||d|
j|d|
j|
j|
j|
			dS)
NrATrrr!rrrnFr)rjrdrVr8rrMAXDIMMAXSHAPErrr%r+rdrQrrrr2r4rrrrr)rurwr;rrryr]xlistr&mvlistrylistrzs              r>test_ndarray_randomz&TestBufferProtocol.test_ndarray_randomUsz""%	0%	0As|$
0$
0!?3//"8T&,4666 0! 45550a88*5#q99

]]',,4YY[[F$$VU333Q4!88.uc1FKKKAHHJJE$$UE222#AB+C008((Q///!#((7770aDEEzz 25#qAAAKKt)*u%&V17AI$%HHJJ 000C$
0%	0%	0r_cttD]}tdD]}tj|}t|dtt}|t|t||}d}	t|||}n#t$r}|j
}Yd}~nd}~wwxYw||tr4d}		t!|||}
n#t$r}|j
}	Yd}~nd}~wwxYw	dS)NrAFrg)rjrdrVr8rrrhriassertFalserr%r+rRrSrr2r4)rurwr;rrryrVr]rU	numpy_errrs           r>test_ndarray_random_invalidz.TestBufferProtocol.test_ndarray_random_invalid~sJz""	3	3As|
3
3!?3//"8U6,4666  !11!56660a88(.uc1==AA (((KEEEEEE(&&&3 %I06uc1EE$000$%K						03-
3	3	3s0B
B3"B..B3C''
D1C==Dc6ttD]}tdD]p}tj|}ttt\}}}}t|d|}t|d|}	|	t||	t|	t||}
t||	}t|
||}t|||	}
|
|||<|
}|

}t|}t|
}||
|||
||ddkr	|	ddkrt|
||t }t|||	t }||||<|
}|
}||||||t|}t|}||
|||
|t"rd|vsd|vrt%|
||}t%|||	}||||<t'|sSt'|	sD||d|j|d|j|j|j|
			||
d|j|d|j|j|j|
			rdS)
NrArgTrr!rrFr)rjrdrVr8rr#rhrirrrr%r+rdrQrrr2r4rrrrrr)rurwr;rrrrrtltrlitemsritemsrHrJxllistxrlistrIrKylrLyllistyrlistzlzrs                        r> test_ndarray_random_slice_assignz3TestBufferProtocol.test_ndarray_random_slice_assignsdz"":	E:	EAs|9
E9
E!?3//(vIII1#Hd&AAA#Hd&AAA 0" 5666 0" 56661#r::1#r::+FC<<+FC<< k7^^^^  f555  f555a5199A/RvNNNB/RvNNNB"$W+BwKYY[[FYY[[F$$VV444$$VV444#BB#BB$$RYY[[&999$$RYY[[&999EF{{a6kk 3FCDDB3FCDDB"$W+BwK)"--InR6H6HIBD-/[cE)+,.JBIIKK$III
KK)+#%'WBH(*
		 EEEm9
E:	E:	Er_cgd}t|ddgt}t|}||jtz||j|||jd||j	||j
||jdS)NrrnrAr)rr)r
rrr)rr\rrhrprrr)ruryrlrs    r>test_ndarray_re_exportz)TestBufferProtocol.test_ndarray_re_exports,,,
U1Q%v
6
6
6
R[[6)***

bfb!!!000))))))'''''r_c	dtfD]V}tgddg|}t|}|||||g||gtgdgd|}||gtgdgd|}||ggggtgdgd|}||gggggggggggggXdS)Nrrrrrnrnrnrrn)rnrnrrr
rQrrdrur)rlr&s    r>test_ndarray_zero_shapez*TestBufferProtocol.test_ndarray_zero_shapesw[	I	IE5999BBBR$$$RYY[["---RYY[["---u===BRYY[["---u===BRYY[[2r2,777u===BRYY[[!2rlRRL2r2,G
I
I
I
I	I	Ir_c<dtfD]}tdgdgdg|}t|}|||||gd||gddS)Nrr,rr)r,r,r,r,r,rrs    r>test_ndarray_zero_stridesz,TestBufferProtocol.test_ndarray_zero_stridess[	;	;E!QC!EBBBBBBR$$$RYY[[///:::RYY[[///::::	;	;r_ctttddgd}||jd||gddS)Nrnr7r)r7r6r)r
rrjrrrdrurls  r>test_ndarray_offsetz&TestBufferProtocol.test_ndarray_offsetsd
T%))__QC
:
:
:A&&&ggg.....r_cdtfD]Y}tttddg|}|}|||ZdSNrrnr)rr
rrjrr)rur)rlrHs    r>#test_ndarray_memoryview_from_bufferz6TestBufferProtocol.test_ndarray_memoryview_from_buffersk[	$	$EeAhhs%@@@B))++AQ####	$	$r_c	dtfD]l}tttddg|}tdD]-}|||t||g.mdSr)rr
rrjrr)rur)rlrs    r>test_ndarray_get_pointerz+TestBufferProtocol.test_ndarray_get_pointers[	>	>EeAhhs%@@@B1XX
>
>  AB(<(<====
>	>	>r_ctttdgd}t|ttz}|||t|}|||dS)Nr)r!r!rrr)r
rrjrrrrdrQ)rurrlrHs    r> test_ndarray_tolist_null_stridesz3TestBufferProtocol.test_ndarray_tolist_null_stridess
T%))__GGG
4
4
4
R 5
6
6
6biikk222rNNRYY[[11111r_c|tddttt	dddg}ttt	dddg}|t||tdgdgd	}|t|d
|td
|dS)Nrs456rrnrArr,rrrU)rprr
rrjr)rur]rs   r>test_ndarray_cmp_contigz*TestBufferProtocol.test_ndarray_cmp_contigsFF33444DrOOAa5111DrOOAa5111Aq))***QCs3///
1g..///
7A../////r_c	~tjdgd}t|}|tt|tt
td}tt
tddg}|t	|t	|tt
tdddg}|t	|t	|tt
tdgd}|t	|t	|ttt
tdddg}tt
tdddgt}|t	|t	|ttt
tdgd	}tt
tdgd	t}|t	|t	|tt
td}tt
tdgd
t}|t	|t	|tt
tdgd
d}|t	|t	|dS)NrrrrrnrA)rnr!r!rr!rnr!r!r!rnr)
rOr
rrhashrWrrjrrrrr;)rurJrlrs    r>test_ndarray_hashz$TestBufferProtocol.test_ndarray_hash'sKWWW%%
QZZ*dB///
$uRyy//""
T%))__RD
1
1
1b477+++T%))__QqE
2
2
2b477+++
T%))__GGG
4
4
4b477+++
)DrOOAa5999::
T%))__QqE
D
D
Db477+++)DrOO777;;;<<
T%))__GGG:
F
F
Fb477+++
$uRyy//""
T%))__GGG6
B
B
Bb477+++T%))__GGGC
@
@
@b4

#5#566666r_ctttttt
ttttttf}|ttidt
tdddt }dD]@}|D];}t|||}|||<Atdgdgdt }dD].}|D])}t|||}||d	*/tt't)d
gddt }dD].}|D])}t|||}||d	*/dt*fD]}tdgdgd|t z}|}dD].}|D])}t|||}|||*/tgd
dgd|t z}|}dD].}|D])}t|||}|||*/tgd
dgdgt }|}dD]:}ttfD])}t|||}|||*;|ddd}|}dD]@}|D];}	t|||}n#t,$rY!wxYw|||<At't)d}dt*fD]}t|ddg|t z}t.r*t/t1|ddgd|dkrdnd}	|t*kr>tt3|ddgddgt }
|
}n|}|D]}	t|d|}n#t,$rY!wxYw|||td|Dddgt }|t5|t5|t.r*|||	d|dkr*tt3|ddgddgt }
nt|ddgt }
|
}tt
tttfD]}	t|d|}n#t,$rY!wxYw|||td|Dddgt*t z}|t5|t5|t.r*|||	d|t*kr.t|ddgt }
|
}n|}tt
tttfD]}	t|d|}n#t,$rY!wxYw|||td|Dddg|t z}|t5|t5|t.r*|||	dÐtt't)dddgt t8z}t|dt
}|||td|Dddgt }|t5|t5|t|dt
}tt3|ddgddgt }
|||
td|Dddgt*t z}|t5|t5|t|dt
}|||td |Dddgt }|t5|t5|dS)!Nr}rrrrr|r,rr_r6r!rr7rrrnrr!rrrrArrr)r-rr.rcg|]}|Srrrs  r>rzCTestBufferProtocol.test_py_buffer_to_contiguous.<locals>.<listcomp>NNN1QNNNr_rcg|]}|Srrrs  r>rzCTestBufferProtocol.test_py_buffer_to_contiguous.<locals>.<listcomp>	rr_r~cg|]}|Srrrs  r>rzCTestBufferProtocol.test_py_buffer_to_contiguous.<locals>.<listcomp> 	rr_cg|]}|Srrrs  r>rzCTestBufferProtocol.test_py_buffer_to_contiguous.<locals>.<listcomp>,	NNN1QNNNr_cg|]}|Srrrs  r>rzCTestBufferProtocol.test_py_buffer_to_contiguous.<locals>.<listcomp>3	rr_cg|]}|Srrrs  r>rzCTestBufferProtocol.test_py_buffer_to_contiguous.<locals>.<listcomp>9	rr_)rrrrrrrrrrrrrrerr
r*rr;rrjrrr2r/rrQtostringr)
rurrlrrequestrrndbytesrknar]rrs
             r>test_py_buffer_to_contiguousz/TestBufferProtocol.test_py_buffer_to_contiguousLs	
M8\
++/
	
)%<b#'	)	)	)QbK
@
@
@$	2	2E#
2
2+Bw??  BJJLL1111
2
aSC{
C
C
C$	)	)E#
)
)+Bw??  C((((
)T%((^^999S&((($	)	)E#
)
)+Bw??  C((((
)Z
	1
	1A!QC1[=IIIBjjllG(
1
1'11G/E7CCA$$Q000011#c;OOOBjjllG(
1
1'11G/E7CCA$$Q00001
1YYYqcA3k
J
J
J**,,$	-	-E):6
-
-+Bw??  G,,,,
-"X**,,$	-	-E#
-
-/E7CCAA"H  G,,,,
-N599ooZK	@K	@AQF!K-@@@B
? 	#()1vS./1ffss#???
JIcAq6221a&"-///99;;::<<#
@
@/CAAAA"H  H---NNNNN1a&LLL  A
2???@$$Q#(>(>???AvvIcAq6221a&"-///C1v[AAAyy{{H&
~)85
@
@/CAAAA"H  H---NNNNN1a&
;@VWWW  A
2???@$$Q#(>(>???JC1v[AAA99;;::<<&
~)85
@
@/CAAAA"H  H---
NNNNN1a&+
NNN  A
2???@$$Q#(>(>???!
@&T%))__QF+f:L
M
M
M
$B];;BJJLL)))NNNNN1a&DDDA
2777
$B];;IcAq6**1a&LLLAIIKK(((NNNNN1a&
;8NOOOA
2777
$B];;BJJLL)))NNNNN1a&DDDA
277777sH$K66
LL5P
PP2U
UU'Y99
ZZc
dgfgddgfttdgdfg}|D]\}}t||}t|}||j||jt|}t||dd}t||}|
||dd	d
||||		t|}	|
|	|dd	d
||||		t|ttz}
|
|
jd
|
}|
|ddd	d
||||		t|t }
|
|
jd|
|
jd
|
|
jd
|
}|dkr|gn|}|
|ddd	d
d|jgd|		|D]\}}t||t(}t|}||j||jt|}t||dd}t-||}|
||dd	d
||||		t|}	|
|	|dd	d
||||		|ddD]\}}t||t.}t|}t|}t||}|
||dd	d
|||j|		t|}	|
|	|dd	d
|||j|		|t2tdd|t2titgddg}t|t }
|t4t|
t|ttz}
|t4t|
tdgdzdgdzd}
|t6t|
|t6|
j|t6t8|
t:d|t6t8|
t:d|t6t8|
dddt:ddS)Nrrrnrr?rr,rrTrrrr@rr,rr}9r]r$rrr)rrjr
rQrrrrdrrrrrrrrrr(rr9rrrrrrerrrr)ruitems_shaperyrrrHrrrkrrls           r>test_memoryview_constructionz/TestBufferProtocol.test_memoryview_construction<	s{2w1#eEll1C1CWWW0MN(,	!,	!LE5e,,,B2AOOAN+++OOAL)))u::D(ua==G&&CKKr!"d!

!
!
!ABKK!"d!

!
!
!OL$@AAABRZ,,,))++AKKt!"d!

!
!
!L111BRY+++RXr***RZ,,,))++A!QYY5''ECKKt!"dryk4

!
!
!
!(	!	!LE5e:>>>B2AOOAN+++OOAL)))u::D(ua==G&&CKKr!"d!

!
!
!ABKK!"d!

!
!
!
!(O	!	!LE5e6:::B2Au::D&&CKKr!"d!


!
!
!ABKK!"d!


!
!
!
!	
)Zs;;;)Z444
WWWQC
(
(
(
R
-
-
-+z2666
R <
=
=
=+z2666aSWQCGC
8
8
8*j"555*b&?@@@*nb*cJJJ*nb*cJJJ*nb2h
CPPPPPr_cgd}gdgdgdfD]]}t||}||jt|}|t
|jd^tddD]z\}}}td}||}||	d||
g{dS)	Nrrrrrr,rQr_)r
rrrQrrerxrrr;rd)ruryrrmsrcr;rwrHs        r>test_memoryview_cast_zero_shapez2TestBufferProtocol.test_memoryview_cast_zero_shape	s
ggwww0	9	9Ee,,,BOOBO,,,b>>DiC8888$Q55	-	-ICAc??D		#AQYY[[#...QXXZZ,,,,		-	-r_c|j}tj}d}d}tt	d}|td||d|zzt
|ddgd	}|t|||d|zzt
|gd
d	}|t|||d|zzdS)NzPnin 2P2n2i5P P3nr6r_r,r!rArr)r!r!r!rn)check_sizeofrcalcvobjsizerrjrQr
)rucheckvsizebase_structper_dimryrJs       r>test_memoryview_sizeofz)TestBufferProtocol.test_memoryview_sizeof	s!$'U1XX
joouu[1w;%>??@@@E!Q444
jmmUU;W#<==>>>E3777
jmmUU;W#<==>>>>>r_cGddt}Gddt}d}|d|ddtdd	td
dgdhd
ddidddddtddt	dt	ddddd|dg}tddD]a\}}}t
|dg|t}t
|dg|t}	t|}
tj
||	d|||
d<||
d|	dtj|}d|vr|D]}d}
	tj
||	||n!#tj
$rtj
}
YnwxYwd}	||
d<n%#ttf$r}|j}Yd}~nd}~wwxYw|
s|r-||
d||d||
d|	dcdS)NceZdZdZdZdS)=TestBufferProtocol.test_memoryview_struct_module.<locals>.INTc||_dSrvalrurs  r>__init__zFTestBufferProtocol.test_memoryview_struct_module.<locals>.INT.__init__	
r_c|jSrrrts r>__int__zETestBufferProtocol.test_memoryview_struct_module.<locals>.INT.__int__		xr_N)__name__
__module____qualname__rrrr_r>INTr	2



 
 
 
 
 r_rceZdZdZdZdS)=TestBufferProtocol.test_memoryview_struct_module.<locals>.IDXc||_dSrrrs  r>rzFTestBufferProtocol.test_memoryview_struct_module.<locals>.IDX.__init__	rr_c|jSrrrts r>	__index__zGTestBufferProtocol.test_memoryview_struct_module.<locals>.IDX.__index__	rr_N)rrrrrrr_r>IDXr	rr_rcdS)Nr7rrr_r>rz;TestBufferProtocol.test_memoryview_struct_module.<locals>.f	sr_ry@@z-21.1gffffff(@rr!r>rArrBr7r6rrTFasabcrJabcc|Srr)r]s r><lambda>zBTestBufferProtocol.test_memoryview_struct_module.<locals>.<lambda>	sqr_rorQrrrr,)objectr
rEllipsisr/rr
r*rQr8r1rrr:rerrSassertIsNot)rurrrvaluesr;ryrzrrlrHrr
struct_errmv_errrUs                r>test_memoryview_struct_modulez0TestBufferProtocol.test_memoryview_struct_module	s	 	 	 	 	 &	 	 	 	 	 	 	 	 &	 	 	 	#a&&##a&&''**D(1a..''777QqE2ttX	$61B1BudF[[
"!,B = =	2	2Crd3kJJJBrd3kJJJB2AS"a...AaDQqT2a5)))s++Hczz
2
2!
.$S"h::::|...!'JJJ.)AaDD!:.)))[FFFFFF)22$$Z666$$VT2222$$QqT2a51111#
2	2	2s*E&&FF
FF2!F--F2ctgddgdg}||jt|}|t
|jddS)Nrrnrrr)r
rprrQrrerx)rurrs   r>!test_memoryview_cast_zero_stridesz4TestBufferProtocol.test_memoryview_cast_zero_strides

saWWWQC!
5
5
5)))"~~)TY44444r_c	tD]}tdrd|zn|}tj|}tD]}tdrd|zn|}tj|}t	tt
dd|zg|}t|}|t|j
|d|zgtdD]\}}	}
t	|	dg|}t|}tdD]\}}
}
t|s'|t|j
|d|zg<t|s5t|s&|t|j
|d|zgtjd}tjd}t	tt
d|zdd|gd}t|}|t|j
dd|gdt	tt
d	gd
}t|}
|t|
j
|t|
j
ddd|t|
j
i|t|
j
d
|t|
j
d|t|
j
d|t|
j
d|t|
j
d|t|
j
d|t|
j
d|t|
j
d|t|
j
dt	ddgdgd}t|}
|t|
jd|t|
jdd|t|
jt	tt
d	gd
}t|}
|t|
j
dit	tt
d	d	g}t|}
|t&|
j
ddg|t|
j
ddg|t|
j
dgd|t|
j
dgd|t|
j
dgd t	td!t
d"Dgd#}t|}
|t|
j
d$gd%t	tt
d&d&gd$}t|}
|t|
j
d$dgd&zt	td't
d"Dd"g}t|}
|t|
j
d$gd%t	td(t
d"Dd"g}t|}
|t|
j
dgd%t	tt
d&d&gd$}t|}t	tt
d&d&gd}t|}t(jd)krn|t|j
dgd*|t|j
dgd+|t|j
d$gd,dS|t|j
ddd-g|t|j
dgd.|t|j
d$gd/dS)0Nr!rAr2rr,rrrAxrrrnXz@Xz@XYz=Bz!Lz<Pz>lBIxBIr+rIIrr6rr+r)r!rnrArrBr7r)r!rnrArrBr7r)r!rnrArrBr7r]cg|]}dSrrrZs  r>rzCTestBufferProtocol.test_memoryview_cast_invalid.<locals>.<listcomp>_
6661666r_i)rnrr7rr)r!rnrArr$cg|]}dSrrrZs  r>rzCTestBufferProtocol.test_memoryview_cast_invalid.<locals>.<listcomp>i
rr_cg|]}dSrrrZs  r>rzCTestBufferProtocol.test_memoryview_cast_invalid.<locals>.<listcomp>n
rr_l)r7r7Ir/iQiAji	)rrr6)rrrrr!)rrr2r2r!)rrr2r6r!)NON_BYTE_FORMATrr8rr
rrjrQrrerxrrrrrfr/r-rdr
rimaxsize)rusfmtsformatssizedfmtdformatdsizerrsitemsrwsize_hsize_drHrlrrs                 r>test_memoryview_cast_invalidz/TestBufferProtocol.test_memoryview_cast_invalid
sN#	K	KD$-aLL:cDjjdGOG,,E'
K
K(1!>#**$00T%))__RYKPPP!"~~!!)TYr5ykJJJJ
K +1~~
	7
	7OD&!s4888Bb>>D)!nn
7
7
a+D117%%j$)T')5yk3333*$//7t8L8L7)))TY+-u9+777

7%%%%
T%F
++,,QqL
M
M
M"~~)TYq6l3OOO
T%**%%[[[
9
9
9rNN	
)QV,,,)QVQ1555	
)QVR000	
*afc222*afd333*afe444	
*afd333*afd333*afd333*afd333*afd333*afe444eU^A3t
<
<
<rNN-q}a@@@-q}aCCC-qx888T%**%%[[[
9
9
9rNN)QVS;;;T%**%%gY
7
7
7rNN-UGDDD*afc">>>*afc9I9I9IJJJ*afcIII)QVS8I8I8IJJJT66eHoo66677zzz
J
J
JrNN)QVS			BBBT%**%%cU3
?
?
?rNN*afcA3s7;;;T66eHoo66677z
J
J
JrNN)QVS			BBBT66eHoo66677z
J
J
JrNN)QVS			BBBT%**%%cU3
?
?
?
^^
T%**%%cU3
?
?
?
^^;'!!i#AAA
C
C
Cj"'3@@@
B
B
Bj"'3@@@
B
B
B
B
B
i# *o
/
/
/j"'3>>>
@
@
@j"'3>>>
@
@
@
@
@r_cdddfddfddfffd}tjd}td	gd
}t|dd\}}t	|}|d}||dddd|d
|d

tjd}td	g|z|gd
}t|d|g\}}t	|}|dg}|||ddddd|d

tddD]8\}	}
}tj|	|
}t	|}||||
|	9tddD]<\}	}
}t|
dg|	t}t	|}||||
|	=dS)NrcDt|Srrr;rs r>rz9TestBufferProtocol.test_memoryview_cast.<locals>.<lambda>
s4

--r_rcXdt|DS)Nc(g|]}|dkr|dz
n|S)r/r#rrs  r>rzMTestBufferProtocol.test_memoryview_cast.<locals>.<lambda>.<locals>.<listcomp>
s(PPPQWWAcEE!PPPr_rrs r>rz9TestBufferProtocol.test_memoryview_cast.<locals>.<lambda>
s%PPT"**,,=O=OPPPr_rcXdt|DS)NcHg|]}tt|d S)zlatin-1)rWchrrs  r>rzMTestBufferProtocol.test_memoryview_cast.<locals>.<lambda>.<locals>.<listcomp>
s(QQQE#a&&)44QQQr_rrs r>rz9TestBufferProtocol.test_memoryview_cast.<locals>.<lambda>
s%QQd2::<<>P>PQQQr_c
tj|}
D]\}}||}||}||d|ddd|zgd|d

||}	|	||}|	|||dddg|f|d

dS)Nr,Fr3rT	r\rr;rrrrrkrx)r8rrxrrrd)rrHryr;srcsizerRto_bytelistrrkm3bytespecrus          r>iter_roundtripz?TestBufferProtocol.test_memoryview_cast.<locals>.iter_roundtrip
soc**G(0
0
0$VVG__!k"ooBB%&Ge!"2g:, #$000
WWS\\  R(((iikkBB%,#!"2$
 #$0000
0
0r_rrrr,Trrrrrr3rOrQr)
r8rr
r?rQrxrrrOr*)
rurrr	destitems	destshaperHrdestsizer;ryrwr
s
`           @r>test_memoryview_castz'TestBufferProtocol.test_memoryview_cast
s+--
.PP
QQQ
R
	0	0	0	0	0	0(/#&&
Qb
-
-
-)"c155	9rNN
VVC[[BBC$)T!		.	.	.?3''
aS\(C
@
@
@)"c82FFF	9rNN
VVCrV
"
"BB%3"b!		.	.	.)W55	.	.MCS%((B2AN2q%----)\::	.	.MCrd3kJJJB2AN2q%----	.	.r_cntD]}tdD]}|dkr
dtd|z}tj|}t||z}t
|rdnd}t||D]\}}}	tj|}
|dkr|gng}||
gz}t|||}
t|
}t|
|||	\}}|#|t|j
|||d
krt|||}|
||	}t|}|j}|}|||
||d||||d

|
|}|
||	}t|}|
j}|
}|||
|
|d||||d

|||
|
|d||||d

t$rGd
dt$j}|dd}t|}|
d}||j|||jd||jd||jd||j|jf||jd||jdt%jd}t|}|
d}||j|||jd||jd||jd||j|jf||jd||jddSdS)NrAr)r@rAr!rQrRrrrr8Trc2eZdZdejfdejfgZdS)>TestBufferProtocol.test_memoryview_cast_1D_ND.<locals>.BEPointr]rN)rrrctypesc_longc_double_fields_rr_r>BEPointr
s& &-032HIr_rrg33333i@rr,Frr333333?r)rIrVrr8rrrrr
rQr?rrerxrdrrdrrBigEndianStructurerr\rrrrrr9rhr)ru_tshaper[tfmttsizerr\r;ryrwsizertshaperrHtitemsrlrrrrkr	m4rpointrr]s                           r>test_memoryview_cast_1D_NDz-TestBufferProtocol.test_memoryview_cast_1D_ND
si%5	45	4G4
44
43;; 1.5--MME)&4T&:&:Ill	%0C%8%8+4+4MC!?3//D#$q55QCCbE$v-F eC@@@B"2A%/D%v%N%N%NNFF~)))QVT6JJJ  !vdCCCBF33Bv;;D jG))++CKK).D4%)$'d 444BE22Bu::D jG))++CKK)-3%)$'d 444
KK)-3%)$'d 4444Q+44
4l	0
J
J
J
J
J&3
J
J
JGC''EE""BBRVU+++R[!,,,MM"+u---RWa(((RX	|444RZ...R]B///$$AABBRVQ'''R[!,,,MM"+u---RWa(((RX	|444RZ...R]B/////1	0	0r_c	vtjdttdd}t|}|||||||ddd}|ddd}||||||t
ttdgdd	}t|}|||t
d
dgdgd	}t|}|t|jt
d
gdgd	}t|}|t|jt
gdddgd	}t|}|t|jdS)Nrr7rBr!rni	)rr!r7rnrrr)r!r)r7rr<12345r,r)rbcdef)	rOrrjrQrrdr
rrf)rurJrHrs    r>test_memoryview_tolistz)TestBufferProtocol.test_memoryview_tolists
KT%A,,//00qMMAQXXZZ000
addG
addGAQXXZZ000
T%
++,,LLL
M
M
MrNNRYY[[111
fg&qc$
?
?
?rNN-qx888
hZs3
7
7
7rNN-qx888
444QqE#
N
N
NrNN-qx88888r_cVttd}|}||d||}||ddS)Nrz<memoryz	<released)rQr/__repr__r
startswithr)rurHrs   r>test_memoryview_reprz'TestBufferProtocol.test_memoryview_repr5s~y||$$
JJLLY//000			
JJLL[1122222r_cdD]z}td}tj|d|dg}t|}|d||d||d|{t	dgd}t|}|ttdtdS)	N)rrg?g@g"@rrz9.0 in m)	floatrOrQassertInr
rrerCrD)rur;infrrHs     r>test_memoryview_sequencez+TestBufferProtocol.test_memoryview_sequence>s	"	"C,,CS3S/22B2AMM#q!!!MM%###MM#q!!!!
S"S
)
)
)rNN)T:vxx@@@@@r_c#K|t5}dVdddn#1swxYwY|t|jd|fzdS)Nz#index out of bounds on dimension %d)rr0rstr	exception)rudimcms   r>assert_out_of_bounds_errorz-TestBufferProtocol.assert_out_of_bounds_errorLs


z
*
*	bEEE															R\**>#G	I	I	I	I	Is.22ctdgd}t|}||dd||d|||d||t|jdtdgd}t|}|t|jdtttd	d	gt
}t|}|t|jd|t|jd|t|jd
|t|jd|t|jdtttdddgt
}t|}||dd||dd||dd||dd||dddD]:}|d5||dfdddn#1swxYwY;dD]:}|d5|d|fdddn#1swxYwY;|t|jd|t|jd|t|jd |t|jd!|t|jd|t|jddS)"N)@rrr.rriiir7rr+@r6rrnrArr)r!rrrrr)rrrnrr,r8rArr!r+rr*rrrr?r?)r
rQrrrer/rfrrjr*r0r:)rurrHindexs    r>test_memoryview_indexz(TestBufferProtocol.test_memoryview_indexSsTC
0
0
0rNN2%%%3###3$$$)Q]A666
WBu
5
5
5rNN-q}bAAAT%((^^A3k
B
B
BrNN*amU;;;)Q]C888)Q]C888	
*amR888*amQ777T%))__QqE
E
E
ErNN4!$$$4!$$$4"%%%6B'''6A&&&		E00Q077

%(














		E00Q077

!U(














*amZ@@@*amZ@@@)Q]I>>>)Q]J???	
-q}bAAA-q}a@@@@@s$'J>>K	K	$K;;K?	K?	c
tdgdt}t|}d|d<||ddd|d<||dd|t
|jdd	tttd
d
g}t|}|t
|jdd
tttd
d
gt}t|}|t|jdd|t
|jdd
|t
|jdd|t|jdd|t|jddtdD]}|dks|dkrtgddg|t}t|}tdd}d||<|||d|||||tgddgdt}t|}d|d<||ddtgd dgdt}t|}d!|d"<||d"d!td#gd"gdt}t|}|t
|jdd$tttd%gd&t}t|}td
D]\}}|dkr|dkr||}|\}	}
|d'ks|dkrdd(zdd(z}
}	|d)krG|t|jd|	d"z
|t
|jdd*|t|jd|
|d}|t|jdd+tttd"d"gd,t}t|}|t |jdd"td-gd"gd.t}t|}|t |jdd"tttd/dd0gt}t|}d1|d2<||dd"d1d3|d4<||ddd3d5D]7}|d"65d||df<dddn#1swxYwY8d7D]7}|d65d|d|f<dddn#1swxYwY8|t|jd8d|t|jd9d|t
|jd:d|t
|jd;d|t |jdddgdS)<Nr<rrg6@rg7@.rg333338@r7rr!rorr+rr>r?rr@rr6rArrrrnr)123r)TFTTr,xrrrrrrrsxLr$rrrA*)rr,+rBrCrDrErFr*rGrH)r
r*rQrrrer-rrjr0rVrrryrxrrfr:)rurrHr;rrlr_rangerlohirIs            r>test_memoryview_assignz)TestBufferProtocol.test_memoryview_assignsTC{
C
C
CrNN"2%%%#2%%%)Q]At<<<T%((^^A3
/
/
/rNN)Q]Ar:::T%((^^A3k
B
B
BrNN*amUA>>>)Q]C<<<)Q]C<<<	
*amR<<<*amQ;;;3<	*	*CczzSCZZC{KKKB2A"a  AAaDQqT1%%%QqT2a5))))
'''s3&(((rNN!1t$$$
(((C&(((rNN!

adD!!!dVA3s+
F
F
FrNN)Q]As;;;
T%**%%[[[
L
L
L
^^"3<--//	A	AKCs

czzBFBczzSCZZT'1d7Bczz!!*bnaAFFF!!)R^QFFFj".!R@@@@WWS\\*bnaEEET%((^^A3t;
O
O
OrNN-q}aCCC
hZs3k
J
J
JrNN-q}aCCCT%))__QqE
E
E
ErNN#Aq2&&&%Aq2&&&	 	 E00Q077
 
 %(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 	 	 E00Q077
 
 !U(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 *amZCCC*amZCCC)Q]IqAAA)Q]JBBB	
-q}a!QHHHHHs$4XX	X	.YY		Y	c
tttddgt}t	|}|t|jtddd|t|j	tdddtddg|t|jdtttddgt}t	|}|t|jtdddtdddf|t|j	tdddtdddftddg|t|jtdddif|t|j	tdddiftddg|t|j	tddddgdtfD]}tttddgdgdt|z	}tttd
dgdg|}t	|}t	|}|dd|dd<|dd|dd<|||||||ddddd|dd
ddd<|ddddd|dd
ddd<|||||||dddddd|dddddd<|dddddd|dddddd<||||||dS)Nrrrr!r,rrr)rrrr)rrrnrAr)r
rrjr*rQrrr/rr-r/rfrerr)rurrHr)rrrrs        r>test_memoryview_slicez(TestBufferProtocol.test_memoryview_slices
T%))__RD
D
D
DrNN	
*amU1Qq\\BBB*amU1Qq\\#QqE**	,	,	,	
-q}bAAAT%))__RD
D
D
DrNN-q} 1Q<<q16	8	8	8-q} 1Q<<q16	1Q%8H8H	J	J	J	
)Q]U1Qq\\24FGGG)Q]U1Qq\\24F#QqE**	,	,	,	
)Q]E!AaLL1#FFF[	&	&E$uRyy//"tB +E 1333C$uRyy//"s%PPPCCBCB1Q3xC!H1gBqsGR%%%R%%% 1Xccc]C!HTTrTNqsGCCaCLBqsGDDbDMR%%%R%%% #AaE
33Q3C!BK"!!Aa%y1~Bq2vJtttR%%%R%%%%/	&	&r_c|d}tddD]}t|dD]\}}}t|D]y}t|D]e}tj||}tj||}	t	|	}
||
|||
|||
||t|
t|||||	|
|d}d}	||}
||}||||<t|
t|k}n#t$r}|j
}Yd}~nd}~wwxYwd}	|
||
|<n#t$r}|j
}Yd}~nd}~wwxYw|r||t|s|r|||||
|||
|||
|||||	|
|g{dS)Nct|D]\}}||}||}||||||<||kr-||||||n,|||||||||<|||||||||<|||<dSr)r0rassertNotEqual)	testcaserJrrH
singleitemrrwaimis	         r>cmptestz9TestBufferProtocol.test_memoryview_array.<locals>.cmptest/s!!

1qTqT$$R,,,!!##++Aq111++Aq1111((A...((A...!!$$Q***$$Q***!!

r_r,rrO)
rjrrKrOrQrrdr;rdrRrSrr)rurbrr;ryr_r\rSrJrrH	array_errhave_resizealarrUm_errs                 r>test_memoryview_arrayz(TestBufferProtocol.test_memoryview_array-s			$q!(	?(	?A*5a*A*A'
?'
?&UJ'll&?&?F"+A,,%?%?!KU33!KU33&qMM((A...((QXXZZ@@@((aiikkBBB((QQ888aAz:::$(	&*4!"6B!"6B()&	AfI*-b''SWW*<KK(444()IIIIII4!%0()&	AfII(000$%KEEEEEE0'? MM%<<<<"?i? MM%;;;; ,,Q222 ,,QXXZZDDD ,,QYY[[!))++FFF#GD!Q:>>>>K%?&?'
?(	?(	?s0;F
F0F++F06G
GGGctjdgd}tjdgd}t|}t|}dD]f}|t|||t|t|||tgt|}||||||||||t|}t|}|||||||t|}||gdtdgdgdt}d	td
f|d<|t||tjdd
}t|}||||||trGddtj}|dd}t|}t|}||||||||||
t|jdSdS)Nrr)r,r!r7)__lt____le____gt____ge__rAr,zl x d xrrr8rurc2eZdZdejfdejfgZdS)ITestBufferProtocol.test_memoryview_compare_special_cases.<locals>.BEPointr]rNrrrrrrrr_r>rrp& &-03
2FGr_rrr*)rOrQrgetattrr9rrr]r
r*r1rrrrfrd)	rurJrrwattrrlrr!s	         r>%test_memoryview_compare_special_casesz8TestBufferProtocol.test_memoryview_compare_special_casesksKYYY''KYYY''
qMMqMM<	?	?DMM*'!T**1--~>>>MM*'!T**1--~>>>>
qMM			AAq!!!Aq!!!qMMqMM			Aq!!!Aq!!!
qMMAyyy)))fXaS+
N
N
NU5\\"1JrNNB///
KU##qMMAq!!!Aq!!!
	=
H
H
H
H
H&3
H
H
HGC%%E5!!A5!!A1%%%5)))q)))118<<<<<
	=
	=r_ctdgd}tdgdt}t|}t|}||||||||||||||||||||||||d|d<||||||||||||||||||||||||tttddgttz	}tttddgttz	}t|}|||d
|d<|||tdgd
}tdgdt}t|}t|}||||||||||||||||||tdgd
}tdgdt}t|}t|}||||||||||||||||||||||||dS)N@Lrrrirrrrr)rxrr$Lf5shf5s)i?rr$)r
r*rQrrp__ne__r]r8rrjr)rund1nd2rrtrlrrHs        r>!test_memoryview_compare_ndim_zeroz4TestBufferProtocol.test_memoryview_compare_ndim_zeros)d"T222d"SDDDsOOsOOAAC   a   C   a   !%%%!%%%"Aq!!!Aq!!!As###C###As###C###!%%%!%%%
T%))__RDF8J
K
K
K
T%))__RDF8J
K
K
KrNNB!Ar"""+2fEEE+2f')))sOOsOOAAC   a   C   a   +2fEEE,Bv')))sOOsOOAq!!!Aq!!!As###C###As###C###C   C     r_c^	tgddgd}tgddgd}t|}t|}|||||||||||||||tgddgd}tgddgd}t|}t|}|||||||||||||||tgdd	gd}tgddgd}t|}t|}|||ddd
||ddd
||||ddd
||ddd|dddtgdd	gd
}tgddgd}t|}t|}|||ddd
||ddd
||||ddd
||ddd|dddtgdd	gd}tgddgdt}t|}t|}|||ddd
||ddd
||||ddd
||ddd|dddtgdd	gd}tgddgdt}t|}t|}|||ddd
||ddd
||||ddd
||ddd|ddddS)N@'r@hr)rrrriz<iz>h)rrrrnr!rrz!hz<lrzh  0cz>  h)r
rQrr]rrur}r~rrts     r> test_memoryview_compare_ndim_onez3TestBufferProtocol.test_memoryview_compare_ndim_ones
2221#dKKK111!TJJJsOOsOOC   C   As###As###Aq!!!2221#dKKK111!TJJJsOOsOOC   C   As###As###Aq!!!(((DAAA2221#dKKKsOOsOOC!H%%%33Q3%%%AcccF###44R4!DDbD'***(((DAAA2221#dKKKsOOsOOC!H%%%33Q3%%%AcccF###44R4!DDbD'***(((DAAA2221#d"$$$sOOsOOC!H%%%33Q3%%%AcccF###44R4!DDbD'***(((GDDD2221#f"$$$sOOsOOC!H%%%33Q3%%%AcccF###44R4!DDbD'*****r_ctddgdgd}tddgdgd}t|}t|}|||||||||||||||tddgdgd}tddgdgd	}t|}t|}|||||||||||||||dS)
Nrrrri|i?z= h0cz@   ir
rQrrs     r>"test_memoryview_compare_zero_shapez5TestBufferProtocol.test_memoryview_compare_zero_shape'
s|sCjD999tTl1#d;;;sOOsOOC   C   C   C   AsCjG<<<tTl1#g>>>sOOsOOC   C   C   C   Ar_ctgddgd}tdgdgdgd}t|}t|}|||||||||||||||td	gdzdgd
}td	gdgdgd}t|}t|}|||||||||||||||dS)N)rrrrrAryrrrrr)rrz@ Liz!L  hrrs     r>$test_memoryview_compare_zero_stridesz7TestBufferProtocol.test_memoryview_compare_zero_stridesA
s***1#dCCCseA3C@@@sOOsOOC   C   C   C   Azl1nQC???zl1#s7KKKsOOsOOC   C   C   C   Ar_cxd}tdD]}t|dd|\}}}dtfD]k}t||g||}t	|}||||ddd}t	|}|||ld}t
dD]}	t|\}}}dtfD]k}t||g||}t	|}||||ddd}t	|}|||ldS)	NrorIrQrArrrr)rVr}rr
rQrrj)
rurr[r;ryr_r)rlrHrws
          r>&test_memoryview_compare_random_formatsz9TestBufferProtocol.test_memoryview_compare_random_formats[
sv
DM		(		(D%.q,T%J%J"C
V
(
(U1#cGGGrNN  B'''"XrNN  B''''
(
s		(		(A%.q\\"C
V
(
(U1#cGGGrNN  B'''"XrNN  B''''
(		(		(r_cjtttddgdd}tttddgdd}t|}t|}|||||||||||||||tdgdzgdd	}td
gdzgdd}t|}t|}|||||||||||||||tttdgdd
}tttdgdd
}t|}t|}|||||||||||||||tdgdzddgd}tdgdzddgd}t|}t|}|||||||||||||||tttdgdd
}tttdgdd}t|}t|}|||||||||||||||dS)Nr5rnr!rrrrrrr,r!z=f q xxL)g333333r,r!z< f 2Qr?rrnr7z! b B xLz
= Qx l xxLrr
rrjrQrr]rs     r>"test_memoryview_compare_multidim_cz5TestBufferProtocol.test_memoryview_compare_multidim_cw
sd5b>>**)))DIIId5B<<((			$GGGsOOsOOC   C   As###As###Aq!!!yk"nIIIjIII|nR'yyyJJJsOOsOOC   C   As###As###Aq!!!d599ooYYYsCCCd599ooYYYsCCCsOOsOOC   C   As###As###Aq!!!yk"nQF:FFFyk"nQF<HHHsOOsOOC   C   As###As###Aq!!!d599ooYYYsCCCd599ooYYYsCCCsOOsOOC   C   C   C   Ar_cB	tttddgddt}tttddgddt}t	|}t	|}|||||||||||||||tdgd	zd
dgdt}td
gd	zd
dgdt}t	|}t	|}|||||||||||||||tttddgddt}tttddgddt}t	|}t	|}|||||||||||||||tttddgddt}tttddgddt}t	|}t	|}|||||||||||||||tttdgddt}tttdgddt}t	|}t	|}|||||||||||||||dS)Nrr5)rr!rnrrrrrrrBr!rn=Qq)rrz=qQr?rr0llrK)r
rrjrrQrr]rs     r>(test_memoryview_compare_multidim_fortranz;TestBufferProtocol.test_memoryview_compare_multidim_fortran
svd5b>>**)))D&(((d5B<<((			$&(((sOOsOOC   C   As###As###Aq!!!}oa'1ve&(((}oa'1ve&(((sOOsOOC   C   As###As###Aq!!!d5b>>**)))C&(((d5b>>**)))C&(((sOOsOOC   C   As###As###Aq!!!d5b>>**)))E&(((d5b>>**)))C&(((sOOsOOC   C   As###As###Aq!!!d599ooYYYt&(((d599ooYYYt&(((sOOsOOC   C   C   C   Ar_cjttdd}t|gd}t|gdd}t|gddt}t|}t|}|||||||||dgd	z}d
|d<t|gd}t|gdd}t|gdd
t}t|}t|}|||||||||tttdddgd}|ddddddf}tttdddgd}|ddddddf}t|}t|}|||||||||||||||tdgdzddgd}|ddddddf}tdgdzddgd}|ddddddf}t|}t|}|||||||||||||||tttd	gdd}|dddddf}tttd	gdd}|dddddf}t|}t|}|||||||||||||||tttd	gdd}|dddddf}tttd	gdd}|dddddf}t|}t|}|||||||||||||||tdgd	zgd d!}|dddddf}tdgd	zgd d"}|dddddf}t|}t|}|||||||||||||||dS)#Nrr5r@lrrr)gffffff
rPr)grrPrzd b czd h c(r6@Irnr,rrr)rr&rr!z=iiz>iir?rr)r!rrrnr!b3si3s)rrjrr
rrQrr])	rulst1lst2r}r~rrtrrs	         r>&test_memoryview_compare_multidim_mixedz9TestBufferProtocol.test_memoryview_compare_multidim_mixed
sYE#rNN##yyy))d)))D999d)))CzJJJsOOsOOC   C   A""2%#Qyyy))d)))G<<<d)))G:NNNsOOsOOC   C   Ad599ooaVDAAA!Ab&$$B$,d599ooaVC@@@!Aa%2+sOOsOOC   C   As###As###Aq!!!()",RGEJJJ!Ab&$$B$,()",RGEJJJ!Aa%2+sOOsOOC   C   C   C   Ad599ooYYYsCCC!A$"*od599ooYYYsCCC!A$"*osOOsOOC   C   As###As###Aq!!!d599ooYYYsCCC!A$"*od599ooYYYsCCC!A$"*osOOsOOC   C   As###As###Aq!!!{mB&iiiFFF!A$"*o{mB&iiiFFF!A$"*osOOsOOC   C   As###As###Aq!!!!!r_ctttdgdd}tttdgdd}t|}t|}|||||||||||||||tttdgdd}tttdgdd}t|}t|}|||||||||||||||dS)Nr)rrnr!rr)rrr!z@irrs     r>+test_memoryview_compare_multidim_zero_shapez>TestBufferProtocol.test_memoryview_compare_multidim_zero_shape^sd599ooYYYsCCCd599ooYYYtDDDsOOsOOC   C   As###As###Aq!!!d599ooYYYsCCCd599ooYYYtDDDsOOsOOC   C   As###As###Aq!!!!!r_cjtdgdzgdd}tdggdgdd}t|}t|}||||||||||||||||||td	gd
zddgd
}td	gddgddgd}t|}t|}|||||||||||||||dS)Nrr)rArrAryrrGrrr+ror!rz=lQrz<lQ)r
rQrrdrs     r>-test_memoryview_compare_multidim_zero_stridesz@TestBufferProtocol.test_memoryview_compare_multidim_zero_stridesxsseBhiii===se999iiiLLLsOOsOOC   C   C   C   AQXXZZ000vhrk!Q>>>vhq!fq!fUKKKsOOsOOC   C   C   C   Ar_crtttdddgd}|dddddd	f}tttdddgd
t}|dddddd	f}t	|}t	|}|||||||||||||||tdgdzddgd
t}d|dd<|dddddd	f}tdgdzddgdttz}d|dd<|dddddd	f}t	|}t	|}|||||||||||||||tttdgddt}|ddddd	f}tttdgdd}|ddddd	f}t	|}t	|}|||||||||||||||tdgdzgddttz}|ddddd	f}tdgdzgdd}|ddddd	f}t	|}t	|}|||||||||||||||tttdgddt}|ddddd	f}tttdgddt}|ddddd	f}t	|}t	|}|||||||||||||||tdgdzgddttz}d|ddd<|ddddd	f}tdgdzgddttz}d|ddd<|ddddd	f}t	|}t	|}|||||||||||||||ttdd }t|gd}t|gdd!t}t|gdd"ttz}t	|}t	|}|||||||||d#gdz}d$|d%<t|gd}t|gdd&t}t|gdd'ttz}t	|}t	|}|||||||||dS)(Nrrr6rrrnr,rrrrrr)r,rr!r7z>Qqrr?rr)rrBbrr)shellor_r,)rnrnrn5s0sP)ssushir_r,rr5rr)ssashimisslicedg4@)sramensspicygfffff"@rz
< 10p 9p dz
> 10p 9p d)
r
rrjrrQrr]r*rr)	rurr}rr~rrtrrs	         r>+test_memoryview_compare_multidim_suboffsetsz>TestBufferProtocol.test_memoryview_compare_multidim_suboffsetssd599ooaVDAAA!Ab&$$B$,d599ooaVCvNNN!Aa%2+sOOsOOC   C   As###As###Aq!!!}ob(Au')))Aq	!Ab&$$B$,}ob(Au";.000Aq	!Aa%2+sOOsOOC   C   C   C   Ad599ooYYYs"$$$!A$"*od599ooYYYsCCC!A$"*osOOsOOC   C   As###As###Aq!!!|nR'yyy";.000!A$"*o|nR'yyyFFF!A$"*osOOsOOC   C   As###As###Aq!!!d599ooYYYs&QQQ!A$"*od599ooYYYt6RRR!A$"*osOOsOOC   C   C   C   A)*2-YYYw";.000)Aq	!!A$"*o)*2-YYYw";.000)Aq	!!A$"*osOOsOOC   C   As###As###Aq!!!E#rNN##yyy))d)))DGGGd)))Cz&?PQQQsOOsOOC   C   A//2-Ryyy))d)))LOOOd)))L&v-///sOOsOOC   C   Ar_cdD]}tdgdzgd|dz}tdgdzgd|dzttz}d|d	d
ddd<t|}t|}|||||||||||||||tdgdzgd|dz}tdgdzgd|dzttz}d
|d	d
ddd<t|}t|}|||||||||||||||dS)N)rDrBrCrEr)r)rnrr!r!r!rrrr,r!rn)r)r'r%QLH)r,r,r,)r
r*rrQrr])ru	byteorderr]rrJrs      r>!test_memoryview_compare_not_equalz4TestBufferProtocol.test_memoryview_compare_not_equals.	&	&I;;;y}MMMA;;;y})*4666A AaDGAJqM!1

A1

AQ"""Q"""1%%%1%%%1%%%./3;;;(000A./3;;;(k*6LNNNA(AaDGAJqM!1

A1

AQ"""Q"""1%%%1%%%1%%%%1	&	&r_c0tjdgd}t|}||tt||t|jd|tt||t|j|t|j|ttdt|t|jd|t|jdddD]#}|t|j
|$tjdgd}t|}t|}|||||||||||||dS)Nr)g?g@gffffff
@rz1.0 in mrr,)r\r9rrr(rrrrhrrr)rOrQrrrrxr
rdr;rCrDr/r-__getattribute__rr])rurJrHrurrrs       r>test_memoryview_check_releasedz1TestBufferProtocol.test_memoryview_check_released1sK___--qMM				
*j!444*afc222*gq111*ah///*ai000*dJAAA*amQ777*amQ:::3	D	DD
j!*<dCCCC
K___--
]]
]]R   


B###B"""R     r_cdtdgd}t|}||||||tgdgd}t|}||||||tfdt	dDgd	d
}t|}||||||tfdt	dDgd
d}t|}||||||t
rjGddt
j}|dd}t|}||t|dSdS)Nrrrrr,z>hQiLlcg|]}Srrrrwrs  r>rz>TestBufferProtocol.test_memoryview_tobytes.<locals>.<listcomp>hs+++Aa+++r_rrz=hQiLlcg|]}Srrrs  r>rz>TestBufferProtocol.test_memoryview_tobytes.<locals>.<listcomp>ms,,,Aa,,,r_r)rr!r!rnr!z<hQiLlc2eZdZdejfdejfgZdS);TestBufferProtocol.test_memoryview_tobytes.<locals>.BEPointr]rNrqrr_r>rrvrrr_rrr*)r
rQrr;rjrrrW)rurlrHrr!rJrs      @r>test_memoryview_tobytesz*TestBufferProtocol.test_memoryview_tobytesYsR
)
Qqc$
/
/
/rNNBbjjll333
aSH
5
5
5rNNBbjjll333
++++r+++7778
L
L
LrNNBbjjll333
,,,,s,,,KKK$&&&rNNBbjjll333	8
H
H
H
H
H&3
H
H
HGC%%E5!!AQYY[[%,,77777
	8	8r_c|ttitd|ttdt
dt
gddgdg}|tt|t
dt
dd	d
}dD]J}t|t|}|||||d	dKt
dd	d
t
}dD]J}t|t|}|||||d	dKdD]}d|d	<t|t
|}|||||d	dd|d	<||d	d||d	dt
dgdgd
t
}dD]w}t|t|}|t|j
d|||||gxt
ttdgdd
t
}dD]O}t|t|}|t
|gggPt
dgdgdt
}dD]h}t|t
|}||||||it
gddgdt
}dD]h}t|t
|}||||||it
gddgdgt}dD]}t|t|}|||||||t|jdd||dd||dd|ddd}dD]}t|t|}|||||||t|jdd||dd||ddt
ttdddgt}dD]_}t|t
|}|t
||`|tt|t
dt|t|}|t
||t
ttdddgttz}dD]_}t|t
|}|t
||`|tt|t
dt|t|}|t
||t
ttdddgtt z}dD]}|tt|t
|t|t|}|t
||t
gddgdg}t|td}||jdS)Nr}rPrrr!rr~rrrrr|rror,rr6rrrnrrrrrrAr)rr~)r}r~r)rrerrrPyBUF_WRITEr
rr*r0r/rdrrjr-rrrr)rurlrrHs    r>test_memoryview_get_contiguousz1TestBufferProtocol.test_memoryview_get_contiguous|s	
)^RSIII	
+~t[#NNNYYYqcA3
7
7
7+~r;LLLQb
-
-
-$	'	'Er:u55AQ###QrUA&&&&QbK
@
@
@$	'	'Er:u55AQ###QrUA&&&&%	)	)EBrFr;66AQ###QrUA&&&AbEQrUB'''RVR((((aSC{
C
C
C$	-	-Er:u55Aj!-;;;Q###QXXZZ,,,,
T%((^^999S&((($	<	<Er:u55AWQZZ..002r(;;;;aSC{
C
C
C$	6	6Er;66AQ###QXXZZ5555
YYYqc#[
I
I
I$	6	6Er;66AQ###QXXZZ5555YYYqcA3k
J
J
J$	'	'Er:u55AQ###QXXZZ555i2>>>QqT1%%%RUA&&&&
"X$	'	'Er:u55AQ###QXXZZ555i2>>>QqT1%%%RUA&&&&T%))__QF+
F
F
F	?	?Er;66AWQZZ..00"))++>>>>+~r;LLL2z511**,,biikk:::
T%))__QF&z1333	?	?Er;66AWQZZ..00"))++>>>>+~r;LLL2z511**,,biikk:::T%))__QF+f:L
M
M
M$	?	?Ek>2{#
%
%
%r:u55AWQZZ..00"))++>>>>[[[aS
9
9
92z3//'''''r_ctjd}tjdgd}t|}t	j|}t
d|z}||||	|tjd}tttdgdd}t|}t	j|}t
d|z}||||	|dS)Nrrrrrrr)
r8rrOrQioBytesIOr/readintorr;r
rrj)rurrJrHr3rrls       r>test_memoryview_serializingz.TestBufferProtocol.test_memoryview_serializingss##K[[[))qMMjmmafQa(((s##
T%))__GGGC
@
@
@rNNjmmeDj!!Qa(((((r_c	tttd}t|}|t|t||dddg}|t|t||ddd}tttdddd}|t|t|tttdgdt	}t|}|t|t|tttdgd}|ddd
dddddf}t|}|t|t|tttdgdt	}|ddd
dddddf}t|}|t|t|tttddgd
}t|}tttddgd}t|}||||t|t|tttdgdd}t|}|
t|jtttddgdd}t|}|
t|jtttdgdd}t|}|
t|jtttddgdd}t|}|
t|jdS)NrrrnrArrrrrr!r)r!rrnrrrrrr7rBrz= Lz< h)
rWrrjrQrrrxr
rrrr__hash__)	rurrHmcmxrlr]rJrs	         r>test_memoryview_hashz'TestBufferProtocol.test_memoryview_hashs
$uRyy//""qMMa$q''***VVC!uV
%
%b477+++tttW$uRyy//$$B$'((b477+++T%))__GGG:
F
F
FrNNa$r((+++T%))__GGG
4
4
4sssBBB"}qMMa$q''***T%))__GGG6
B
B
BsssBBB"}qMMa$q''***
DrOOB4<<<qMMDrOOB4<<<qMMAa$q''***T%))__GGGC
@
@
@rNN*aj111
T%A,,''wwws
C
C
CrNN*aj111
T%))__GGGE
B
B
BrNN*aj111
T%A,,''wwwu
E
E
ErNN*aj11111r_c
|tgd}t|}t|}|t|j~|tgd}t|}t|tt}t|tt}||j	||t|j~~|tgd}t|}t|}t|}||t|j~|tgd}t|}t|}t|tt}t|tt}||j	|||t|j~~|tgddgt}t|}|gddgt|}t|}||
|
t|}	||	
|
||	
|
||	|||
|
~||d}
td	}t|5}|
|||d
tddddn#1swxYwYtt!t#dgd
d}t|tt}	t|	tt}||j	|t|5}|
|||d
d
gdgdggdddn#1swxYwYd
tfD]}td	}t|5}~t|t|}	t|	5}~	t|t|}t|5}
~|
|
|
||
|||d
td||dtd||
dtd~
dddn#1swxYwY~dddn#1swxYwY~dddn#1swxYwYtd	}t|5}~t|t|}	t|	5}~	t|t|}t|5}
~|
||
||
|
||d
td||dtd||
dtd~~~
dddn#1swxYwYdddn#1swxYwYdddn#1swxYwYtd	}|t5t|5}t|}|d
tdkdddn#1swxYwYddddS#1swxYwYdS)Nrrr)rnr)rArrBr7r6rrcXt|5}	ddddS#1swxYwYdSr)rQ)rrs  r>catch22z;TestBufferProtocol.test_memoryview_release.<locals>.catch22srA
"

















s##rrrMrrrrr,r)rnrArrNr!rO)r/rQr
rrrrND_REDIRECTrr\r
rrrdrordrrj)rurJrHrlr}r~rrr]rrrmr)r	rs               r>test_memoryview_releasez*TestBufferProtocol.test_memoryview_releaseKs	
gggqMM
QZZ+qy111			gggqMMa
[AAAc-{CCC

cgq!!!+qy111			
ggg
]]
^^
R[[


+rz222


ggg
]]
^^bkBBBc-{CCC

cgr"""


+rz222


WWWQC|
<
<
<
^^
A3'''
^^rNNRYY[[111rNNRYY[[111RYY[[111


			
RYY[[111


			
			
f
]]	/bGBKKKRUCII...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/
DrOO7773???Am;???Am;???

aeQ
]]	HaGAJJJQqsV]]__			999/E.FGGG	H	H	H	H	H	H	H	H	H	H	H	H	H	H	H
%#	'#	'E&!!AA
"B}EBBB]]b=FFFA#A"((AD		:::((AD		:::((AD		:::!














$&!!AA
'"B}EBBB]]'b=FFFA#A'"((AD		:::((AD		:::((AD		:::B''''''''''''''''''''''''''''''
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'"
f


{
+
+	"	"A
"!QZZ!D		!!
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"s?5RRRAU**U.1U.([
(Z2/BZ	Z2Z
Z2!Z
"Z2&[
2Z66[
9Z6:[

[	[	3(`(`B!_0	$`0_4
4`7_4
8`;``````"	%`"	b1$)b
b1b	b1 b	!b11b58b5ctdtdDdgd}tjddtdD}||fD]w}t|tt}t|tt}t|}||j|||j|||j||||||||||||dd|dd||dd|dd||dd|dd~~||dd|ddydS)	Ncg|]}d|zSr0rrs  r>rz?TestBufferProtocol.test_memoryview_redirect.<locals>.<listcomp>s111!cAg111r_rrrcg|]}d|zSrrrs  r>rz?TestBufferProtocol.test_memoryview_redirect.<locals>.<listcomp>s999!cAg999r_rr,rn)	r
rjrOrrrQrr\r)rurlrJr]rrmrHs       r>test_memoryview_redirectz+TestBufferProtocol.test_memoryview_redirects
11uRyy111"c
J
J
JK99uRyy999::a	-	-A-{CCCA-{CCCA1

AMM!%###MM!%###MM!%###Q"""Q"""Q"""QqsVQqsV,,,QqsVQqsV,,,QqsVQqsV,,,1QqsVQqsV,,,,#	-	-r_cLd}gd}|ttdddt}t|}|||d|dddgdg|		tdD]}||||~~t}t|}~~t}t|t	}t|t	}t|}|	|j
||	|j
||||d|dddgdg|		~~~~t}t|tt
}t|tt
}t|}|	|j
||	|j
||	|j
||||d|dddgdg|		~~~~td}t|}||dd|dddgdg|		tdD]}||||~~td}t|}~~td}t|t	}t|t	}t|}|	|j
d|	|j
||||d|dddgdg|		~~~~td}t|tt
}t|tt
}t|}|	|j
d|	|j
||	|j
||||d|dddgdg|		~~~~dS)Nr)rr,r!rnrArrBr7r6rrorr,r!rnTrrrr)legacy_mode)rrestaticarrayrQrrjrr
rrr\r)rur;rkr]rrrmrHs        r>$test_memoryview_from_static_exporterz7TestBufferProtocol.test_memoryview_from_static_exportersN)))	
)[!Q:::
MMqMMA1C$2$				r	&	&AQqT1%%%%

MMqMM

MMAm,,,Am,,,qMM

aeQ

aeQA1C$2$				
q!QMMAm;???Am;???qMM

aeQ

aeQ

aeQA1C$2$				
q!Q
D)))qMMA4C$2$				r	&	&AQqT1%%%%

D)))qMM

D)))Am,,,Am,,,qMM

aeT"""

aeQA1C$2$				
q!QD)))Am;???Am;???qMM	


aeT"""

aeQ

aeQA1C$2$				
q!QQQr_ctgddgttz}|tt
|dS)Nrrnr)r
rND_GETBUF_UNDEFINEDrrrQrs  r>#test_memoryview_getbuffer_undefinedz6TestBufferProtocol.test_memoryview_getbuffer_undefinedAsBWWWqc8K)K
L
L
L+z266666r_c|tgddgt}|tt|dS)Nrrnr)r
rrrrQ)rur]s  r>test_issue_7385z"TestBufferProtocol.test_issue_7385Gs:GGGA3n===+z155555r_cdD]<}|tj|tj|=dS)N)r@ii3s)r	_testcapiPyBuffer_SizeFromFormatr8r)rur(s  r>test_pybuffer_size_from_formatz1TestBufferProtocol.test_pybuffer_size_from_formatKsT'	6	6FY>vFF#_V44
6
6
6
6	6	6r_NF)Vrrrrvrrrrequires_resourcerrrrrr r"r'r1r3r5r:r=rArErMrOrXrZrbrernrrrrrrrrrrrrrrrrrrrrrr"r*r.r4
contextlibcontextmanagerr:rJrWrZrhrvrrrrrrrrrrrrrrrrrrrrrrcpython_onlyrrr_r>rprps111"'UHHHHHT.,.,.,.,`Wu%%g<g<&%g<R\=\=\=| $$$
'
'
'333*===+)+)+)Z%L%L%LN6664EEE......`,1,1,1\HHH>---&W7W7W7r<<<(DDD@!@!@!@F4/4/4/l>>>B'0'0'0R3338<E<E<E|(((III&;;;///
$$$>>>222
0
0
0#7#7#7Jn8n8n8`sQsQsQj---$'L???626262p555q@q@q@f:.:.:.xWu%%R0R0&%R0h999<333AAAIII3A3A3AjkIkIkIZ6&6&6&p<?<?<?|3=3=3=j=!=!=!~F+F+F+P44(((8<<<|FFFP_"_"_"B"""46B&&&:&!&!&!P!8!8!8Fs(s(s(j)))<:2:2:2x~"~"~"@---0\\\|777666
66666r_rp__main__)r
NN)rr4r)rr4rrrrD)irunittesttestrtest.supportr	itertoolsrrrandomrrr	warningsrirOrosdecimalr
	fractionsr_testbufferImportErrorr
r8rEnvironmentVarGuardenvironcatch_warningsrPr2r
SHORT_TESTNATIVEr9r:STANDARDr?rVr;copyrARRAYr@BYTEFMTrqrsrpr^rgrlr{r}rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr#r%r+r4r?rIrKrOrSrr\r`rmrdrhri
skipUnlessTestCaserprmainrr_r><module>rs """"""++++++++,,,,,,,,,,GGGMMMM
FFFMMMM
FFF	&	&	(	(1BJ	 	 	"	"11000000111111111111111111111111111111KKKIII
	
qaQ	qaQ	qaQ	qa	

ss	

C!!!ss<



	yyzzzz!T'
AtG4*

3s|33--c22S
[[]]


	A!H
++--	A::AJ

	...0C0C0CD5555


 ---0000((((222$$$EDgclDDD%%%!!!











000CCCIII,


222<???4



=:=:=:=:~



*
*
*):):):):V999;;;;111@@@@B	8	8	8 CCC
0000%%%%
	3	3	3	3!!!!
&
	


 J
FHI!NLVDEEWEFFR96R96R96R96R96*R96R96GFFER96jrzHMOOOOOsA

AAA  A*)A*.A33A=<A=CC%B8,C8B<	<C?B<	CCCCCCC%$C%)C..C87C8D66
EE