+
     ]i  c                   sV   ^ RI t ^ RIt^ RIHtHtHtHt ^ RIt^ RI	H
t
 ^ RIHt ^ RIHt ^ RIHt ^ RIHtHtHtHt ^ RIHt ^ RIHtHt ^ RIHt  ! R R	4      t ! R
 R4      t R t!R t"]! R.RRRR7      R 4       t#R t$R t%R t&R t'R t(R t)R t* ! R R]PV                  4      t, ! R R4      t- ! R R 4      t.R! t/R" t0R# t1R$ t2R% t3R& t4R' t5R( t6R) t7R* t8R+ t9R, t:]Pv                  Py                  R-. R9O4      R. 4       t=R/ t>]! R0.R17      R2 4       t?R3 t@R4 tAR5 tBR6 tCR7 tDR8 tER# ):    N)assert_allcloseassert_almost_equalassert_array_equalassert_array_almost_equal)scale)Affine2DBboxTransformedBbox_ScaledRotation)Path)image_comparisoncheck_figures_equal)	MagicMockc                   s   a  ] tR t^t o RR.tRR.RR.RR..t]tR tR tR t	R	 t
R
 tR tR tR tR tR tR tR tR tR tR tR tR tRtV tR# )TestAffine2D      ?               @      @      @c                s    \        . RO. RO. RO.4       \        \        P                  ! . RO. RO. RO.\        4      4       \        \        P                  ! . RO. RO. RO.\        4      4       R# )   Nr         )i   i   i   )i      i	   )r   nparrayZintZfloatself   &G/usr/lib64/python3.14/site-packages/matplotlib/tests/test_transforms.py	test_initZTestAffine2D.test_init   sE    )Y	239i;SAB9i;UCD    c                s    \         P                  P                  R 4       \         P                  P                  ^4      p\        \        P
                  ! V!  P                  4       V4       R# )!N,N)r   randomseedr   r   from_valuesZ	to_valuesr   values   & r   test_valuesZTestAffine2D.test_values   sD    
		x !!!$8//8BBDfMr    c                s    \        4       pVP                  4       p^*VR&   \        VP                  4       . RO. RO. RO.4       R# )*   Nr    r    )r)   r    r    r    r   r    r    r    r   )r   
get_matrixr   )r   transZmtx   &  r   test_modify_inplaceZ TestAffine2D.test_modify_inplace!   s:    
 D	5++-
Iy/QRr    c                s    \        \        P                  P                  ^^4      ^,           4      pVP	                  4        \        VP                  4       . RO. RO. RO.4       R# )r   N)r   r    r    r+   r,   )r   r   r"   randZclearr   r-   )r   ar'   r   
test_clearZTestAffine2D.test_clear(   s@    RYY^^Aq)A-.		1<<>Iy)+LMr    c                sV   \        4       P                  \        P                  ^,          4      p\        4       P	                  ^Z4      p\        VP                  4       VP                  4       4       \        VP                  V P                  4      R^.4       \        VP                  V P                  4      R^ .R^.^ ^..4       \        4       P                  \        P                  4      p\        4       P	                  ^4      p\        VP                  4       VP                  4       4       \        VP                  V P                  4      RR.4       \        VP                  V P                  4      ^ R.RR.R^ ..4       \        4       P                  ^\        P                  ,          ^,          4      p\        4       P	                  R4      p\        VP                  4       VP                  4       4       \        VP                  V P                  4      ^R.4       \        VP                  V P                  4      ^^ .^R.^ R..4       \        W",           P                  4       VP                  4       4       \        W$,           P                  4       VP                  4       4       R# )r     N)r   rotater   pi
rotate_degr   r-   r   	transformsingle_pointmultiple_pointsr   Zr_pi_2Zr90Zr_piZr180Zr_pi_3_2Zr270   &      r   test_rotateZTestAffine2D.test_rotate-   s   ""25519-j##B'6,,.0@A!#--0A0A"BRGL!#--0D0D"E$&7RGaV"<	> z  'z$$S)4??,doo.?@!$..1B1B"Cb"XN!$..1E1E"F$%r7RHr1g">	@ :$$QY]3z$$S)8..0$//2CD!$..1B1B"CaWM!$..1E1E"F$%q6Ar7QG"<	> 	CI113T__5FGCJ224doo6GHr    c                s   \        4       P                  ! . V P                  O\        P                  ^,          N5!  p\        4       P
                  ! . V P                  O^ZN5!  p\        VP                  4       VP                  4       4       \        VP                  V P                  4      ^^.4       \        VP                  V P                  4      ^ ^ .R^.^^..4       \        4       P                  ! . V P                  O\        P                  N5!  p\        4       P
                  ! . V P                  O^N5!  p\        VP                  4       VP                  4       4       \        VP                  V P                  4      ^^.4       \        VP                  V P                  4      ^^ .RR.R^..4       \        4       P                  ! . V P                  O^\        P                  ,          ^,          N5!  p\        4       P
                  ! . V P                  ORN5!  p\        VP                  4       VP                  4       4       \        VP                  V P                  4      ^^.4       \        VP                  V P                  4      ^^.^R.^ R..4       \        W",           P                  4       VP                  4       4       \        W$,           P                  4       VP                  4       4       R# )r   r4   Nr5   r6   )r   Zrotate_aroundpivotr   r:   rotate_deg_aroundr   r-   r   r<   r=   r>   r?   r@   r   test_rotate_aroundZTestAffine2D.test_rotate_aroundF   s<   ))A4::AruuqyAj**;DJJ;;6,,.0@A!#--0A0A"BQFK!#--0D0D"E$%q6B7QF";	= z'';;RUU;z++=TZZ==4??,doo.?@!$..1B1B"CaVL!$..1E1E"F$%q6B8b!W"=	? :++GTZZGRUUQGz++=TZZ==8..0$//2CD!$..1B1B"CaVL!$..1E1E"F$%q6Ar7QG"<	> 	"39"8"8":DOO<MN!3:"9"9";T__=NOr    c                s   \        4       P                  ^^4      p\        4       P                  ^R4      p\        4       P                  ^R4      p\        W,           P                  4       VP                  4       4       \        VP	                  V P
                  4      ^R.4       \        VP	                  V P                  4      ^ R.^	R.^^ ..4       R# )r   Nr6   r8   )r   r   r   r-   r<   r=   r>   )r   sxsyr.      &   r   
test_scaleZTestAffine2D.test_scale_   s    Za#Za$
  B'BG//153C3C3EF5??4+<+<=2wG5??4+?+?@GaWr1g6	8r    c                s   \        4       P                  \        P                  ^,          \        P                  ^,          4      p\        4       P	                  R^4      p\        VP                  4       VP                  4       4       \        4       P	                  RR4      p\        VP                  V P                  4      RR.4       \        VP                  V P                  4      ^^.RR.^^..4       R# )	r   g     6@Ȑ2:@b,@      ?      ?      @g      @N)r   Zskewr   r:   skew_degr   r-   r   r<   r=   r>   )r   Z	trans_radZ	trans_degr.   rH   r   	test_skewZTestAffine2D.test_skewh   s    JOOBEEAIruurz:	J''b1	9//193G3G3IJ
##J
;!%//$2C2C"DsDkR!%//$2F2F"G$%q6C;A"?	Ar    c                s   \        4       P                  ^^ 4      p\        4       P                  ^ ^*4      p\        4       P                  ^^*4      p\        W,           P                  4       VP                  4       4       \        VP	                  V P
                  4      ^^+.4       \        VP	                  V P                  4      ^^,.^^-.^^*..4       R# )   N)r   	translater   r-   r<   r=   r>   )r   ZtxZtyr.   rH   r   test_translateZTestAffine2D.test_translater   s    Z!!"a(Z!!!R(
$$R,BG//153C3C3EF5??4+<+<=BxH5??4+?+?@Hr2hR9	;r    c                s*   \        4       P                  ^Z4      P                  ! . V P                  O^N5!  p\        4       P                  ^Z4      \        4       P                  ! . V P                  O^N5!  ,           p\	        VP                  4       VP                  4       4       \        VP                  V P                  4      ^^.4       \        VP                  V P                  4      ^^.^R.^R..4       \        4       P                  ^Z4      P                  ^R4      p\        4       P                  ^Z4      \        4       P                  ^R4      ,           p\	        VP                  4       VP                  4       4       \        VP                  V P                  4      RR.4       \        VP                  V P                  4      R	^ .R
R	.^ R..4       \        4       P                  ^Z4      P                  RR4      p\        4       P                  ^Z4      \        4       P                  RR4      ,           p\	        VP                  4       VP                  4       4       \        VP                  V P                  4      RR.4       \        VP                  V P                  4      RR.RR.^^..4       \        4       P                  ^Z4      P                  ^^*4      p\        4       P                  ^Z4      \        4       P                  ^^*4      ,           p\	        VP                  4       VP                  4       4       \        VP                  V P                  4      ^^+.4       \        VP                  V P                  4      ^^*.^^-.^^...4       R# )Z   rJ   rK         ?g      @Nr5   r6   r7   rE   ig      g      )r   r;   rC   rB   r   r-   r   r<   r=   r>   r   rO   rR   r   r.   Ztrans_addedr/   r   test_rotate_plus_otherZ#TestAffine2D.test_rotate_plus_other{   s   
%%b);;MTZZMMz,,R0z33ETZZEEF5++-{/E/E/GH!%//$2C2C"Dq!fM!%//$2F2F"G$%q6Ar7QG"<	> 
%%b)//26j++B/(*2B2B1b2II5++-{/E/E/GH!%//$2C2C"Dr2hO!%//$2F2F"G$&8b"X2w"?	A &&r*(:z2 	z,,R0z**:zBC5++-{/E/E/GH!%//$2C2C"DtTlS!%//$2F2F"G$&:d|aV"D	F 
%%b)33B;j++B/(*2F2Fr22NN5++-{/E/E/GH!%//$2C2C"Dr2hO!%//$2F2F"G$&8b"XBx"@	Br    c                s   \        4       P                  ! . V P                  O^ZN5!  P                  ^4      p\        4       P                  ! . V P                  O^ZN5!  \        4       P                  ^4      ,           p\	        VP                  4       VP                  4       4       \        VP                  V P                  4      R	R	.4       \        VP                  V P                  4      ^ ^ .^R
.RR..4       \        4       P                  ! . V P                  O^ZN5!  P                  ^R4      p\        4       P                  ! . V P                  O^ZN5!  \        4       P                  ^R4      ,           p\	        VP                  4       VP                  4       4       \        VP                  V P                  4      ^R.4       \        VP                  V P                  4      ^ ^ .R
R.^R..4       \        4       P                  ! . V P                  O^ZN5!  P                  RR4      p\        4       P                  ! . V P                  O^ZN5!  \        4       P                  RR4      ,           p\	        VP                  4       VP                  4       4       \        VP                  V P                  4      RR.4       \        VP                  V P                  4      ^ ^ .RR.^R..4       \        4       P                  ! . V P                  O^ZN5!  P                  ^^*4      p\        4       P                  ! . V P                  O^ZN5!  \        4       P                  ^^*4      ,           p\	        VP                  4       VP                  4       4       \        VP                  V P                  4      ^^+.4       \        VP                  V P                  4      ^^*.^^-.^^...4       R# )rT   rJ   rK   rL   rM         ?g      @rN   Nr5   r7   r6   r8   rE   rV   )r   rC   rB   r;   r   r-   r   r<   r=   r>   r   rO   rR   rW   r/   r   test_rotate_around_plus_otherZ*TestAffine2D.test_rotate_around_plus_other   s)   
,,=djj="=HHMz33DTZZDDz,,S125++-{/E/E/GH!%//$2C2C"Dr2hO!%//$2F2F"G$%q6Ar7RH"=	? 
,,=djj="=CCArJz33DTZZDDz''2./5++-{/E/E/GH!%//$2C2C"Dq"gN!%//$2F2F"G$%q6B8aW"=	? -->tzz>2>(:z2 	z33DTZZDDz**:zBC5++-{/E/E/GH!%//$2C2C"DsDkR!%//$2F2F"G$%q6C;C"A	C 
,,=djj="=GGBOz33DTZZDDz++B345++-{/E/E/GH!%//$2C2C"Dr2hO!%//$2F2F"G$&8b"XBx"@	Br    c                s6   \        4       P                  ^R4      P                  ^Z4      p\        4       P                  ^R4      \        4       P                  ^Z4      ,           p\        VP	                  4       VP	                  4       4       \        VP                  V P                  4      ^^.4       \        VP                  V P                  4      ^^ .^^	.^ ^..4       \        4       P                  ^R4      P                  ! . V P                  O^ZN5!  p\        4       P                  ^R4      \        4       P                  ! . V P                  O^ZN5!  ,           p\        VP	                  4       VP	                  4       4       \        VP                  V P                  4      ^^.4       \        VP                  V P                  4      ^^ .^^	.^^..4       \        4       P                  ^R4      P                  RR4      p\        4       P                  ^R4      \        4       P                  RR4      ,           p\        VP	                  4       VP	                  4       4       \        VP                  V P                  4      ^R.4       \        VP                  V P                  4      RR.^R.^^..4       \        4       P                  ^R4      P                  ^^*4      p\        4       P                  ^R4      \        4       P                  ^^*4      ,           p\        VP	                  4       VP	                  4       4       \        VP                  V P                  4      ^^(.4       \        VP                  V P                  4      ^^&.^ ^$.^#^*..4       R# )r   rJ   rK   Nr6         r8         )r   r   r;   r   r-   r<   r=   r   r>   rC   rB   rO   rR   rW   r/   r   test_scale_plus_otherZ"TestAffine2D.test_scale_plus_other   s   
  B'2226j&&q"-
0E0Eb0II5++-{/E/E/GH5??4+<+<=1vF!%//$2F2F"G$%q6Aq6Ar7";	= 
  B'99J4::JrJz''2.z33DTZZDDE5++-{/E/E/GH5??4+<+<=1vF!%//$2F2F"G$%q6Aq6Ar7";	= !!!R((:z2 	z''2.z**:zBC5++-{/E/E/GH!%//$2C2C"Dq%jQ!%//$2F2F"G$&8aZ"a"A	C 
  B'11"b9j&&q"-
0D0DR0LL5++-{/E/E/GH5??4+<+<=BxH5??4+?+?@Hr2hR9	;r    c                s6   \        4       P                  R R4      P                  ^Z4      p\        4       P                  R R4      \        4       P                  ^Z4      ,           p\        VP	                  4       VP	                  4       4       \        VP                  V P                  4      RR.4       \        VP                  V P                  4      R^.RR.R^..4       \        4       P                  R R4      P                  ! . V P                  O^ZN5!  p\        4       P                  R R4      \        4       P                  ! . V P                  O^ZN5!  ,           p\        VP	                  4       VP	                  4       4       \        VP                  V P                  4      RR.4       \        VP                  V P                  4      ^ ^.RR.^^..4       \        4       P                  R R4      P                  ^R4      p\        4       P                  R R4      \        4       P                  ^R4      ,           p\        VP	                  4       VP	                  4       4       \        VP                  V P                  4      RR.4       \        VP                  V P                  4      ^R.RR.^R..4       \        4       P                  R R4      P                  ^^*4      p\        4       P                  R R4      \        4       P                  ^^*4      ,           p\        VP	                  4       VP	                  4       4       \        VP                  V P                  4      RR.4       \        VP                  V P                  4      ^^,.RR	.^^+..4       R
# )rJ   rK   rL   rN   rU   g      +@g     8@g     E@g     ;@g     F@Nr[   r6   r\   r5   g      g      r8   g      )r   rO   r;   r   r-   r   r<   r=   r>   rC   rB   r   rR   rW   r/   r   test_skew_plus_otherZ!TestAffine2D.test_skew_plus_other   s   
##J
;FFrJz**:zBz,,R015++-{/E/E/GH!%//$2C2C"DuclS!%//$2F2F"G$&7UCL2q'"B	D $$Z<##$ 5%)ZZ5135z**:zBz33DTZZDDE5++-{/E/E/GH!%//$2C2C"DtSkR!%//$2F2F"G$%q6E3<!Q"@	B 
##J
;AA!RHz**:zBz''2./5++-{/E/E/GH!%//$2C2C"DsDkR!%//$2F2F"G$%r7T4L2r("C	E 
##J
;EEb"Mz**:zBz++B345++-{/E/E/GH!%//$2C2C"DtUmT!%//$2F2F"G$&8dE]RH"E	Gr    c                s6   \        4       P                  ^^*4      P                  ^Z4      p\        4       P                  ^^*4      \        4       P                  ^Z4      ,           p\        VP	                  4       VP	                  4       4       \        VP                  V P                  4      R	^.4       \        VP                  V P                  4      R
^.R^.R^..4       \        4       P                  ^^*4      P                  ! . V P                  O^ZN5!  p\        4       P                  ^^*4      \        4       P                  ! . V P                  O^ZN5!  ,           p\        VP	                  4       VP	                  4       4       \        VP                  V P                  4      R^.4       \        VP                  V P                  4      R^.R	^.R^..4       \        4       P                  ^^*4      P                  ^R4      p\        4       P                  ^^*4      \        4       P                  ^R4      ,           p\        VP	                  4       VP	                  4       4       \        VP                  V P                  4      ^HR.4       \        VP                  V P                  4      ^ER.^NR.^QR..4       \        4       P                  ^^*4      P                  RR4      p\        4       P                  ^^*4      \        4       P                  RR4      ,           p\        VP	                  4       VP	                  4       4       \        VP                  V P                  4      R^1.4       \        VP                  V P                  4      ^-R.RR.^0R..4       R# )rQ   rJ   rK   g     F@g     H@g     @H@g     I@g     `H@Niiiiiir6   iiii)r   rR   r;   r   r-   r   r<   r=   r>   rC   rB   r   rO   rW   r/   r   test_translate_plus_otherZ&TestAffine2D.test_translate_plus_other   s   
$$R,77;j**2r2XZ5J5J25NN5++-{/E/E/GH!%//$2C2C"DsBiP!%//$2F2F"G$'9sBi#r"C	E 
$$R,>>O

OBOz++B3z33DTZZDDE5++-{/E/E/GH!%//$2C2C"DsBiP!%//$2F2F"G$'9sBi#r"C	E 
$$R,221b9j**2r2XZ5E5Ea5LL5++-{/E/E/GH!%//$2C2C"Dr3iP!%//$2F2F"G$&9r3i"c"C	E %%b"-(:z2 	z++B3z**:zBC5++-{/E/E/GH!%//$2C2C"DtRjQ!%//$2F2F"G$&;tr5k"J	Lr    c                s   \         P                  ! 4       p\        P                  ! \        4      ;_uu_ 4        VP                  ^4       RRR4       \        P                  ! \        4      ;_uu_ 4        VP                  ^...4       RRR4       \        P                  ! \        4      ;_uu_ 4        VP                  . 4       RRR4       \        P                  ! \        4      ;_uu_ 4        VP                  ^.4       RRR4       \        P                  ! \        4      ;_uu_ 4        VP                  ^..4       RRR4       \        P                  ! \        4      ;_uu_ 4        VP                  . RO.4       RRR4       R#   + '       g   i     ELH; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)r   Nr   )mtransformsr   pytestraises
ValueErrorr<   ZRuntimeError)r   tr'   r   test_invalid_transformZ#TestAffine2D.test_invalid_transform   s     " ]]:&&KKN ']]:&&KK1#  ']]<((KKO )]]<((KK )]]:&&KK! ']]:&&KK$ '& '&&&&&((((&&&&&sG   F	4F3F1/G,G*G*	F	F.	1G	G	G'	*G;	c                s   \         P                  ! 4       p\         P                  ! 4       pW,           pVP                  4        \        P                  ! V4      pVP	                  ^^4       VP                  4        \        P                  ! V4      pVP	                  ^^4       \        VP                  4       VP                  4       4       R# r   N)r`   r   r-   copyrR   r   r   r2   bZsZs1Zb1   &     r   	test_copyZTestAffine2D.test_copy4  s      "  "E	YYq\	Aq 	
YYq\
Q1<<>1<<>:r    c                s   \         P                  ! 4       p\         P                  ! 4       pW,           pVP                  4        \        P                  ! V4      pVP                  ^^4       \        VP                  4       \         P                  ! 4       P                  4       4       VP                  4        \        P                  ! V4      pVP                  ^^4       \        VP                  4       VP                  4       4       R# rf   )r`   r   r-   rg   ZdeepcopyrR   r   rh   rj   r   test_deepcopyZTestAffine2D.test_deepcopyF  s      "  "E	]]1	Aq2==?K,@,@,B,M,M,OP	]]1
Q1<<>1<<>:r     N)__name__
__module____qualname____firstlineno__r=   r>   rB   r   r(   r0   r3   rA   rD   rI   rP   rS   rX   rZ   r]   r^   r_   re   rk   rl   __static_attributes____classdictcell____classdict__   @r   r   r      s     :LSzC:Sz:OEE
N
SN
I2P28A;B@ BD;@!GFL@%(;$; ;r    r   c                   s&   a  ] tR tRt o R tRtV tR# )TestAffineDeltaTransformiY  c                s   \         P                  ! . RO. RO. RO.4      p\         P                  ! . RO. RO. RO.4      p\        P                  P	                  ^^^^^^4      p\        P
                  ! V4      p\        VP                  4       V4       ^VP                  4       R&   \        VP                  4       V4       VP                  4        \        VP                  4       V4       R# )r   N)r   r   r   )g      @r   r   )r   r   r   )r   r   r   )r    :r   NN)	r   r   r`   r   r$   ZAffineDeltaTransformr   r-   
invalidate)r   ZbeforeZafterZbaserd      &    r   test_invalidateZ(TestAffineDeltaTransform.test_invalidateZ  s    ?**, - /))+ ,
 ##//1aAqA,,T21<<>62
 $%% 1<<>51 	1<<>51r    rm   N)rn   ro   rp   rq   rz   rr   rs   rt   rv   r   rw   rw   Y  s     2 2r    rw   c                  s~    ! R  R\         P                  4      p V ! 4       p\        P                  ! 4       p\        P                  ! \
        P                  ! ^
4      WP                  ,           R7       \        P                  ! 4        RVn	        VP                  P                  4        \        P                  ! 4        R# )c                   sV   a a ] tR tRt oRt^;ttRtV 3R ltR t	]	t
R t]tRtVtV ;t# )<test_non_affine_caching.<locals>.AssertingNonAffineTransformis  zu
This transform raises an assertion error when called when it
shouldn't be and ``self.raise_on_transform`` is True.

Fc                s   < \         SV `  ! V/ VB  R V n        \        P                  ! 4       P                  ^
^
4      V n        R# )FN)super__init__raise_on_transformr`   r   r   underlying_transform)r   argskwargs	__class__s   &*,r   r}   ZEtest_non_affine_caching.<locals>.AssertingNonAffineTransform.__init__|  s;    Gd-f-&+D#(3(<(<(>(D(DR(LD%r    c                8    V P                   P                  V4      # N)r   transform_pathr   path   &&r   transform_path_non_affineZVtest_non_affine_caching.<locals>.AssertingNonAffineTransform.transform_path_non_affine  s     ,,;;DAAr    c                r   r   )r   r<   r   r   r   transform_non_affineZQtest_non_affine_caching.<locals>.AssertingNonAffineTransform.transform_non_affine  s     ,,66t<<r    )r~   r   )rn   ro   rp   rq   __doc__
input_dimsoutput_dims	is_affiner}   r   r   r   r<   rr   rs   __classcell__r   ru      @@r   AssertingNonAffineTransformr{   s  s<     	
 $%$
[		M
	B 3	= )		r    r   r<   TN)r`   	Transformpltaxesplotr   arange	transDatadrawr~   	transAxesrx   )r   Zmy_transax      r   test_non_affine_cachingr   r  sr    )k&;&; )4 +,H	BHHRYYr]h&=>HHJ #'HLLHHJr    c                  s    ! R  R4      p \         P                  ! 4       p\         P                  ! \        P                  ! ^
4      V ! ^
4      R7      w  pVP                  ^ ^d4       VP                  ^ ^d4       \        VP                  4       P                  P                  4       \        P                  ! 4       P                  ^
4      P                  4       4       R# )c                   s,   a  ] tR tRt o R tR tRtV tR# )-test_external_transform_api.<locals>.ScaledByi  c                s    Wn         R # r   _scale_factor)r   Zscale_factorr   r   r}   Z6test_external_transform_api.<locals>.ScaledBy.__init__  s    !-r    c                s    \         P                  ! 4       P                  V P                  4      VP                  ,           # r   )r`   r   r   r   r   )r   r   r   r   _as_mpl_transformZ?test_external_transform_api.<locals>.ScaledBy._as_mpl_transform  s0    ((*001C1CDnn% &r    r   N)rn   ro   rp   rq   r}   r   rr   rs   rt   rv   r   ScaledByr     s     	.	& 	&r    r   r   N)r   r   r   r   r   Zset_xlimZset_ylimr   Zget_transformZ_ar-   r`   r   r   )r   r   Zliner   r   test_external_transform_apir     s    & & 
BHHRYYr]hrl;EDKK3KK3D&&(++668((*004??ACr    Zpre_transform_dataTZmpl20g?)Zremove_textZstyleZtolc                  s   \         P                  ! 4       p \        P                  ! 4       P	                  ^
4      pV P                  \        P                  ! ^04      P                  ^^4      WP                  ,           R7       V P                  \        P                  ! ^ ^^4      \        P                  ! R^^	4      \        P                  ! ^04      P                  ^^4      WP                  ,           R7       V P                  \        P                  ! ^ ^
4      \        P                  ! ^
^ 4      WP                  ,           R7       \        P                  ! ^^
^4      p\        P                  ! ^^^4      p^\        P                  ! V4      ,          \        P                  ! VR\        P                  3,          4      ,           p\        P                  ! V4      \        P                  ! VR\        P                  3,          4      ,
          pV P!                  W#WEWP                  ,           \        P"                  ! WE4      R7       VR,          VR,          r2VR,          VR,          rTV P%                  W#^,           WEWP                  ,           R7       V P'                  V^,
          V^,           V^,          V^,          WP                  ,           R7       R# )
   r   g      @NNN)r<   Z	linewidthNNr   N)r   r   )r   r   r`   r   r   contourfr   r   Zreshaper   
pcolormeshlinspaceZscatterZsinZcosZnewaxisZ
streamplotZhypotZquiverZbarbs)r   Ztimes10xyZuv         r   test_pre_transform_plottingr     s    
B""$**2.GKK		"%%a+w7MKNMM"++aA&++c1a())B-''1-#ll2  4
 JJr{{1b!2;;r1#5 <</  1 	Ar2A
Aq"A	"&&)bffQq"**}-..A
q	BFF1Q

]+,,AMM!,,(>HHQN  , S61S6qX;(qIIaQ,,(>I?HHQUAE1a4A<<1GHHr    c                  s   \         P                  ! 4       p \        P                  ! \        P                  ! ^^^4      \        P                  ! RR^4      4      w  rV P                  W\        P                  ! W,          4      \        P                  ! 4       P                  R4      V P                  ,           R7       \        P                  ! RR.RR..4      p\        W0P                  P                  4       4       R	# )
   (@      )@皙?r   rL   ףp=
?r   rM   N)r   r   r   meshgridr   r   logr`   r   r   r   r   r   dataLim
get_pointsr   ZxsZysexpected       r   !test_contour_pre_transform_limitsr     s    	B[[RR0"++dD"2MNFBKKrw%..066s;bllJ  L xx#td% &H**"7"7"9:r    c                     \         P                  ! 4       p \        P                  ! \        P                  ! ^^^4      \        P                  ! RR^4      4      w  rV P                  W\        P                  ! W,          4      RR
1RR
13,          \        P                  ! 4       P                  R4      V P                  ,           R7       \        P                  ! RR.RR	..4      p\        W0P                  P                  4       4       R# r   r   r   Nr   r   rL   r   r   rM   r5   )r   r   r   r   r   Zpcolorr   r`   r   r   r   r   r   r   r   r   r   r    test_pcolor_pre_transform_limitsr     s    	B[[RR0"++dD"2MNFBIIbbffRWocrc3B3h/#,,.44S9BLLH  J xx#td% &H**"7"7"9:r    c                  r   r   )r   r   r   r   r   r   r   r`   r   r   r   r   r   r   r   r   r   r   $test_pcolormesh_pre_transform_limitsr     s    	B[[RR0"++dD"2MNFBMM""&&/#2#ss(3'00288=L  N xx#td% &H**"7"7"9:r    c                  s*   \         P                  P                  R 4       \         P                  ! ^ ^^4      p \         P                  ! ^dR^
4      p\         P                  ! W4      w  r#\         P
                  ! \         P                  P                  ! VP                  !  ^d,          4      p\        P                  ! 4       pVP                  ^oRR7      pVP                  ^eR4       VP                  WCVRR7       VP                  P                  4        R# )r!   i  polarZ
projectionZgouraud)ZshadingN)r   r"   r#   r   r   Zradiansr1   Zshaper   ZfigureZadd_subplotZset_rlimr   canvasr   )r&   ZradiiZzr   r   figr             r   test_pcolormesh_gouraud_nansr     s    IINN8[[C#FKKT2&E;;v%DA


299>>177+c12A
**,C		1B KKTMM!9M-JJOOr    c                  s   \         P                  ! ^ ^ .^
^.R^ ..4      p \        P                  P	                  ^^ ^ ^ ^ ^ 4      pVP                  V 4      p\         P                  ! ^ ^ .^
^ .R^ ..4      p\        W#4       \        P                  P	                  ^ ^^ ^ ^ ^ 4      pVP                  V 4      p\         P                  ! ^ ^ .^ ^.^ R..4      p\        W#4       \        P                  P	                  ^ ^ ^^ ^ ^ 4      pVP                  V 4      p\         P                  ! ^ ^ .^<^ .^ ^ ..4      p\        W#4       \        P                  P	                  ^ ^ ^ ^^ ^ 4      pVP                  V 4      p\         P                  ! ^ ^ .^ ^P.^ ^ ..4      p\        W#4       \        P                  P	                  ^ ^ ^ ^ ^^ 4      pVP                  V 4      p\         P                  ! ^^ .^^ .^^ ..4      p\        W#4       \        P                  P	                  ^ ^ ^ ^ ^ ^4      pVP                  V 4      p\         P                  ! ^ ^.^ ^.^ ^..4      p\        W#4       R# )r    Nr5   r6   )r   r   r`   r   r$   r<   r   )pointsrd   Zactualr   r   r   test_Affine2D_from_valuesr     s5   XX1vBxAw F
 	((Aq!Q:A[[ Fxx!Q"a2q'23H)((Aq!Q:A[[ Fxx!Q!R1b'23H)((Aq!Q:A[[ Fxx!Q"a1a&12H)((Aq!Q:A[[ Fxx!Q!R1a&12H)((Aq!Q:A[[ Fxx!Q!Q!Q01H)((Aq!Q:A[[ Fxx!Q!Q!Q01H)r    c                  sT   R R .p \         P                  ! 4       p\        WP                  VP	                  4       P                  V 4      4      4       VP                  R R 4      P                  4        \        WP                  VP	                  4       P                  V 4      4      4       R# )r   N)r`   r   r   r<   ZinvertedrR   r-   )Zpointrd        r    test_affine_inverted_invalidatedr   *  st    #JEA{{1::<+A+A%+HIJKKS$$&{{1::<+A+A%+HIJr    c                  s`   \         P                  ! . RO4      p \        P                  ! \        P                  ! 4       \
        P                  ! ^
R4      4      pVP                  V 4      pVP                  VP                  4       RRR7      p\        V!  w  rE\        WPP                  RR 4       R# )皙?clipF)r   ZsimplifyN))r   )皙?r   )r      )r   r   )r    r    d   r   r5   )r
   Z_create_closedr`   BlendedGenericTransformr   r   LogTransformr   Ziter_segments
get_affinezipr   Zcodes)r   r.   ZtpathresultZtpointsZtcodesr   r   test_clipping_of_logr   5  s    MND// 2 22v >@E++D1E  !1!1!3&6*/ ! 1F 6lOGFJJsO,r    c                   sN   a a ] tR tRt oRtRt^t^tV 3R ltR t	R t
RtVtV ;t# )NonAffineForTestiC  z
A class which looks like a non affine transform, but does whatever
the given transform does (even if it is affine). This is very useful
for testing NonAffine behaviour with a simple Affine transform.

Fc                s4   < Wn         \        SV `  ! V/ VB  R # r   )
real_transr|   r}   )r   r   r   r   r   s   &&*,r   r}   ZNonAffineForTest.__init__N  s    $$)&)r    c                r   r   )r   r<   r%   r   r   r   Z%NonAffineForTest.transform_non_affineR  s    ((00r    c                r   r   )r   r   r   r   r   r   Z*NonAffineForTest.transform_path_non_affineU  s    --d33r    )r   )rn   ro   rp   rq   r   r   r   r   r}   r   r   rr   rs   r   r   r   r   r   r   C  s/      IKJ*14 4r    r   c                   sD   a  ] tR tRt o R tR tR tR tR tR t	Rt
V tR	# )
TestBasicTransformiY  c                s   \         P                  ! R R7      P                  \        P                  ^,          4      V n        \         P                  ! RR7      P                  ^
^ 4      V n        \         P                  ! RR7      P                  ^^4      V n	        \        \         P                  ! 4       P                  ^^4      RR7      V n        \        \         P                  ! 4       P                  ^^4      RR7      V n        \        \         P                  ! 4       P                  ^^4      RR7      V n        V P
                  V P                  V P                  ,           ,           V P                  ,           V n        V P
                  V P                  ,           V P                  ,           V P                  ,           V n        V P                  V P                  ,           V P                  ,           V n        R# )ta1)Zshorthand_nameta2ta3tn1tn2tn3N)r`   r   r9   r   r:   r   rR   r   r   r   r   r   r   r   stack1stack2stack2_subsetr   r   r   setup_methodZTestBasicTransform.setup_methodZ  sF   ''u=DDRUUQYO''u=GGAN''u=CCAqI#K$8$8$:$D$DQ$J38:#K$8$8$:$D$DQ$J38:#K$8$8$:$D$DQ$J38: xx488dhh#67488Chh)DHH4txx?!XX0488;r    c                    R # r   rm   r   r   r   test_transform_depthZ'TestBasicTransform.test_transform_depths      r    c                sJ   V P                   V P                  V P                  V P                  ,           ,           ,           V P                  ,           pVV P                  V P                  V P                  ,           ,           V P                  ,           V P                  V P                  ,           V P                  ,           V P                  V P                  ,           V P                  .pVP                  4        UUu. uF  w  r4VNK	  	  ppp\        W%4       F  w  rgK  	  R # u uppi r   )r   r   r   r   r   Z_iter_break_from_left_to_rightr   )r   Zstack3Ztarget_transformsZ_ZrhrZtarget_stackZstack   &       r   test_left_to_right_iterationZ/TestBasicTransform.test_left_to_right_iterationx  s    ((dhh$((TXX*=>?488K $"hh$((TXX*=>$((J"hh1TXX=!XX0!XX	 $BBDEDEARDE $''8#<L%#< Fs   9Dc                sR   \         P                  ! \        4      ;_uu_ 4        V P                  V P                  ,
           R R R 4       V P
                  V P                  V P                  ,           ,           pV P                  V P                  ,           pR #   + '       g   i     L]; ir   )ra   rb   rc   r   r   r   r   r   )r   Zaff1Zaff2r/   r   test_transform_shortcutsZ+TestBasicTransform.test_transform_shortcuts  s`     ]]:&&KK$++% ' xx488dhh./xx$(("	 '&s   BB&	c                sj   V P                   V P                  ,           pV P                   V P                  ,           p\        P                  ! V P                  V P
                  4      pVP                  V P                  4      w  rEV P                  V,           pVP                  V P                  4      w  rxR # r   )	r   r   r`   r   r   r   Zcontains_branch_seperatelyr   r   )	r   r1r2Zblendr   r   Zstack_blendrF   rG   s	   &        r   test_contains_branchZ'TestBasicTransform.test_contains_branch  s    hh!hh!0 33DHHdkkJ//0B0BChh&778J8JKBr    c                s(   \         P                  ! ^ ^ .^
^.\         P                  ^.R	^ ..\         P                  R7      pV P                  P                  V4      pV P                  P                  V4      p\         P                  ! RR.R
R.\         P                  \         P                  .RR..\         P                  R7      p\         P                  ! RR.RR.\         P                  \         P                  .RR..\         P                  R7      p\        W$4       \        W54       \        V P                  P                  V4      V4       \        V P                  P                  4       P                  V4      V4       V P                  V P                  ,           P                  4       pV P                  P                  4       P                  4       p\        Wg4       V P                  P                  4       P                  4       p\        Wg4       R# )r    )Zdtyper   r         (@g      &@r   g      8@Nr5   g      3g      ")r   r   nanZfloat64r   r   r<   r   transform_affiner   r   r   r-   r   r   )r   r   Zna_ptsZall_ptsZna_expectedZall_expectedZexpected_resultr   r   r   test_affine_simplificationZ-TestBasicTransform.test_affine_simplification  s    Aq6B8bffa[2q'B "

,11&9++''/hhR4+!# 02r( <CE::Oxx#rS#J"$&&"&&!1C9!>&(jj2
 	"&6!'8 	"$++">">v"F".	0 	"$++"8"8":"D"DV"L".	0
  88dhh.::<'')446?3'')446?3r    )	r   r   r   r   r   r   r   r   r   N)rn   ro   rp   rq   r   r   r   r   r   r   rr   rs   rt   rv   r   r   r   Y  s)     <2-
) %,B#4 #4r    r   c                   s\   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tRtV tR# )TestTransformPlotInterfacei  c                sd   \         P                  ! 4       pVP                  . RO. ROVP                  R7       \	        VP
                  P                  4       \        P                  ! \        P                  \        P                  .\        P                  ) \        P                  ) ..4      4       R# )r   r   Nr   333333?皙??rY   r   )
r   r   r   r   r   r   r   r   r   infr   r   r'   r   test_line_extent_axes_coordsZ7TestTransformPlotInterface.test_line_extent_axes_coords  sn    XXZ
BLLI2::00288bffbff%5')vvgw%7%9 :	;r    c                s    \         P                  ! 4       pVP                  . RO. ROVP                  R7       \	        VP
                  P                  4       \        P                  ! R R.RR..4      4       R# )r   r   r   rY   r   Nr   r   )	r   r   r   r   r   r   r   r   r   r   r'   r   test_line_extent_data_coordsZ7TestTransformPlotInterface.test_line_extent_data_coords  sT    XXZ
BLLI2::00288cC[3+$>?	Ar    c                sl   \         P                  ! 4       p\        P                  ! VP                  VP
                  4      pVP                  . RO. ROVR7       \        VP                  P                  4       \        P                  ! \        P                  R.\        P                  ) R..4      4       R# )r   r   g     A@Nr   i#   i   g      )r   r   r`   blended_transform_factoryr   r   r   r   r   r   r   r   r   r   r   r.   r/   r   !test_line_extent_compound_coords1Z<TestTransformPlotInterface.test_line_extent_compound_coords1  s~     XXZ55bll68llD
?2::00288bffc]')vvgs^%5 6	7r    c                sF   \         P                  ! 4       p\        P                  ! 4       P	                  ^
4      VP
                  ,           pVP                  . RO. ROVR7       \        VP                  P                  4       \        P                  ! RR.RR..4      4       R# )	r   r   r   r        u@Nr   r         I)r   r   r`   r   r   r   r   r   r   r   r   r   r   r/   r   )test_line_extent_predata_transform_coordsZDTestTransformPlotInterface.test_line_extent_predata_transform_coords   sr    XXZ$$&,,R02<<?
?2::00288b$Z#t$=>	@r    c                s   \         P                  ! 4       p\        P                  ! VP                  \        P
                  ! 4       P                  ^
4      VP                  ,           4      pVP                  . RO. ROVR7       \        VP                  P                  4       \        P                  ! \        P                  R.\        P                  ) R..4      4       R# )r   r   r  Nr   r   r  )r   r   r`   r   r   r   r   r   r   r   r   r   r   r   r   r   r/   r   !test_line_extent_compound_coords2Z<TestTransformPlotInterface.test_line_extent_compound_coords2  s     XXZ55LL+..066r:R\\IK
?2::00288bffd^rvvgt_$EF	Hr    c                s   \         P                  ! 4       p\        P                  ! 4       P	                  ^
^
4      p\         P
                  ! \        P                  ! ^
4      W!P                  ,           R7       \        P                  ! RR.RR..4      ^
,           p\        VP                  P                  4       V4       R# r   r   r         "@Nr   r   r`   r   rR   r   r   r   r   r   r   r   r   r   r   offsetexpected_data_limrH   r   test_line_extents_affineZ3TestTransformPlotInterface.test_line_extents_affine  s~    XXZ%%'11"b92&<<*?@HHr2hb	%:;b@!"**"7"7"9;LMr    c                s   \         P                  ! 4       p\        P                  ! 4       P	                  ^
^
4      p\        \        P                  ! 4       P	                  ^
^
4      4      p\         P                  ! \        P                  ! ^
4      W#,           VP                  ,           R7       \        P                  ! RR.RR..4      ^,           p\        VP                  P                  4       V4       R# r  )r   r   r`   r   rR   r   r   r   r   r   r   r   r   r   )r   r   r	  	na_offsetr
  ry   r   test_line_extents_non_affineZ7TestTransformPlotInterface.test_line_extents_non_affine  s    XXZ%%'11"b9$[%9%9%;%E%Eb"%MN	2&*<r||*KLHHr2hb	%:;b@!"**"7"7"9;LMr    c                s   \         P                  ! 4       p\        P                  ! 4       P	                  ^
^
4      p\        \        P                  ! 4       P	                  ^
^
4      4      p\        ^ ^ .^ ^
.^
^
.^
^ ..4      p\        P                  ! VW#,           VP                  ,           R7      pVP                  V4       \        P                  ! RR.RR..4      ^,           p\        VP                  P                  4       V4       R# r   r   r   g      $@N)r   r   r`   r   rR   r   r
   mpatches	PathPatchr   	add_patchr   r   r   r   r   )r   r   r	  r  pthpatchr
  r@   r   test_pathc_extents_non_affineZ8TestTransformPlotInterface.test_pathc_extents_non_affine!  s    XXZ%%'11"b9$[%9%9%;%E%Eb"%MN	QFQGb"XAw78""3-3-?",,-NP
UHHr2hs%<=B!"**"7"7"9;LMr    c                s   \         P                  ! 4       p\        P                  ! 4       P	                  ^
^
4      p\        ^ ^ .^ ^
.^
^
.^
^ ..4      p\        P                  ! W2VP                  ,           R7      pVP                  V4       \        P                  ! RR.RR..4      ^
,           p\        VP                  P                  4       V4       R# r  )r   r   r`   r   rR   r
   r  r  r   r  r   r   r   r   r   )r   r   r	  r  r  r
  rj   r   test_pathc_extents_affineZ4TestTransformPlotInterface.test_pathc_extents_affine,  s    XXZ%%'11"b9QFQGb"XAw78""32<<2GH
UHHr2hs%<=B!"**"7"7"9;LMr    c                s   \         P                  ! R R7      p\        P                  ! 4       P	                  ^ ^
4      p\         P
                  ! \        P                  ! ^
4      W!P                  ,           R7       \        P                  ! RR.RR..4      ^ ^
.,           p\        VP                  P                  4       V4       R# )r   r   r   r   r  Nr  r  rH   r   *test_line_extents_for_non_affine_transDataZETestTransformPlotInterface.test_line_extents_for_non_affine_transData5  s    XX)%%'11!R82&<<*?@ HHr2hb	%:;q"gE!"**"7"7"9;LMr    rm   N)rn   ro   rp   rq   r   r   r   r  r  r  r  r  r  r  rr   rs   rt   rv   r   r   r     sE     ;A	7@HNN	NN
N 
Nr    r   c                 sF    \        V P                  VP                  4       R # r   )r   Zbounds)Zbbox1Zbbox2r   r   assert_bbox_eqr  B  s    u||U\\2r    c                  s    \         P                  P                  R R RRRR7      p V P                  4       p\	        VP
                  V P
                  4       R# )r   r   )minposN)r`   r   from_extentsfrozenr   r  )Zbboxr  r   r   test_bbox_frozen_copies_minposr  F  s@    ((c3C(HD[[]Fv}}dkk2r    c            	      s   \         P                  P                  p \         P                  P                  pV ! ^ ^ ^^4      pV ! RRRR4      pV ! R^ RR4      pV ! RR^R4      pV ! ^^^^4      p\	        V! W"4      V4       \	        V! W#4      V ! RR^^4      4       \	        V! W$4      V4       \	        V! W&4      V ! ^^^^4      4       R# )r    rY   rL   rU   g      @N)r`   r   r  Zintersectionr  )Zbbox_from_extZinterr   r   Zr3Zr4Zr5r   r   test_bbox_intersectionr  L  s    $$11M))E	q!Q	"B	sCc	*B	sAtT	*B	sCC	(B	q!Q	"B 5="%5=-S!Q"?@5="% 5=-1a";<r    c                  sp   \         P                  ! R ^ .RR..4      p \        V \        \	        V 4      R\         P                  /4      4       \        \        V 4      R\        /4      pVP                  4        F  w  r#K  	  Rp\        \        W4      R\        /4      pVP                  4        F  w  r#K  	  R# )rY   rU   r   z.1fN)	r`   r   r  ZevalZreprZstrZdictZitemsZformat)ri   ZasdictZkr   Zfmt        r   test_bbox_as_stringsr  b  s    2q'C:./A1d47V[-=-=$>?@#a&64.)F1
C&.64.1F1r    c                  r   r   rm   rm   r    r   test_str_transformr  n  r   r    c                  sR    \         P                  ! 4       p V P                  R4      pR# )r   Nr   r   )r`   r   r   )rd   r   r   r   test_transform_single_pointr!    s     A	6"Ar    c                  s    \         P                  ! 4       w  rVP                  R 4       VP                  P	                  R4       R# )r   Nr   )r   subplots
set_yscaler   r<   )r   r   r   r   test_log_transformr$    s/     llnGCMM%LL6"r    c                  s    \         P                  ! ^ ^ .^^..4      p \         P                  ! ^ ^ .^\        P                  ..4      pR# )r    N)r`   r   r   r   )r2   ri   r   r   test_nan_overlapr%    s@    1a&1a&)*A1a&1bff+./Ar    c                  s0   \         P                  ! 4       p \        P                  ! . RO4      p\        P                  ! ^ ^ .^^.^^..4      pV P	                  W4      p\        W4       \        P                  ! \        4      ;_uu_ 4        V P	                  WR,          4       RRR4       \        P                  ! \        4      ;_uu_ 4        V P	                  WR,          4       RRR4       R#   + '       g   i     LU; i  + '       g   i     R# ; i)r   N)r   i-   i<   )r    r   N:r    r   N)r&  r   )	r`   r   r   r   Ztransform_anglesr   ra   rb   rc   )rd   Zanglesr   Z
new_anglesr   r   test_transform_anglesr'    s    AXXl#FXX1v1v1v./F ##F3Jf1 
z	"	"	6(#34 
# 
z	"	"	6&>2 
#	"	 
#	" 
#	"	"s   C1D1D	D	c                  s    \         P                  ! RR .4      p ^ \         P                  3RR.pV F6  p\         P                  ! \        P                  ! V!  4      p\        W04       K8  	  R# )gMbP?NgMbPr*   )r    g     )r   r   r   r`   Znonsingularr   )Zzero_expansionZcasesr   Zoutr   r   test_nonsingularr(    sS    XXvuo.N[&-0Ehh{..563/ r    c                  sF   . ROp \        V RR7      p\        P                  ! 4       p\        P                  ! W4      p\	        VP                  4       P                  V 4       ^\        P                  ! ^4      ,          pVP                  \        P                  ^,          4       \	        VP                  4       P                  RWD3^ ^V,          3V) V3.RR7       R.^,          Vn        \	        VP                  4       P                  RWD3^ ^V,          3V) V3.RR7       R# )r    T)ZclosedV瞯<ZatolNr*   )r*   )r   r    r   )r    r   )r
   r`   r   ZTransformedPathr   get_fully_transformed_pathverticesr   sqrtr9   r:   r   )r   r   r.   Z
trans_pathr   r  r   test_transformed_pathr.    s    -Ft$D  "E,,T9JJ99;DDfM 
RWWQZB	LLJ99;DDbX1r6{bS"I> 
 (Q,DKJ99;DDbX1r6{bS"I> r    c                  s   \         P                  ! 4       p \        P                  ! R^^-^V R7      p\         P                  ! V4      pVP                  4       P                  pV P                  ^4       \        VP                  4       P                  V^,          4       VP                  R4       \        VP                  4       P                  V4       R# )r    r   rY   Nr*   )
r`   r   r  ZWedgeZTransformedPatchPathr+  r,  r   r   Z
set_radius)r.   r  Ztpatchr   r   r   test_transformed_patch_pathr/    s      "ENN61b#?E--e4F..099F 
KKNF557@@&1*M 
SF557@@&Ir    locked_elementc                 sp   . ROpVP                  V 4       \        P                  P                  4       p\        P                  ! V3/ V ^/B pV F  pK  	  VP                  VP                  4       ^
,           4       V F  pK  	  \        VRV ,           R4       \        VRV ,           ^4       V F  pK  	  R# )x0Zlocked_Nr1  Zy0Zx1Zy1)Zremover`   r   unitZLockableBboxZ
set_pointsr   Zsetattr)r0  Zother_elementsZorigZlockedZelemry   r   test_lockable_bboxr4    s    -N.)  "D%%dB~q.ABF
  	OODOO%*+  FI.5
 FI.2 r    c                  s$   \         P                  ! \         P                  ! 4       4      p \        P                  ! \
        R R7      ;_uu_ 4        V P                  \        P                  ! ^
4      4       RRR4       R#   + '       g   i     R# ; i)z`The input and output dims of the new child \(1, 1\) do not match those of current child \(2, 2\)ZmatchN)	r`   ZTransformWrapperr   ra   rb   rc   Zsetr   r   )rd       r   test_transformwrapperr7    sa    $$[%9%9%;<A	z<
> 
> 	
e  $%
> 
> 
> 
>s   &A>>B	Zpng)Z
extensionsc           	      sJ   \         P                  P                  R 4       \         P                  P                  ^
R7      p\         P                  ! R^^
4      p\        W.RR.4       F  w  rEVP                  4       pVP                  W%RR7       VP                  V\         P                  ! V^,          ) ^,          4      \         P                  ! ^\         P                  ,          4      ,          4       VP                  P                  4        VP                  R4       K  	  R# )r!   )ZsizeTF)r   ZdensityZlinearNr   )r   r"   r#   Znormalr   r   r"  Zhistr   Zexpr-  r:   r   r   r#  )Zfig_testZfig_refZsamplesr   r   Z	log_stater   s   &&     r   test_scale_swappingr8     s    IINN8iiB'G
B2Ax1D%=A\\^
5
266AqD'A+&RUU);;<


h Br    c                  sh   \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! RRR7       RRR4       \         P                  ! \        RR7      ;_uu_ 4        \        P                  ! RRR7       RRR4       R#   + '       g   i     LW; i  + '       g   i     R# ; i)zZ'fontsize' is not a valid value for units; supported values are 'dots', 'points', 'inches'r5  NZfontsize)Zunitsz3For units of inches or points a fig kwarg is neededZinches)ra   rb   rc   r`   Zoffset_copyrm   r    r   test_offset_copy_errorsr9  .  s    	zP
Q 
Q 	J7
Q
 
zR
T 
TH5
T 
T
Q 
Q

T 
T 
Ts   B*B B	 B1	c                  s    \        \        P                  ! 4       \        4       P	                  ^4      4      p \        \        P                  ! 4       \        4       P                  RR4      4      p R# )i   g      ?rY   N)r   r   r3  r   r;   rR   )Zbbr6  r   test_transformedbbox_containsr:  9  sD    	hj&;&;B&?	@B 
hj&:&:3&C	DBr    c                  r   r   rm   rm   r    r   test_interval_containsr;  D  r   r    c                  r   r   rm   rm   r    r   test_interval_contains_openr<  M  r   r    c                 s4    Rp \        4       p\        W4      pR# )z=Test that the ScaledRotation object is initialized correctly.r   N)r   r	   )thetatrans_shift
scaled_rotr   r   "test_scaledrotation_initializationr@  V  s    E+K 4Jr    c                 sH   \         P                  ^,          p \        \        V ^ ..R7      R7      p\        W4      pRVn        VP                  4       pVP                  P                  V ^ ..4       \         P                  ! ^ R.^^ ..4      p\        VR,          VRR7       R# )	zCTest get_matrix when the matrix is invalid and needs recalculation.)Zreturn_valuer   Tr)  r*  Nr5   )Nr   NrA  )
r   r:   r   r	   Z_invalidr-   r<   Zassert_called_once_withr   r   )r=  r>  r?  ZmatrixZexpected_rotationr  r   &test_scaledrotation_get_matrix_invalidrB  `  s    EEAIEiuaj\&JKK 4JJ""$F11E1:,?1b'#$q'"+ , F6N$5EBr    r2  )Frg   Znumpyr   Znumpy.testingr   r   r   r   ra   Z
matplotlibr   Zmatplotlib.pyplotZpyplotr   Zmatplotlib.patchesZpatchesr  Zmatplotlib.transformsZ
transformsr`   r   r   r   r	   Zmatplotlib.pathr
   Zmatplotlib.testing.decoratorsr   r   Zunittest.mockr   r   rw   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/  ZmarkZparametrizer4  r7  r8  r9  r:  r;  r<  r@  rB  rm   r    r   <module>rC     sz    J J    % + R R   O #D; D;N
2 22#LC$ '(d' I IF;	;	;&"*JK-4{,, 4,I4 I4XZN ZNz33=,	5/8d#3$0 ,J" )+CD< E<B& (
  )
 6)6;#Cr    