+
     ]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	   )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   r5   Nr6   r7   )r   Zrotate_aroundpivotr   r;   rotate_deg_aroundr   r.   r   r=   r>   r?   r@   rA   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   Nr7   r9   )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/   rI   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/   rI   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   rK   rL         ?g      @Nr6   r7   r8   rF   ig      g      )r   r<   rD   rC   r   r.   r   r=   r>   r?   r   rP   rS   r   r/   Ztrans_addedr0   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# )rU   rK   rL   rM   rN         ?g      @rO   Nr6   r8   r7   r9   rF   rW   )r   rD   rC   r<   r   r.   r   r=   r>   r?   r   rP   rS   rX   r0   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   rK   rL   Nr7         r9         )r   r   r<   r   r.   r=   r>   r   r?   rD   rC   rP   rS   rX   r0   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
# )rK   rL   rM   rO   rV   g      +@g     8@g     E@g     ;@g     F@Nr\   r7   r]   r6   g      g      r9   g      )r   rP   r<   r   r.   r   r=   r>   r?   rD   rC   r   rS   rX   r0   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# )rR   rK   rL   g     F@g     H@g     @H@g     I@g     `H@Niiiiiir7   iiii)r   rS   r<   r   r.   r   r=   r>   r?   rD   rC   r   rP   rX   r0   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                  '       g   VP                  '       d   Q hVP                  ^^4       VP                  '       d   VP                  '       g   Q hVP                  4       VP                  4       8H  P                  4       '       g   Q hVP                  4        \        P                  ! V4      pVP                  ^^4       VP                  '       d   Q h\        VP                  4       VP                  4       4       R# r   N)ra   r   r.   copy_invalidrS   allr   r   r3   bZsZs1Zb1   &     r   	test_copyZTestAffine2D.test_copy4  s      "  "E	YYq\:::bkkk11	Aqzzzbkkk))1<<>1668888	YYq\
Q:::~1<<>1<<>:r!   c                s   \         P                  ! 4       p\         P                  ! 4       pW,           pVP                  4        \        P                  ! V4      pVP
                  '       g   VP
                  '       d   Q hVP                  ^^4       VP
                  '       d   VP
                  '       d   Q h\        VP                  4       \         P                  ! 4       P                  4       4       VP                  4        \        P                  ! V4      pVP                  ^^4       VP
                  '       d   Q h\        VP                  4       VP                  4       4       R# rg   )ra   r   r.   rh   Zdeepcopyri   rS   r   rk   rm   r   test_deepcopyZTestAffine2D.test_deepcopyF  s      "  "E	]]1:::bkkk11	Aqzzz"+++--2==?K,@,@,B,M,M,OP	]]1
Q:::~1<<>1<<>:r!    N)__name__
__module____qualname____firstlineno__r>   r?   rC   r    r)   r1   r4   rB   rE   rJ   rQ   rT   rY   r[   r^   r_   r`   rf   rn   ro   __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   ra   r   r%   ZAffineDeltaTransformr   r.   
invalidate)r   ZbeforeZafterZbasere      &    r   test_invalidateZ(TestAffineDeltaTransform.test_invalidateZ  s    ?**, - /))+ ,
 ##//1aAqA,,T21<<>62
 $%% 1<<>51 	1<<>51r!   rp   N)rq   rr   rs   rt   r}   ru   rv   rw   ry   r   rz   rz   Y  s     2 2r!   rz   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_transformra   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                j    V P                   '       d   Q R 4       hV P                  P                  V4      # z3Invalidated affine part of transform unnecessarily.)r   r   transform_pathr   path   &&r   transform_path_non_affineZVtest_non_affine_caching.<locals>.AssertingNonAffineTransform.transform_path_non_affine  s7    ... FEF.,,;;DAAr!   c                r   r   )r   r   r=   r   r   r   transform_non_affineZQtest_non_affine_caching.<locals>.AssertingNonAffineTransform.transform_non_affine  s7    ... FEF.,,66t<<r!   )r   r   )rq   rr   rs   rt   __doc__
input_dimsoutput_dims	is_affiner   r   r   r   r=   ru   rv   __classcell__r   rx      @@r   AssertingNonAffineTransformr~   s  s<     	
 $%$
[		M
	B 3	= )		r!   r   r=   TN)ra   	Transformpltaxesplotr   arange	transDatadrawr   	transAxesr{   )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 # N_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   )ra   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)rq   rr   rs   rt   r   r   ru   rv   rw   ry   r   ScaledByr     s     	.	& 	&r!   r   r   N)r   r   r   r   r   Zset_xlimZset_ylimr   Zget_transformZ_ar.   ra   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   ra   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   rM   ףp=
?r   rN   N)r   r   r   meshgridr   r   logra   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   rM   r   r   rN   r6   )r   r   r   r   r   Zpcolorr   ra   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   ra   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radiansr2   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    Nr6   r7   )r   r   ra   r   r%   r=   r   )pointsre   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)ra   r   r   r=   invertedrS   r.   )Zpointre        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   r6   )r
   Z_create_closedra   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                8    V P                   P                  V4      # 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   )rq   rr   rs   rt   r   r   r   r   r   r   r   ru   rv   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)ra   r   r:   r   r;   r   rS   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                s    V P                   P                  ^8X  g   Q hV P                  P                  ^8X  g   Q hV P                  P                  ^8X  g   Q hR# )r   N)r   depthr   r   r   r   r   test_transform_depthZ'TestBasicTransform.test_transform_depths  sL    {{  A%%%{{  A%%%!!''1,,,r!   c                s   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\        V4      \        V4      8X  g   Q h\        W%4       F  w  rgWg8X  d   K  Q h	  R # u uppi r   )r   r   r   r   r   Z_iter_break_from_left_to_rightZlenr   )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1v.////#&'8#<L((( $= Fs   9Ec                s   V P                   V P                  ,
          V P                  8X  g   Q hV P                  V P                  ,
          V P                  8X  g   Q hV P                  V P                  ,
          V P                  P	                  4       8X  g   Q hV P                  V P                  ,
          P
                  ^8X  g   Q h\        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W,
          V P                  8X  g   Q hWP                  ,
          WP                  P	                  4       ,           8X  g   Q hV P                   V P                  ,
          V P                  V P                  V P                  ,           ,           8X  g   Q hV P                  V P                  ,
          V P                  V P                  ,           V P                  ,           8X  g   Q hV P                  V P                  ,           V P                  ,
          V P                  ,           V P                  V P                  ,           8X  g   Q hR#   + '       g   i     EL; irg   )r   r   r   r   r   r   rb   rc   rd   r   r   r   )r   Zaff1Zaff2r0   r   test_transform_shortcutsZ+TestBasicTransform.test_transform_shortcuts  s   {{T///488;;;{{T///488;;;!!DKK/4883D3D3FFFF""T[[0771<<<]]:&&KK$++% ' xx488dhh./xx$(("{dhh&&&hh$):):)<"<<<<{{TXX%TXX5H)IIII{{TXX%DHH)<txx)GGGGDHH$0488;488#$ 	% $ '&&s   )J--J>	c                s   V P                   V P                  ,           pV P                   V P                  ,           pW8X  g   Q hWP                  8w  g   Q hVP                  V4      '       g   Q hVP                  V P                  4      '       g   Q hVP                  V P                   4      '       d   Q hVP                  V P                   V P                   ,           4      '       d   Q hW8X  g   Q hV P                  P                  V P                  4      '       g   Q hV P
                  P                  V P                  4      '       g   Q hV P                  P                  V P                  4      '       g   Q hV P
                  P                  V P                  4      '       g   Q hV P                  P                  V P                  4      '       d   Q hV P                  P                  V P
                  4      '       d   Q hV P                  P                  V P                   V P                  ,           4      '       g   Q hV P
                  P                  V P                   V P                  ,           4      '       g   Q hV P                  P                  V P                  V P                   ,           4      '       d   Q h\        P                  ! V P                  V P
                  4      pVP                  V P                  4      w  rEV P                  V,           pVP                  V P                  4      w  rxYGu;J d   R J g   Q h Q hYXu;J d   RJ g   Q h Q hR# )FTN)r   r   Zcontains_branchr   r   r   r   r   ra   r   r   Zcontains_branch_seperatelyr   )	r   r1r2Zblendr   r   Zstack_blendrG   rH   s	   &        r   test_contains_branchZ'TestBasicTransform.test_contains_branch  ss   hh!hh!xxXX~~!!"%%%%!!$((++++%%dhh////%%dhh&9::::xx{{**4884444{{**4884444{{**4+=+=>>>>{{**4+=+=>>>>%%55dkkBBBB%%55dkkBBBB{{**488dhh+>????{{**488dhh+>????;;..txx$((/BCCCC33DHHdkkJ//0B0BChh&778J8JK%$r!   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@Nr6   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)rq   rr   rs   rt   r   r   r   r   r   r   ru   rv   rw   ry   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?皙??rZ   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   rZ   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   ra   blended_transform_factoryr   r   r   r   r   r   r   r   r   r   r   r/   r0   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   ra   r   r   r   r   r   r   r   r   r   r  r0   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   ra   r  r   r   r   r   r   r   r   r   r   r   r   r  r0   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   ra   r   rS   r   r   r   r   r   r   r   r   r   r   offsetexpected_data_limrI   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   ra   r   rS   r   r   r   r   r   r   r   r   r   )r   r   r  	na_offsetr  r|   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   ra   r   rS   r   r
   mpatches	PathPatchr   	add_patchr   r   r   r   r   )r   r   r  r  pthpatchr  rA   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   ra   r   rS   r
   r  r  r   r  r   r   r   r   r   )r   r   r  r  r  r  rm   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  rI   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!   rp   N)rq   rr   rs   rt   r   r  r  r	  r
  r  r  r  r  r  ru   rv   rw   ry   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)ra   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      e   Q h\	        V! W&4      V ! ^^^^4      4       R# )r    rZ   rM   rV   g      @N)ra   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            	      s   \         P                  ! R ^ .RR..4      p \        V \        \	        V 4      R\         P                  /4      4       \        \        V 4      R\        /4      pVP                  4        F  w  r#\        W4      V8X  d   K  Q h	  Rp\        \        W4      R\        /4      pVP                  4        F*  w  r#\        \        \        W4      V4      4      V8X  d   K*  Q h	  R# )rZ   rV   r   z.1fN)
ra   r   r  ZevalZreprstrZdictZitemsgetattrZformat)rl   ZasdictZkr   Zfmt        r   test_bbox_as_stringsr&  b  s    2q'C:./A1d47V[-=-=$>?@#a&64.)Fq}!!! 
C&.64.1FF71=#./1444 r!   c                  sh    \        \        P                  ! R R7      P                  4      R8X  g   Q hR# )r   r   a  CompositeGenericTransform(
    CompositeGenericTransform(
        CompositeGenericTransform(
            TransformWrapper(
                BlendedAffine2D(
                    IdentityTransform(),
                    IdentityTransform())),
            CompositeAffine2D(
                Affine2D().scale(1.0),
                Affine2D().scale(1.0))),
        PolarTransform(
            PolarAxes(0.125,0.1;0.775x0.8),
            use_rmin=True,
            apply_theta_transforms=False)),
    CompositeGenericTransform(
        CompositeGenericTransform(
            PolarAffine(
                TransformWrapper(
                    BlendedAffine2D(
                        IdentityTransform(),
                        IdentityTransform())),
                LockableBbox(
                    Bbox(x0=0.0, y0=0.0, x1=6.283185307179586, y1=1.0),
                    [[-- --]
                     [-- --]])),
            BboxTransformFrom(
                _WedgeBbox(
                    (0.5, 0.5),
                    TransformedBbox(
                        Bbox(x0=0.0, y0=0.0, x1=6.283185307179586, y1=1.0),
                        CompositeAffine2D(
                            Affine2D().scale(1.0),
                            Affine2D().scale(1.0))),
                    LockableBbox(
                        Bbox(x0=0.0, y0=0.0, x1=6.283185307179586, y1=1.0),
                        [[-- --]
                         [-- --]])))),
        BboxTransformTo(
            TransformedBbox(
                Bbox(x0=0.125, y0=0.09999999999999998, x1=0.9, y1=0.9),
                BboxTransformTo(
                    TransformedBbox(
                        Bbox(x0=0.0, y0=0.0, x1=8.0, y1=6.0),
                        Affine2D().scale(80.0)))))))N)r#  r   Zsubplotr   rp   r!   r   test_str_transformr'  n  s/     s{{g.889 ,>8 ,8 ,8 ,8r!   c                  sx    \         P                  ! 4       p V P                  R4      pVP                  R8X  g   Q hR# )r   Nr   r   )r   )ra   r   r   r   )re   r   r   r   test_transform_single_pointr)    s0    A	6"A77d??r!   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V P	                  V4      '       d   Q hR# )r    N)ra   r   r   r   Zoverlaps)r3   rl   r   r   test_nan_overlapr-    sU    1a&1a&)*A1a&1bff+./Azz!}}}r!   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   )	ra   r   r   r   Ztransform_anglesr   rb   rc   rd   )re   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   ra   Znonsingularr   )Zzero_expansionZcasesr   Zoutr   r   test_nonsingularr0    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
   ra   r   ZTransformedPathr   get_fully_transformed_pathverticesr   sqrtr:   r;   r   )r   r   r/   Z
trans_pathr   r%  r   test_transformed_pathr8    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   rZ   Nr+   )
ra   r   r  ZWedgeZTransformedPatchPathr5  r6  r   r   Z
set_radius)r/   r  Ztpatchr   r   r   test_transformed_patch_pathr9    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                 s   . ROpVP                  V 4       \        P                  P                  4       p\        P                  ! V3/ V ^/B p\        W04      ^8X  g   Q h\        VRV ,           4      ^8X  g   Q hV F  p\        W44      \        W$4      8X  d   K  Q h	  VP                  VP                  4       ^
,           4       \        W04      ^8X  g   Q h\        VRV ,           4      ^8X  g   Q hV F  p\        W44      \        W$4      8X  d   K  Q h	  \        VRV ,           R4       \        VRV ,           4      e   Q h\        P                  ! VP                  4       VP                  4       8H  4      '       g   Q h\        VRV ,           ^4       \        W04      ^8X  g   Q h\        VRV ,           4      ^8X  g   Q hV F  p\        W44      \        W$4      8X  d   K  Q h	  R# )x0Zlocked_Nr;  Zy0Zx1Zy1)Zremovera   r   unitZLockableBboxr$  Z
set_pointsr   Zsetattrr   rj   )r:  Zother_elementsZorigZlockedZelemr|   r   test_lockable_bboxr>    s   -N.)  "D%%dB~q.ABF 6*a///69~56!;;;v$(;;;;  	OODOO%*+6*a///69~56!;;;v$(;;;;  FI.569~56>>>66$//#v'8'8'::;;;; FI.26*a///69~56!;;;v$(;;;; 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)	ra   ZTransformWrapperr   rb   rc   rd   Zsetr   r   )re       r   test_transformwrapperrA    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expr7  r;   r   r   r+  )Zfig_testZfig_refZsamplesr   r   Z	log_stater   s   &&     r   test_scale_swappingrB     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'r?  NZfontsize)Zunitsz3For units of inches or points a fig kwarg is neededZinches)rb   rc   rd   ra   Zoffset_copyrp   r!   r   test_offset_copy_errorsrC  .  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 V P                  RR4      '       g   Q hV P                  R
R4      '       g   Q hV P                  RR4      '       d   Q h\        \        P                  ! 4       \        4       P                  RR4      4      p V P                  RR4      '       g   Q hV P                  RR4      '       d   Q hV P                  RR4      '       d   Q hR	# )i   r   rZ   g333333?r   g      ?rN   rM   r   Ngٿ)r   r   r=  r   r<   ZcontainsrS   Zfully_contains)Zbbr@  r   test_transformedbbox_containsrD  9  s    	hj&;&;B&?	@B;;r2;;sC    {{2r""""	hj&:&:3&C	DB;;tS!!!!  s++++  R(((((r!   c                  sz   \         P                  ! RR4      '       g   Q h\         P                  ! R^ 4      '       g   Q h\         P                  ! R^4      '       g   Q h\         P                  ! RR4      '       d   Q h\         P                  ! R^4      '       d   Q h\         P                  ! RR4      '       g   Q hR# r    rZ   Nr4  r6   r3  )ra   Zinterval_containsrp   r!   r   test_interval_containsrF  D  s    ((5555((3333((3333,,VR8888,,VQ7777((5555r!   c                  sz   \         P                  ! RR4      '       g   Q h\         P                  ! R^ 4      '       d   Q h\         P                  ! R^4      '       d   Q h\         P                  ! RR4      '       d   Q h\         P                  ! R^4      '       d   Q h\         P                  ! RR4      '       g   Q hR# rE  )ra   Zinterval_contains_openrp   r!   r   test_interval_contains_openrG  M  s    --fc::::11&!<<<<11&!<<<<11&"====11&!<<<<--fc::::r!   c                 s    Rp \        4       p\        W4      pVP                  V 8X  g   Q hVP                  V8X  g   Q hVP                  e   Q hR# )z=Test that the ScaledRotation object is initialized correctly.r   N)r   r	   Z_thetaZ_trans_shiftZ_mtx)thetatrans_shift
scaled_rotr   r   "test_scaledrotation_initializationrK  V  sP    E+K 4J%%%""k111??"""r!   c                 sT   \         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f   Q h\        VR,          VRR7       R# )	zCTest get_matrix when the matrix is invalid and needs recalculation.)Zreturn_valuer   TNr1  r2  r6   )Nr   NrL  )
r   r;   r   r	   ri   r.   r=   Zassert_called_once_withr   r   )rH  rI  rJ  ZmatrixZexpected_rotationr%  r   &test_scaledrotation_get_matrix_invalidrM  `  s    EEAIEiuaj\&JKK 4JJ""$F11E1:,?1b'#$q'"+ ,F6N$5EBr!   r<  )Frh   Znumpyr   Znumpy.testingr   r   r   r   rb   Z
matplotlibr   Zmatplotlib.pyplotZpyplotr   Zmatplotlib.patchesZpatchesr  Zmatplotlib.transformsZ
transformsra   r   r   r   r	   Zmatplotlib.pathr
   Zmatplotlib.testing.decoratorsr   r   Zunittest.mockr   r   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r!  r"  r&  r'  r)  r,  r-  r/  r0  r8  r9  ZmarkZparametrizer>  rA  rB  rC  rD  rF  rG  rK  rM  rp   r!   r   <module>rN     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!   