
    h                     H   S SK r S SKrS SKJrJrJrJr  S SKrS SK	J
r
  S SKJr  S SKJr  S SKJr  S SKJrJrJrJr  S SKJr  S SKJrJr  S SKJr   " S S	5      r " S
 S5      r S r!S r"\" S/SSSS9S 5       r#S r$S r%S r&S r'S r(S r)S r* " S S\RV                  5      r, " S S5      r- " S S 5      r.S! r/S" r0S# r1S$ r2S% r3S& r4S' r5S( r6S) r7S* r8S+ r9S, r:\Rv                  Ry                  S-/ S.Q5      S/ 5       r=S0 r>\" S1/S29S3 5       r?S4 r@S5 rAS6 rBS7 rCS8 rDS9 rEg):    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                       \ rS rSrSS/rSS/SS/SS//r\rS rS rS	 r	S
 r
S rS rS rS rS rS rS rS rS rS rS rS rS rSrg)TestAffine2D         ?               @      @      @c                     [        / SQ/ SQ/ SQ/5        [        [        R                  " / SQ/ SQ/ SQ/[        5      5        [        [        R                  " / SQ/ SQ/ SQ/[        5      5        g )N         )         )      	   )r   nparrayintfloatselfs    R/var/www/html/env/lib/python3.13/site-packages/matplotlib/tests/test_transforms.py	test_initTestAffine2D.test_init   sE    )Y	239i;SAB9i;UCD    c                     [         R                  R                  S5        [         R                  R                  S5      n[        [        R
                  " U6 R                  5       U5        g )N!N,r   )r#   randomseedr   r   from_values	to_valuesr(   valuess     r)   test_valuesTestAffine2D.test_values   sD    
		x !!!$8//8BBDfMr,   c                     [        5       nUR                  5       nSUS'   [        UR                  5       / SQ/ SQ/ SQ/5        g )N*   r   r   )r8   r   r   r   r   r   r   r   r   )r   
get_matrixr   )r(   transmtxs      r)   test_modify_inplace TestAffine2D.test_modify_inplace!   s:    
 D	5++-
Iy/QRr,   c                     [        [        R                  R                  SS5      S-   5      nUR	                  5         [        UR                  5       / SQ/ SQ/ SQ/5        g )Nr   r   )r   r   r   r:   r;   )r   r#   r/   randclearr   r<   )r(   as     r)   
test_clearTestAffine2D.test_clear(   s@    RYY^^Aq)A-.		1<<>Iy)+LMr,   c                 ,   [        5       R                  [        R                  S-  5      n[        5       R	                  S5      n[        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS	//5        [        5       R                  [        R                  5      n[        5       R	                  S
5      n[        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS//5        [        5       R                  S[        R                  -  S-  5      n[        5       R	                  S5      n[        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS//5        [        X"-   R                  5       UR                  5       5        [        X$-   R                  5       UR                  5       5        g )Nr   Z   r   r   r   r        )r   rotater#   pi
rotate_degr   r<   r   	transformsingle_pointmultiple_pointsr(   r_pi_2r90r_pir180r_pi_3_2r270s          r)   test_rotate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                    [        5       R                  " / U R                  Q[        R                  S-  P76 n[        5       R
                  " / U R                  QSP76 n[        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS//5        [        5       R                  " / U R                  Q[        R                  P76 n[        5       R
                  " / U R                  QSP76 n[        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/S	S//5        [        5       R                  " / U R                  QS[        R                  -  S-  P76 n[        5       R
                  " / U R                  QS
P76 n[        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS	//5        [        X"-   R                  5       UR                  5       5        [        X$-   R                  5       UR                  5       5        g )Nr   rH   r   r   rI   r   r   rL   rJ   rN   )r   rotate_aroundpivotr#   rP   rotate_deg_aroundr   r<   r   rR   rS   rT   rU   s          r)   test_rotate_around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                    [        5       R                  SS5      n[        5       R                  SS5      n[        5       R                  SS5      n[        X-   R                  5       UR                  5       5        [        UR	                  U R
                  5      SS/5        [        UR	                  U R                  5      SS/SS/SS//5        g )	Nr   r   rJ   r   rM   r"      )r   r   r   r<   rR   rS   rT   )r(   sxsyr=   s       r)   
test_scaleTestAffine2D.test_scale_   s    Za#Za$
  B'BG//153C3C3EF5??4+<+<=2wG5??4+?+?@GaWr1g6	8r,   c                    [        5       R                  [        R                  S-  [        R                  S-  5      n[        5       R	                  SS5      n[        UR                  5       UR                  5       5        [        5       R	                  SS5      n[        UR                  U R                  5      SS/5        [        UR                  U R                  5      S	S
/SS/SS	//5        g )Nr!   rf   g     6@   Ȑ2:@b,@      ?      ?r   r         @g      @r   )r   skewr#   rP   skew_degr   r<   r   rR   rS   rT   )r(   	trans_rad	trans_degr=   s       r)   	test_skewTestAffine2D.test_skewh   s    JOOBEEAIruurz:	J''b1	9//193G3G3IJ
##J
;!%//$2C2C"DsDkR!%//$2F2F"G$%q6C;A"?	Ar,   c                    [        5       R                  SS5      n[        5       R                  SS5      n[        5       R                  SS5      n[        X-   R                  5       UR                  5       5        [        UR	                  U R
                  5      SS/5        [        UR	                  U R                  5      SS/SS/S	S//5        g )
N   r   r8      +   ,      -      )r   	translater   r<   rR   rS   rT   )r(   txtyr=   s       r)   test_translateTestAffine2D.test_translater   s    Z!!"a(Z!!!R(
$$R,BG//153C3C3EF5??4+<+<=BxH5??4+?+?@Hr2hR9	;r,   c                    [        5       R                  S5      R                  " / U R                  QSP76 n[        5       R                  S5      [        5       R                  " / U R                  QSP76 -   n[	        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS	//5        [        5       R                  S5      R                  SS	5      n[        5       R                  S5      [        5       R                  SS	5      -   n[	        UR                  5       UR                  5       5        [        UR                  U R                  5      S
S	/5        [        UR                  U R                  5      SS/SS/SS//5        [        5       R                  S5      R                  SS5      n[        5       R                  S5      [        5       R                  SS5      -   n[	        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      S	S/SS/SS//5        [        5       R                  S5      R                  SS5      n[        5       R                  S5      [        5       R                  SS5      -   n[	        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS//5        g )NrH   rL   r   r   r   r   r   rI   rJ   rK   re   r   irm   rn   g            ?g      g      @ry   r8      r{         r~   .   )r   rQ   ra   r`   r   r<   r   rR   rS   rT   r   rs   r   r(   r=   trans_addeds      r)   test_rotate_plus_other#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                    [        5       R                  " / U R                  QSP76 R                  S5      n[        5       R                  " / U R                  QSP76 [        5       R                  S5      -   n[	        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS//5        [        5       R                  " / U R                  QSP76 R                  S	S5      n[        5       R                  " / U R                  QSP76 [        5       R                  S	S5      -   n[	        UR                  5       UR                  5       5        [        UR                  U R                  5      S	S/5        [        UR                  U R                  5      SS/SS
/SS//5        [        5       R                  " / U R                  QSP76 R                  SS5      n[        5       R                  " / U R                  QSP76 [        5       R                  SS5      -   n[	        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS//5        [        5       R                  " / U R                  QSP76 R                  SS5      n[        5       R                  " / U R                  QSP76 [        5       R                  SS5      -   n[	        UR                  5       UR                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS//5        g )NrH   rL   rI   r   r   rK   rJ   rM   r   re   r   r   rm   rn   ro   rp         ?g      @r   rq   ry   r8   rz   r{   r   r~      r   )r   ra   r`   rQ   r   r<   r   rR   rS   rT   r   rs   r   r   s      r)   test_rotate_around_plus_other*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                    [        5       R                  SS5      R                  S5      n[        5       R                  SS5      [        5       R                  S5      -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS	//5        [        5       R                  SS5      R                  " / U R                  QSP76 n[        5       R                  SS5      [        5       R                  " / U R                  QSP76 -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/S
S/SS	//5        [        5       R                  SS5      R                  SS5      n[        5       R                  SS5      [        5       R                  SS5      -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/S	S//5        [        5       R                  SS5      R                  SS5      n[        5       R                  SS5      [        5       R                  SS5      -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS//5        g )Nr   rJ   rH   r   r   r   r   r"   rf   r!   rm   rn         rM         ry   r8   r}   (   &       $   #   )r   r   rQ   r   r<   rR   rS   r   rT   ra   r`   rs   r   r   s      r)   test_scale_plus_other"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                    [        5       R                  SS5      R                  S5      n[        5       R                  SS5      [        5       R                  S5      -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS	/S
S//5        [        5       R                  SS5      R                  " / U R                  QSP76 n[        5       R                  SS5      [        5       R                  " / U R                  QSP76 -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS	/SS//5        [        5       R                  SS5      R                  SS5      n[        5       R                  SS5      [        5       R                  SS5      -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      S	S/5        [        UR                  U R                  5      SS/SS/SS//5        [        5       R                  SS5      R                  SS5      n[        5       R                  SS5      [        5       R                  SS5      -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS//5        g )Nrm   rn   rH   r   ro   rJ   r   r   rq   rI   r   r   r   g      r   g      rM   g      +@g      rf   ry   r8   g     8@g     E@rz   r|   g     ;@g     F@r   r{   )r   rs   rQ   r   r<   r   rR   rS   rT   ra   r`   r   r   r   s      r)   test_skew_plus_other!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                    [        5       R                  SS5      R                  S5      n[        5       R                  SS5      [        5       R                  S5      -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/S	S
//5        [        5       R                  SS5      R                  " / U R                  QSP76 n[        5       R                  SS5      [        5       R                  " / U R                  QSP76 -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      S	S/SS/SS
//5        [        5       R                  SS5      R                  SS5      n[        5       R                  SS5      [        5       R                  SS5      -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS//5        [        5       R                  SS5      R                  SS5      n[        5       R                  SS5      [        5       R                  SS5      -   n[        UR	                  5       UR	                  5       5        [        UR                  U R                  5      SS/5        [        UR                  U R                  5      SS/SS/SS //5        g )!Nry   r8   rH   irz   iir}   ir   iir   rJ   H   iE   iN   iQ   irm   rn   g     F@1   r~   g     H@g     @H@g     I@0   g     `H@)r   r   rQ   r   r<   r   rR   rS   rT   ra   r`   r   rs   r   s      r)   test_translate_plus_other&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                 ~   [         R                  " 5       n[        R                  " [        5         UR                  S5        S S S 5        [        R                  " [        5         UR                  S///5        S S S 5        [        R                  " [        5         UR                  / 5        S S S 5        [        R                  " [        5         UR                  S/5        S S S 5        [        R                  " [        5         UR                  S//5        S S S 5        [        R                  " [        5         UR                  / SQ/5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   r   )mtransformsr   pytestraises
ValueErrorrR   RuntimeError)r(   ts     r)   test_invalid_transform#TestAffine2D.test_invalid_transform   s      " ]]:&KKN ']]:&KK1#  ']]<(KKO )]]<(KK )]]:&KK! ']]:&KK$ '& '&&&((((&&&&sG   E$E*E;FF:F.
E'*
E8;
F	
F
F+.
F<c                    [         R                  " 5       n[         R                  " 5       nX-   nUR                  5         [        R                  " U5      nUR                  (       d  UR                  (       a   eUR                  SS5        UR                  (       a  UR                  (       d   eUR                  5       UR                  5       :H  R                  5       (       d   eUR                  5         [        R                  " U5      nUR                  SS5        UR                  (       a   e[        UR                  5       UR                  5       5        g Nr   r   r   r   )r   r   r<   copy_invalidr   allr   r(   rD   bss1b1s         r)   	test_copyTestAffine2D.test_copy4  s      "  "E	YYq\::bkk11	Aqzzbkk))1<<>1668888	YYq\
Q::~1<<>1<<>:r,   c                    [         R                  " 5       n[         R                  " 5       nX-   nUR                  5         [        R                  " U5      nUR
                  (       d  UR
                  (       a   eUR                  SS5        UR
                  (       a  UR
                  (       a   e[        UR                  5       [         R                  " 5       R                  5       5        UR                  5         [        R                  " U5      nUR                  SS5        UR
                  (       a   e[        UR                  5       UR                  5       5        g r   )r   r   r<   r   deepcopyr   r   r   r   s         r)   test_deepcopyTestAffine2D.test_deepcopyF  s      "  "E	]]1::bkk11	Aqzz"++--2==?K,@,@,B,M,M,OP	]]1
Q::~1<<>1<<>:r,    N)__name__
__module____qualname____firstlineno__rS   rT   r`   r*   r5   r?   rE   r\   rb   ri   rv   r   r   r   r   r   r   r   r   r   __static_attributes__r   r,   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                       \ rS rSrS rSrg)TestAffineDeltaTransformiY  c                    [         R                  " / SQ/ SQ/ SQ/5      n[         R                  " / SQ/ SQ/ SQ/5      n[        R                  R	                  SSSSSS	5      n[        R
                  " U5      n[        UR                  5       U5        S	UR                  5       S
SS 24'   [        UR                  5       U5        UR                  5         [        UR                  5       U5        g )N)r   r   r   )g      @r   r   )r   r   r   )r   r   r   r   r   r   r   r   r   )	r#   r$   r   r   r1   AffineDeltaTransformr   r<   
invalidate)r(   beforeafterbaser   s        r)   test_invalidate(TestAffineDeltaTransform.test_invalidateZ  s    ?**, - /))+ ,
 ##//1aAqA,,T21<<>62
 $%!QR% 1<<>51 	1<<>51r,   r   N)r   r   r   r   r   r   r   r,   r)   r   r   Y  s    2r,   r   c                  n    " S S[         R                  5      n U " 5       n[        R                  " 5       n[        R                  " [
        R                  " S5      XR                  -   S9  [        R                  " 5         SUl	        UR                  R                  5         [        R                  " 5         g )Nc                   L   ^  \ rS rSrSrS=rrSrU 4S jrS r	\	r
S r\rSrU =r$ )	<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.

r   Fc                    > [         TU ]  " U0 UD6  SU l        [        R                  " 5       R                  SS5      U l        g )NF
   )super__init__raise_on_transformr   r   r   underlying_transform)r(   argskwargs	__class__s      r)   r   Etest_non_affine_caching.<locals>.AssertingNonAffineTransform.__init__|  s;    Gd-f-&+D#(3(<(<(>(D(DR(LD%r,   c                 h    U R                   (       a   S5       eU R                  R                  U5      $ Nz3Invalidated affine part of transform unnecessarily.)r   r   transform_pathr(   paths     r)   transform_path_non_affineVtest_non_affine_caching.<locals>.AssertingNonAffineTransform.transform_path_non_affine  s4    .. FEF.,,;;DAAr,   c                 h    U R                   (       a   S5       eU R                  R                  U5      $ r   )r   r   rR   r   s     r)   transform_non_affineQtest_non_affine_caching.<locals>.AssertingNonAffineTransform.transform_non_affine  s4    .. FEF.,,66t<<r,   )r   r   )r   r   r   r   __doc__
input_dimsoutput_dims	is_affiner   r   r   r   rR   r   __classcell__r   s   @r)   AssertingNonAffineTransformr   s  s8    	
 $%$
[		M
	B 3	= )	r,   r   r   rR   T)r   	Transformpltaxesplotr#   arange	transDatadrawr   	transAxesr   )r   my_transaxs      r)   test_non_affine_cachingr   r  sr    )k&;&; )4 +,H	BHHRYYr]h&=>HHJ #'HLLHHJr,   c                      " S S5      n [         R                  " 5       n[         R                  " [        R                  " S5      U " S5      S9u  nUR                  SS5        UR                  SS5        [        UR                  5       R                  R                  5       [        R                  " 5       R                  S5      R                  5       5        g )Nc                        \ rS rSrS rS rSrg)-test_external_transform_api.<locals>.ScaledByi  c                     Xl         g N_scale_factor)r(   scale_factors     r)   r   6test_external_transform_api.<locals>.ScaledBy.__init__  s    !-r,   c                 x    [         R                  " 5       R                  U R                  5      UR                  -   $ r  )r   r   r   r  r   )r(   r   s     r)   _as_mpl_transform?test_external_transform_api.<locals>.ScaledBy._as_mpl_transform  s0    ((*001C1CDnn% &r,   r  N)r   r   r   r   r   r  r   r   r,   r)   ScaledByr     s    	.	&r,   r
  r   r   r   d   )r   r   r   r#   r   set_xlimset_ylimr   get_transform_ar<   r   r   r   )r
  r   lines      r)   test_external_transform_apir    s    & & 
BHHRYYr]hrl;EDKK3KK3D&&(++668((*004??ACr,   pre_transform_dataTmpl20g?)remove_textstyletolc                     [         R                  " 5       n [        R                  " 5       R	                  S5      nU R                  [        R                  " S5      R                  SS5      XR                  -   S9  U R                  [        R                  " SSS5      [        R                  " S	SS
5      [        R                  " S5      R                  SS5      XR                  -   S9  U R                  [        R                  " SS5      [        R                  " SS5      XR                  -   S9  [        R                  " SSS5      n[        R                  " SSS5      nS[        R                  " U5      -  [        R                  " US S 2[        R                  4   5      -   n[        R                  " U5      [        R                  " US S 2[        R                  4   5      -
  nU R!                  X#XEXR                  -   [        R"                  " XE5      S9  US S S2   US S S2   p2US S S2S S S24   US S S2S S S24   pTU R%                  X#S-   XEXR                  -   S9  U R'                  US-
  US-   US-  US-  XR                  -   S9  g )Nr   r   r   r!   r   r   r   r    g      @r"   r   r   r   r   )rR   	linewidthr   )r   r   r   r   r   contourfr#   r   reshaper   
pcolormeshlinspacescattersincosnewaxis
streamplothypotquiverbarbs)r   times10xyuvs         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  , SqS61SqS6qSqS#A#X;#A#ss(qIIaQ,,(>I?HHQUAE1a4A<<1GHHr,   c                     [         R                  " 5       n [        R                  " [        R                  " SSS5      [        R                  " SSS5      5      u  pU R                  X[        R                  " X-  5      [        R                  " 5       R                  S5      U R                  -   S9  [        R                  " SS/S	S
//5      n[        X0R                  R                  5       5        g )Nrl   r   (@      )@皙?r   ro   ףp=
?r   rp   )r   r   r#   meshgridr  r  logr   r   r   r   r$   r   dataLim
get_pointsr   xsysexpecteds       r)   !test_contour_pre_transform_limitsr8    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                     [         R                  " 5       n [        R                  " [        R                  " SSS5      [        R                  " SSS5      5      u  pU R                  X[        R                  " X-  5      S S2S S24   [        R                  " 5       R                  S5      U R                  -   S9  [        R                  " SS	/S
S//5      n[        X0R                  R                  5       5        g Nrl   r   r,  r-  rI   r.  r   ro   r/  r   rp   )r   r   r#   r0  r  pcolorr1  r   r   r   r   r$   r   r2  r3  r4  s       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                  " 5       n [        R                  " [        R                  " SSS5      [        R                  " SSS5      5      u  pU R                  X[        R                  " X-  5      S S2S S24   [        R                  " 5       R                  S5      U R                  -   S9  [        R                  " SS	/S
S//5      n[        X0R                  R                  5       5        g r:  )r   r   r#   r0  r  r  r1  r   r   r   r   r$   r   r2  r3  r4  s       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                     [         R                  R                  S5        [         R                  " SSS5      n [         R                  " SSS5      n[         R                  " X5      u  p#[         R
                  " [         R                  R                  " UR                  6 S-  5      n[        R                  " 5       nUR                  SS	S
9nUR                  SS5        UR                  XCUSS9  UR                  R                  5         g )Nr.   r   rL   r   r  i  r   o   polar
projectione   gouraud)shading)r#   r/   r0   r  r0  radiansrB   shaper   figureadd_subplotset_rlimr  canvasr   )r4   radiizr'  r&  figr   s          r)   test_pcolormesh_gouraud_nansrP    s    IINN8[[C#FKKT2&E;;v%DA


299>>177+c12A
**,C		1B KKTMM!9M-JJOOr,   c                     [         R                  " SS/SS/SS//5      n [        R                  R	                  SSSSSS5      nUR                  U 5      n[         R                  " SS/SS/SS//5      n[        X#5        [        R                  R	                  SSSSSS5      nUR                  U 5      n[         R                  " SS/SS/SS//5      n[        X#5        [        R                  R	                  SSSSSS5      nUR                  U 5      n[         R                  " SS/S	S/SS//5      n[        X#5        [        R                  R	                  SSSS
SS5      nUR                  U 5      n[         R                  " SS/SS/SS//5      n[        X#5        [        R                  R	                  SSSSSS5      nUR                  U 5      n[         R                  " SS/SS/SS//5      n[        X#5        [        R                  R	                  SSSSSS5      nUR                  U 5      n[         R                  " SS/SS/SS//5      n[        X#5        g )Nr   r   r   rI   r   r   rJ   r   <   r   P   r   r   )r#   r$   r   r   r1   rR   r   )pointsr   actualr7  s       r)   test_Affine2D_from_valuesrV    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                  R   SS/n [         R                  " 5       n[        XR                  UR	                  5       R                  U 5      5      5        UR                  SS5      R                  5         [        XR                  UR	                  5       R                  U 5      5      5        g )Nr   )r   r   r   rR   invertedr   r<   )pointr   s     r)    test_affine_inverted_invalidatedrZ  *  st    #JEA{{1::<+A+A%+HIJKKS$$&{{1::<+A+A%+HIJr,   c                  V   [         R                  " / SQ5      n [        R                  " [        R                  " 5       [
        R                  " SS5      5      nUR                  U 5      nUR                  UR                  5       SSS9n[        U6 u  pE[        XPR                  S S 5        g )N))皙?)皙?r]  )r^  r   )r\  r   r   clip)r   r   r  r  F)r_  simplifyrI   )r   _create_closedr   BlendedGenericTransformr   r   LogTransformr   iter_segments
get_affinezipr   codes)r   r=   tpathresulttpointstcodess         r)   test_clipping_of_logrl  5  s    MND// 2 22v >@E++D1E  !1!1!3&6*/ ! 1F 6lOGFJJsO,r,   c                   D   ^  \ rS rSrSrSrSrSrU 4S jrS r	S r
SrU =r$ )	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.

Fr   c                 2   > Xl         [        TU ]  " U0 UD6  g r  )
real_transr   r   )r(   rp  r   r   r   s       r)   r   NonAffineForTest.__init__N  s    $$)&)r,   c                 8    U R                   R                  U5      $ r  )rp  rR   r3   s     r)   r   %NonAffineForTest.transform_non_affineR  s    ((00r,   c                 8    U R                   R                  U5      $ r  )rp  r   r   s     r)   r   *NonAffineForTest.transform_path_non_affineU  s    --d33r,   )rp  )r   r   r   r   r   r   r   r   r   r   r   r   r   r   s   @r)   rn  rn  C  s-     IKJ*14 4r,   rn  c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestBasicTransformiY  c                 |   [         R                  " SS9R                  [        R                  S-  5      U l        [         R                  " SS9R                  SS5      U l        [         R                  " SS9R                  SS5      U l	        [        [         R                  " 5       R                  SS5      S	S9U l        [        [         R                  " 5       R                  SS5      S
S9U l        [        [         R                  " 5       R                  SS5      SS9U l        U R
                  U R                  U R                  -   -   U R                  -   U l        U R
                  U R                  -   U R                  -   U R                  -   U l        U R                  U R                  -   U R                  -   U l        g )Nta1)shorthand_namer   ta2r   r   ta3r   tn1tn2tn3)r   r   rO   r#   rP   ry  r   r{  r   r|  rn  r}  r~  r  stack1stack2stack2_subsetr'   s    r)   setup_method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                     U R                   R                  S:X  d   eU R                  R                  S:X  d   eU R                  R                  S:X  d   eg )Nr   r   )r  depthr  r  r'   s    r)   test_transform_depth'TestBasicTransform.test_transform_depths  sL    {{  A%%%{{  A%%%!!''1,,,r,   c                 <   U R                   U R                  U R                  U R                  -   -   -   U R                  -   nUU R                  U R                  U R                  -   -   U R                  -   U R                  U R                  -   U R                  -   U R                  U R                  -   U R                  /nUR                  5        VVs/ s H  u  p4UPM	     nnn[        U5      [        U5      :X  d   e[        X%5       H  u  pgXg:X  a  M   e   g s  snnf r  )ry  r}  r{  r~  r|  _iter_break_from_left_to_rightlenrf  )r(   stack3target_transforms_rhrtarget_stackstacks           r)   test_left_to_right_iteration/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   Dc                    U R                   U R                  -
  U R                  :X  d   eU R                  U R                  -
  U R                  :X  d   eU R                  U R                  -
  U R                  R	                  5       :X  d   eU R                  U R                  -
  R
                  S:X  d   e[        R                  " [        5         U R                   U R                  -
    S S S 5        U R                  U R                  U R                  -   -   nU R                  U R                  -   nX-
  U R                  :X  d   eXR                  -
  XR                  R	                  5       -   :X  d   eU R                   U R                  -
  U R                  U R                  U R                  -   -   :X  d   eU R                  U R                  -
  U R                  U R                  -   U R                  -   :X  d   eU R                  U R                  -   U R                  -
  U R                  -   U R                  U R                  -   :X  d   eg ! , (       d  f       GNg= f)Nr   )r  r  ry  r  rX  r  r   r   r   r{  r|  r}  )r(   aff1aff2s      r)   test_transform_shortcuts+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   I
Ic                 F   U R                   U R                  -   nU R                   U R                  -   nX:X  d   eXR                  :w  d   eUR                  U5      (       d   eUR                  U R                  5      (       d   eUR                  U R                   5      (       a   eUR                  U R                   U R                   -   5      (       a   eX:X  d   eU R                  R                  U R                  5      (       d   eU R
                  R                  U R                  5      (       d   eU R                  R                  U R                  5      (       d   eU R
                  R                  U R                  5      (       d   eU R                  R                  U R                  5      (       a   eU R                  R                  U R
                  5      (       a   eU R                  R                  U R                   U R                  -   5      (       d   eU R
                  R                  U R                   U R                  -   5      (       d   eU R                  R                  U R                  U R                   -   5      (       a   e[        R                  " U R                  U R
                  5      nUR                  U R                  5      u  pEU R                  U-   nUR                  U R                  5      u  pxXGs=L a  SL d   e   eXXs=L a  SL d   e   eg )NFT)r{  ry  contains_branchr  r|  r  r  r}  r   rb  r~  contains_branch_seperatelyr  )	r(   r1r2blendr&  r'  stack_blendrg   rh   s	            r)   test_contains_branch'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                    [         R                  " SS/SS/[         R                  S/SS//[         R                  S9nU R                  R                  U5      nU R                  R                  U5      n[         R                  " SS/S	S
/[         R                  [         R                  /SS//[         R                  S9n[         R                  " SS/SS/[         R                  [         R                  /SS//[         R                  S9n[        X$5        [        X55        [        U R                  R                  U5      U5        [        U R                  R                  5       R                  U5      U5        U R                  U R                  -   R                  5       nU R                  R                  5       R                  5       n[        Xg5        U R                  R                  5       R                  5       n[        Xg5        g )Nr   r   r   r   rI   )dtyper   r   g      3      (@g      &@r   g      "g      8@)r#   r$   nanfloat64r  r   rR   r   transform_affinere  r{  r|  r<   r   r  )r(   rT  na_ptsall_ptsna_expectedall_expectedexpected_resultri  s           r)   test_affine_simplification-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  ry  r{  r|  r}  r~  r  N)r   r   r   r   r  r  r  r  r  r  r   r   r,   r)   rw  rw  Y  s!    <2-
) %,B#4r,   rw  c                   P    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rSrg)TestTransformPlotInterfacei  c                 \   [         R                  " 5       nUR                  / SQ/ SQUR                  S9  [	        UR
                  R                  5       [        R                  " [        R                  [        R                  /[        R                  * [        R                  * //5      5        g )Nr.  333333?皙??r   r  r   )
r   r   r   r   r   r2  r3  r#   r$   infr(   r   s     r)   test_line_extent_axes_coords7TestTransformPlotInterface.test_line_extent_axes_coords  sn    XXZ
BLLI2::00288bffbff%5')vvgw%7%9 :	;r,   c                     [         R                  " 5       nUR                  / SQ/ SQUR                  S9  [	        UR
                  R                  5       [        R                  " SS/SS//5      5        g )Nr  r  r   r.  r   r  r  )	r   r   r   r   r   r2  r3  r#   r$   r  s     r)   test_line_extent_data_coords7TestTransformPlotInterface.test_line_extent_data_coords  sT    XXZ
BLLI2::00288cC[3+$>?	Ar,   c                 d   [         R                  " 5       n[        R                  " UR                  UR
                  5      nUR                  / SQ/ SQUS9  [        UR                  R                  5       [        R                  " [        R                  S/[        R                  * S//5      5        g )Nr  r   r   r   g      g     A@)r   r   r   blended_transform_factoryr   r   r   r   r2  r3  r#   r$   r  r(   r   r=   s      r)   !test_line_extent_compound_coords1<TestTransformPlotInterface.test_line_extent_compound_coords1  s~     XXZ55bll68llD
?2::00288bffc]')vvgs^%5 6	7r,   c                 6   [         R                  " 5       n[        R                  " 5       R	                  S5      UR
                  -   nUR                  / SQ/ SQUS9  [        UR                  R                  5       [        R                  " SS/SS//5      5        g )	Nr   r  r  r   r         Ir       u@)r   r   r   r   r   r   r   r   r2  r3  r#   r$   r  s      r)   )test_line_extent_predata_transform_coordsDTestTransformPlotInterface.test_line_extent_predata_transform_coords   sr    XXZ$$&,,R02<<?
?2::00288b$Z#t$=>	@r,   c                    [         R                  " 5       n[        R                  " UR                  [        R
                  " 5       R                  S5      UR                  -   5      nUR                  / SQ/ SQUS9  [        UR                  R                  5       [        R                  " [        R                  S/[        R                  * S//5      5        g )Nr   r  r  r   r  r  )r   r   r   r  r   r   r   r   r   r   r2  r3  r#   r$   r  r  s      r)   !test_line_extent_compound_coords2<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                 h   [         R                  " 5       n[        R                  " 5       R	                  SS5      n[         R
                  " [        R                  " S5      X!R                  -   S9  [        R                  " SS/SS//5      S-   n[        UR                  R                  5       U5        g )Nr   r   r         "@r   r   r   r   r   r   r#   r   r   r$   r   r2  r3  r(   r   offsetexpected_data_lims       r)   test_line_extents_affine3TestTransformPlotInterface.test_line_extents_affine  s~    XXZ%%'11"b92&<<*?@HHr2hb	%:;b@!"**"7"7"9;LMr,   c                    [         R                  " 5       n[        R                  " 5       R	                  SS5      n[        [        R                  " 5       R	                  SS5      5      n[         R                  " [        R                  " S5      X#-   UR                  -   S9  [        R                  " SS/SS//5      S-   n[        UR                  R                  5       U5        g )Nr   r   r   r  r   )r   r   r   r   r   rn  r   r#   r   r   r$   r   r2  r3  )r(   r   r  	na_offsetr  s        r)   test_line_extents_non_affine7TestTransformPlotInterface.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                    [         R                  " 5       n[        R                  " 5       R	                  SS5      n[        [        R                  " 5       R	                  SS5      5      n[        SS/SS/SS/SS//5      n[        R                  " UX#-   UR                  -   S9nUR                  U5        [        R                  " SS/SS//5      S-   n[        UR                  R                  5       U5        g )Nr   r   r   r         $@r   )r   r   r   r   r   rn  r   mpatches	PathPatchr   	add_patchr#   r$   r   r2  r3  )r(   r   r  r  pthpatchr  s          r)   test_pathc_extents_non_affine8TestTransformPlotInterface.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                    [         R                  " 5       n[        R                  " 5       R	                  SS5      n[        SS/SS/SS/SS//5      n[        R                  " X2UR                  -   S9nUR                  U5        [        R                  " SS/SS//5      S-   n[        UR                  R                  5       U5        g )Nr   r   r   r   r  )r   r   r   r   r   r   r  r  r   r  r#   r$   r   r2  r3  )r(   r   r  r  r  r  s         r)   test_pathc_extents_affine4TestTransformPlotInterface.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                 j   [         R                  " SS9n[        R                  " 5       R	                  SS5      n[         R
                  " [        R                  " S5      X!R                  -   S9  [        R                  " SS/SS//5      SS/-   n[        UR                  R                  5       U5        g )NrA  rB  r   r   r   r   r  r  r  s       r)   *test_line_extents_for_non_affine_transDataETestTransformPlotInterface.test_line_extents_for_non_affine_transData5  s    XX)%%'11!R82&<<*?@ HHr2hb	%:;q"gE!"**"7"7"9;LMr,   r   N)r   r   r   r   r  r  r  r  r  r  r  r  r  r  r   r   r,   r)   r  r    s<    ;A	7@HNN	NN
Nr,   r  c                 D    [        U R                  UR                  5        g r  )r   bounds)bbox1bbox2s     r)   assert_bbox_eqr  B  s    u||U\\2r,   c                      [         R                  R                  SSSSSS9n U R                  5       n[	        UR
                  U R
                  5        g )Nr   r   )minpos)r   r	   from_extentsfrozenr   r  )bboxr  s     r)   test_bbox_frozen_copies_minposr  F  s@    ((c3C(HD[[]Fv}}dkk2r,   c            	         [         R                  R                  n [         R                  R                  nU " SSSS5      nU " SSSS5      nU " SSSS5      nU " SSSS5      nU " SSSS5      n[	        U" X"5      U5        [	        U" X#5      U " SSSS5      5        [	        U" X$5      U5        U" X%5      b   e[	        U" X&5      U " SSSS5      5        g )Nr   r   r   ro   r   g      @r   )r   r	   r  intersectionr  )bbox_from_extinterr  r  r3r4r5s          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            	         [         R                  " SS/SS//5      n [        U [        [	        U 5      S[         R                  05      5        [        [        U 5      S[        05      nUR                  5        H  u  p#[        X5      U:X  a  M   e   Sn[        [        X5      S[        05      nUR                  5        H)  u  p#[        [        [        X5      U5      5      U:X  a  M)   e   g )Nr   r   r   r	   z.1f)
r   r	   r  evalreprstrdictitemsgetattrformat)r   asdictkr)  fmts        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                  ^    [        [        R                  " SS9R                  5      S:X  d   eg )NrA  rB  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))))))))r  r   subplotr   r   r,   r)   test_str_transformr
  n  s/     s{{g.889 ,>8 ,8 ,8 ,8r,   c                  t    [         R                  " 5       n U R                  S5      nUR                  S:X  d   eg )Nr   r   )r   )r   r   r  rH  )r   r  s     r)   test_transform_single_pointr    s0    A	6"A77d??r,   c                      [         R                  " 5       u  pUR                  S5        UR                  R	                  S5        g )Nr1  r  )r   subplots
set_yscaler   rR   )rO  r   s     r)   test_log_transformr    s/     llnGCMM%LL6"r,   c                      [         R                  " SS/SS//5      n [         R                  " SS/S[        R                  //5      nU R	                  U5      (       a   eg )Nr   r   )r   r	   r#   r  overlaps)rD   r   s     r)   test_nan_overlapr    sU    1a&1a&)*A1a&1bff+./Azz!}}}r,   c                     [         R                  " 5       n [        R                  " / SQ5      n[        R                  " SS/SS/SS//5      nU R	                  X5      n[        X5        [        R                  " [        5         U R	                  XSS2SS24   5        S S S 5        [        R                  " [        5         U R	                  XSS2S S 24   5        S S S 5        g ! , (       d  f       NL= f! , (       d  f       g = f)N)r   r~   rR  r   r   r   )	r   r   r#   r$   transform_anglesr   r   r   r   )r   anglesrT  
new_angless       r)   test_transform_anglesr    s    AXXl#FXX1v1v1v./F ##F3Jf1 
z	"	6!A#qs(#34 
# 
z	"	6!A#q&>2 
#	"	 
#	" 
#	"s   C$ C5$
C25
Dc                      [         R                  " SS/5      n S[         R                  4SS/nU H5  n[         R                  " [        R                  " U6 5      n[        X05        M7     g )NgMbPgMbP?r   r9   )r   g     )r#   r$   r  r   nonsingularr   )zero_expansioncasesr   outs       r)   test_nonsingularr    sS    XXvuo.N[&-0Ehh{..563/ r,   c                  
   / SQn [        U SS9n[        R                  " 5       n[        R                  " X5      n[	        UR                  5       R                  U 5        S[        R                  " S5      -  nUR                  [        R                  S-  5        [	        UR                  5       R                  SXD4SSU-  4U* U4/S	S
9  S/S-  Ul        [	        UR                  5       R                  SXD4SSU-  4U* U4/S	S
9  g )N)r9   r   r   r  r   r   T)closedr   r   r   r9   r   V瞯<atol)r   r   r   TransformedPathr   get_fully_transformed_pathverticesr#   sqrtrO   rP   rT  )rT  r   r=   
trans_pathr  s        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                     [         R                  " 5       n [        R                  " SSSSU S9n[         R                  " U5      nUR                  5       R                  nU R                  S5        [        UR                  5       R                  US-  5        UR                  S5        [        UR                  5       R                  U5        g )Nr9   r   r~      r   r   r   )
r   r   r  WedgeTransformedPatchPathr(  r)  r   r   
set_radius)r=   r  tpatchrT  s       r)   test_transformed_patch_pathr3    s      "ENN61b#?E--e4F..099F 
KKNF557@@&1*M 
SF557@@&Ir,   locked_elementx0y0x1y1c                 r   / SQnUR                  U 5        [        R                  R                  5       n[        R                  " U40 U S0D6n[        X05      S:X  d   e[        USU -   5      S:X  d   eU H  n[        X45      [        X$5      :X  a  M   e   UR                  UR                  5       S-   5        [        X05      S:X  d   e[        USU -   5      S:X  d   eU H  n[        X45      [        X$5      :X  a  M   e   [        USU -   S 5        [        USU -   5      b   e[        R                  " UR                  5       UR                  5       :H  5      (       d   e[        USU -   S5        [        X05      S:X  d   e[        USU -   5      S:X  d   eU H  n[        X45      [        X$5      :X  a  M   e   g )Nr5  r   locked_r   r   )remover   r	   unitLockableBboxr  
set_pointsr3  setattrr#   r   )r4  other_elementsoriglockedelems        r)   test_lockable_bboxrE    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                     [         R                  " [         R                  " 5       5      n [        R                  " [
        SS9   U R                  [        R                  " S5      5        S S S 5        g ! , (       d  f       g = f)Nz`The input and output dims of the new child \(1, 1\) do not match those of current child \(2, 2\)matchr   )	r   TransformWrapperr   r   r   r   setr   rc  )r   s    r)   test_transformwrapperrK    sW    $$[%9%9%;<A	z<
> 	
e  $%
> 
> 
>s   &A22
B png)
extensionsc           	         [         R                  R                  S5        [         R                  R                  SS9n[         R                  " SSS5      n[        X/SS/5       H  u  pEUR                  5       nUR                  X%SS9  UR                  U[         R                  " US	-  * S	-  5      [         R                  " S	[         R                  -  5      -  5        UR                  R                  5         UR                  S
5        M     g )Nr.   r   )sizer  r   TF)r1  densityr   linear)r#   r/   r0   normalr  rf  r  histr   expr*  rP   rL  r   r  )fig_testfig_refsamplesr&  rO  	log_stater   s          r)   test_scale_swappingrY     s    IINN8iiB'G
B2Ax1D%=A\\^
5
266AqD'A+&RUU);;<


h Br,   c                  $   [         R                  " [        SS9   [        R                  " S SS9  S S S 5        [         R                  " [        SS9   [        R                  " S SS9  S S S 5        g ! , (       d  f       NF= f! , (       d  f       g = f)NzZ'fontsize' is not a valid value for units; supported values are 'dots', 'points', 'inches'rG  fontsize)unitsz3For units of inches or points a fig kwarg is neededinches)r   r   r   r   offset_copyr   r,   r)   test_offset_copy_errorsr_  .  sy    	zP
Q 	J7
Q
 
zR
TH5
T 
T
Q 
Q

T 
Ts   A0B0
A>
Bc                  
   [        [        R                  " 5       [        5       R	                  S5      5      n U R                  SS5      (       d   eU R                  SS5      (       d   eU R                  SS5      (       a   e[        [        R                  " 5       [        5       R                  SS5      5      n U R                  SS	5      (       d   eU R                  SS	5      (       a   eU R                  S
S
5      (       a   eg )N   r  r   gٿg333333?r  g      ?rp   ro   r.  )r
   r	   r=  r   rQ   containsr   fully_contains)bbs    r)   test_transformedbbox_containsre  9  s    	hj&;&;B&?	@B;;r2;;sC    {{2r""""	hj&:&:3&C	DB;;tS!!!!  s++++  R(((((r,   c                  l   [         R                  " SS5      (       d   e[         R                  " SS5      (       d   e[         R                  " SS5      (       d   e[         R                  " SS5      (       a   e[         R                  " SS5      (       a   e[         R                  " SS5      (       d   eg Nr"  r   r   r   rI   r   r!  )r   interval_containsr   r,   r)   test_interval_containsri  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                  l   [         R                  " SS5      (       d   e[         R                  " SS5      (       a   e[         R                  " SS5      (       a   e[         R                  " SS5      (       a   e[         R                  " SS5      (       a   e[         R                  " SS5      (       d   eg rg  )r   interval_contains_openr   r,   r)   test_interval_contains_openrl  M  s    --fc::::11&!<<<<11&!<<<<11&"====11&!<<<<--fc::::r,   c                      Sn [        5       n[        X5      nUR                  U :X  d   eUR                  U:X  d   eUR                  b   eg)z=Test that the ScaledRotation object is initialized correctly.r   N)r   r   _theta_trans_shift_mtx)thetatrans_shift
scaled_rots      r)   "test_scaledrotation_initializationrt  V  sP    E+K 4J%%%""k111??"""r,   c                  :   [         R                  S-  n [        [        U S//S9S9n[        X5      nSUl        UR                  5       nUR                  R                  U S//5        [         R                  " SS/SS//5      nUc   e[        USS2SS24   US	S
9  g)zCTest get_matrix when the matrix is invalid and needs recalculation.r   r   )return_valuer   TrI   r   Nr$  r%  )
r#   rP   r   r   r   r<   rR   assert_called_once_withr$   r   )rq  rr  rs  matrixexpected_rotations        r)   &test_scaledrotation_get_matrix_invalidrz  `  s    EEAIEiuaj\&JKK 4JJ""$F11E1:,?1b'#$q'"+ ,F2A2rr6N$5EBr,   )Fr   numpyr#   numpy.testingr   r   r   r   r   
matplotlibr   matplotlib.pyplotpyplotr   matplotlib.patchespatchesr  matplotlib.transforms
transformsr   r   r	   r
   r   matplotlib.pathr   matplotlib.testing.decoratorsr   r   unittest.mockr   r   r   r   r  r*  r8  r<  r>  rP  rV  rZ  rl  r   rn  rw  r  r  r  r  r  r
  r  r  r  r  r  r,  r3  markparametrizerE  rK  rY  r_  re  ri  rl  rt  rz  r   r,   r)   <module>r     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,   