
    P/Ph                        d dl Z d dlZd dlmZmZmZmZ d dlZd dl	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZmZmZmZ d dlmZ d dlmZmZ d dlmZ  G d d	          Z G d
 d          Z d Z!d Z" edgddd          d             Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z* G d dej+                  Z, G d d          Z- G d d           Z.d! Z/d" Z0d# Z1d$ Z2d% Z3d& Z4d' Z5d( Z6d) Z7d* Z8d+ Z9d, Z:ej;        <                    d-g d.          d/             Z=d0 Z> ed1g2          d3             Z?d4 Z@d5 ZAd6 ZBd7 ZCd8 ZDd9 ZEdS ):    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                       e Zd ZddgZddgddgddggZeZd Zd Zd Zd	 Z	d
 Z
d Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )TestAffine2D      ?               @      @      @c                     t          g dg dg dg           t          t          j        g dg dg dgt                               t          t          j        g dg dg dgt                               d S )N         )         )      	   )r   nparrayintfloatselfs    `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/matplotlib/tests/test_transforms.py	test_initzTestAffine2D.test_init   s    )))YYY			2333999iii;SAABBB999iii;UCCDDDDD    c                     t           j                            d           t           j                            d          }t          t	          j        |                                 |           d S )N!N,r   )r"   randomseedr   r   from_values	to_valuesr'   valuess     r(   test_valueszTestAffine2D.test_values   sU    
	x   !!!$$8/8BBDDfMMMMMr*   c                     t                      }|                                }d|d<   t          |                                g dg dg dg           d S )N*   r   r   )r5   r   r   r   r   r   r   r   r   )r   
get_matrixr   )r'   transmtxs      r(   test_modify_inplacez TestAffine2D.test_modify_inplace!   sZ    

  D	5++--


IIIyyy/QRRRRRr*   c                     t          t          j                            dd          dz             }|                                 t          |                                g dg dg dg           d S )Nr   r   )r   r   r   r7   r8   )r   r"   r-   randclearr   r9   )r'   as     r(   
test_clearzTestAffine2D.test_clear(   sb    RY^^Aq))A-..				1<<>>IIIyyy)))+LMMMMMr*   c                    t                                          t          j        dz            }t                                          d          }t          |                                |                                           t          |                    | j	                  ddg           t          |                    | j
                  ddgddgdd	gg           t                                          t          j                  }t                                          d
          }t          |                                |                                           t          |                    | j	                  ddg           t          |                    | j
                  ddgddgddgg           t                                          dt          j        z  dz            }t                                          d          }t          |                                |                                           t          |                    | j	                  ddg           t          |                    | j
                  ddgddgddgg           t          ||z                                   |                                           t          ||z                                   |                                           d S )Nr   Z   r   r   r   r        )r   rotater"   pi
rotate_degr   r9   r   	transformsingle_pointmultiple_pointsr'   r_pi_2r90r_pir180r_pi_3_2r270s          r(   test_rotatezTestAffine2D.test_rotate-   s   ""2519--jj##B''6,,..0@0@AAA!#--0A"B"BRGLLL!#--0D"E"E$&7RGaV"<	> 	> 	> zz  ''zz$$S))4??,,doo.?.?@@@!$..1B"C"Cb"XNNN!$..1E"F"F$%r7RHr1g">	@ 	@ 	@ ::$$QY]33zz$$S))8..00$//2C2CDDD!$..1B"C"CaWMMM!$..1E"F"F$%q6Ar7QG"<	> 	> 	> 	C#I1133T__5F5FGGGC$J2244doo6G6GHHHHHr*   c                 
    t                      j        g | j        t          j        dz  R  } t                      j        g | j        dR  }t          |                                |                                           t          |	                    | j
                  ddg           t          |	                    | j                  ddgddgddgg            t                      j        g | j        t          j        R  } t                      j        g | j        dR  }t          |                                |                                           t          |	                    | j
                  ddg           t          |	                    | j                  ddgddgd	dgg            t                      j        g | j        dt          j        z  dz  R  } t                      j        g | j        d
R  }t          |                                |                                           t          |	                    | j
                  ddg           t          |	                    | j                  ddgddgdd	gg           t          ||z                                   |                                           t          ||z                                   |                                           d S )Nr   rC   r   r   rD   r   r   rG   rE   rI   )r   rotate_aroundpivotr"   rK   rotate_deg_aroundr   r9   r   rM   rN   rO   rP   s          r(   test_rotate_aroundzTestAffine2D.test_rotate_aroundF   s   ))A4:AruqyAAA*hjj*;DJ;;;;6,,..0@0@AAA!#--0A"B"BQFKKK!#--0D"E"E$%q6B7QF";	= 	= 	= (xzz';;RU;;;+xzz+=TZ====4??,,doo.?.?@@@!$..1B"C"CaVLLL!$..1E"F"F$%q6B8b!W"=	? 	? 	? ,8::+GTZGRUQGGG+xzz+=TZ====8..00$//2C2CDDD!$..1B"C"CaVLLL!$..1E"F"F$%q6Ar7QG"<	> 	> 	> 	"39"8"8":":DOO<M<MNNN!3:"9"9";";T__=N=NOOOOOr*   c                    t                                          dd          }t                                          dd          }t                                          dd          }t          ||z                                   |                                           t          |                    | j                  ddg           t          |                    | j                  ddgddgddgg           d S )	Nr   r   rE   r   rH   r!      )r   r   r   r9   rM   rN   rO   )r'   sxsyr:   s       r(   
test_scalezTestAffine2D.test_scale_   s    ZZa##ZZa$$

  B''BG//1153C3C3E3EFFF5??4+<==2wGGG5??4+?@@GaWr1g6	8 	8 	8 	8 	8r*   c                 $   t                                          t          j        dz  t          j        dz            }t                                          dd          }t          |                                |                                           t                                          dd          }t          |                    | j	                  ddg           t          |                    | j
                  d	d
gddgdd	gg           d S )Nr    r_   g     6@   Ȑ2:@b,@      ?      ?r   r         @g      @r   )r   skewr"   rK   skew_degr   r9   r   rM   rN   rO   )r'   	trans_rad	trans_degr:   s       r(   	test_skewzTestAffine2D.test_skewh   s    JJOOBEAIrurz::	JJ''b11	9//1193G3G3I3IJJJ

##J
;;!%//$2C"D"DsDkRRR!%//$2F"G"G$%q6C;A"?	A 	A 	A 	A 	Ar*   c                    t                                          dd          }t                                          dd          }t                                          dd          }t          ||z                                   |                                           t          |                    | j                  ddg           t          |                    | j                  ddgddgd	dgg           d S )
N   r   r5      +   ,      -      )r   	translater   r9   rM   rN   rO   )r'   txtyr:   s       r(   test_translatezTestAffine2D.test_translater   s    ZZ!!"a((ZZ!!!R((

$$R,,BG//1153C3C3E3EFFF5??4+<==BxHHH5??4+?@@Hr2hR9	; 	; 	; 	; 	;r*   c                 >    t                                          d          j        g | j        dR  }t                                          d           t                      j        g | j        dR  z   }t	          |                                |                                           t          |                    | j                  ddg           t          |                    | j	                  ddgddgdd	gg           t                                          d          
                    dd	          }t                                          d          t                      
                    dd	          z   }t	          |                                |                                           t          |                    | j                  d
d	g           t          |                    | j	                  ddgddgddgg           t                                          d                              dd          }t                                          d          t                                          dd          z   }t	          |                                |                                           t          |                    | j                  ddg           t          |                    | j	                  d	dgddgddgg           t                                          d                              dd          }t                                          d          t                                          dd          z   }t	          |                                |                                           t          |                    | j                  ddg           t          |                    | j	                  ddgddgddgg           d S )NrC   rG   r   r   r   r   r   rD   rE   rF   r^   r   ire   rf   g            ?g      g      @rp   r5      rr         ru   .   )r   rL   r[   rZ   r   r9   r   rM   rN   rO   r   rk   rw   r'   r:   trans_addeds      r(   test_rotate_plus_otherz#TestAffine2D.test_rotate_plus_other{   s   ;

%%b));MTZMMMMzz,,R003xzz3ETZEEEEF5++--{/E/E/G/GHHH!%//$2C"D"Dq!fMMM!%//$2F"G"G$%q6Ar7QG"<	> 	> 	> 

%%b))//266jj++B//(**2B2B1b2I2II5++--{/E/E/G/GHHH!%//$2C"D"Dr2hOOO!%//$2F"G"G$&8b"X2w"?	A 	A 	A &&r**(:z22 	zz,,R00zz**:zBBC5++--{/E/E/G/GHHH!%//$2C"D"DtTlSSS!%//$2F"G"G$&:d|aV"D	F 	F 	F 

%%b))33B;;jj++B//(**2F2Fr22N2NN5++--{/E/E/G/GHHH!%//$2C"D"Dr2hOOO!%//$2F"G"G$&8b"XBx"@	B 	B 	B 	B 	Br*   c                 2    t                      j        g | j        dR                      d          } t                      j        g | j        dR  t                                          d          z   }t	          |                                |                                           t          |                    | j                  ddg           t          |                    | j	                  ddgddgddgg            t                      j        g | j        dR  
                    d	d          } t                      j        g | j        dR  t                      
                    d	d          z   }t	          |                                |                                           t          |                    | j                  d	dg           t          |                    | j	                  ddgdd
gddgg            t                      j        g | j        dR                      dd          } t                      j        g | j        dR  t                                          dd          z   }t	          |                                |                                           t          |                    | j                  ddg           t          |                    | j	                  ddgddgddgg            t                      j        g | j        dR                      dd          } t                      j        g | j        dR  t                                          dd          z   }t	          |                                |                                           t          |                    | j                  ddg           t          |                    | j	                  ddgddgddgg           d S )NrC   rG   rD   r   r   rF   rE   rH   r   r^   r   r|   re   rf   rg   rh         ?g      @r   ri   rp   r5   rq   rr   r~   ru      r   )r   r[   rZ   rL   r   r9   r   rM   rN   rO   r   rk   rw   r   s      r(   test_rotate_around_plus_otherz*TestAffine2D.test_rotate_around_plus_other   s   ,

,=dj="===HHMM3xzz3DTZDDDDzz,,S1125++--{/E/E/G/GHHH!%//$2C"D"Dr2hOOO!%//$2F"G"G$%q6Ar7RH"=	? 	? 	? -

,=dj="===CCArJJ3xzz3DTZDDDDzz''2../5++--{/E/E/G/GHHH!%//$2C"D"Dq"gNNN!%//$2F"G"G$%q6B8aW"=	? 	? 	? .->tz>2>>>(:z22 	3xzz3DTZDDDDzz**:zBBC5++--{/E/E/G/GHHH!%//$2C"D"DsDkRRR!%//$2F"G"G$%q6C;C"A	C 	C 	C -

,=dj="===GGBOO3xzz3DTZDDDDzz++B3345++--{/E/E/G/GHHH!%//$2C"D"Dr2hOOO!%//$2F"G"G$&8b"XBx"@	B 	B 	B 	B 	Br*   c                 J   t                                          dd                              d          }t                                          dd          t                                          d          z   }t          |                                |                                           t          |                    | j                  ddg           t          |                    | j                  ddgddgdd	gg            t                                          dd          j	        g | j
        dR  }t                                          dd           t                      j	        g | j
        dR  z   }t          |                                |                                           t          |                    | j                  ddg           t          |                    | j                  ddgd
dgdd	gg           t                                          dd                              dd          }t                                          dd          t                                          dd          z   }t          |                                |                                           t          |                    | j                  ddg           t          |                    | j                  ddgddgd	dgg           t                                          dd                              dd          }t                                          dd          t                                          dd          z   }t          |                                |                                           t          |                    | j                  ddg           t          |                    | j                  ddgddgddgg           d S )Nr   rE   rC   r   r   r   r   r!   r_   r    re   rf         rH         rp   r5   rt   (   &       $   #   )r   r   rL   r   r9   rM   rN   r   rO   r[   rZ   rk   rw   r   s      r(   test_scale_plus_otherz"TestAffine2D.test_scale_plus_other   s   

  B''22266jj&&q"--

0E0Eb0I0II5++--{/E/E/G/GHHH5??4+<==1vFFF!%//$2F"G"G$%q6Aq6Ar7";	= 	= 	= :

  B''9J4:JrJJJzz''2..3xzz3DTZDDDDE5++--{/E/E/G/GHHH5??4+<==1vFFF!%//$2F"G"G$%q6Aq6Ar7";	= 	= 	= !!!R(((:z22 	zz''2..zz**:zBBC5++--{/E/E/G/GHHH!%//$2C"D"Dq%jQQQ!%//$2F"G"G$&8aZ"a"A	C 	C 	C 

  B''11"b99jj&&q"--

0D0DR0L0LL5++--{/E/E/G/GHHH5??4+<==BxHHH5??4+?@@Hr2hR9	; 	; 	; 	; 	;r*   c                 J   t                                          dd                              d          }t                                          dd          t                                          d          z   }t          |                                |                                           t          |                    | j                  ddg           t          |                    | j                  ddgdd	gd
dgg            t                                          dd          j	        g | j
        dR  }t                                          dd           t                      j	        g | j
        dR  z   }t          |                                |                                           t          |                    | j                  ddg           t          |                    | j                  ddgdd	gddgg           t                                          dd                              dd          }t                                          dd          t                                          dd          z   }t          |                                |                                           t          |                    | j                  d	dg           t          |                    | j                  ddgddgddgg           t                                          dd                              dd          }t                                          dd          t                                          dd          z   }t          |                                |                                           t          |                    | j                  ddg           t          |                    | j                  ddgddgddgg           d S )Nre   rf   rC   r   rg   rE   r   r   ri   rD   r   r}   r   g      r   g      rH   g      +@g      r_   rp   r5   g     8@g     E@rq   rs   g     ;@g     F@rv   rr   )r   rk   rL   r   r9   r   rM   rN   rO   r[   rZ   r   rw   r   s      r(   test_skew_plus_otherz!TestAffine2D.test_skew_plus_other   s   

##J
;;FFrJJzz**:zBBzz,,R0015++--{/E/E/G/GHHH!%//$2C"D"DuclSSS!%//$2F"G"G$&7UCL2q'"B	D 	D 	D$$$Z<<#5%)Z5135 5 5zz**:zBB3xzz3DTZDDDDE5++--{/E/E/G/GHHH!%//$2C"D"DtSkRRR!%//$2F"G"G$%q6E3<!Q"@	B 	B 	B 

##J
;;AA!RHHzz**:zBBzz''2../5++--{/E/E/G/GHHH!%//$2C"D"DsDkRRR!%//$2F"G"G$%r7T4L2r("C	E 	E 	E 

##J
;;EEb"MMzz**:zBBzz++B3345++--{/E/E/G/GHHH!%//$2C"D"DtUmTTT!%//$2F"G"G$&8dE]RH"E	G 	G 	G 	G 	Gr*   c                 J   t                                          dd                              d          }t                                          dd          t                                          d          z   }t          |                                |                                           t          |                    | j                  ddg           t          |                    | j                  ddgddgd	d
gg            t                                          dd          j	        g | j
        dR  }t                                          dd           t                      j	        g | j
        dR  z   }t          |                                |                                           t          |                    | j                  ddg           t          |                    | j                  d	dgddgdd
gg           t                                          dd                              dd          }t                                          dd          t                                          dd          z   }t          |                                |                                           t          |                    | j                  ddg           t          |                    | j                  ddgddgddgg           t                                          dd                              dd          }t                                          dd          t                                          dd          z   }t          |                                |                                           t          |                    | j                  ddg           t          |                    | j                  ddgddgdd gg           d S )!Nrp   r5   rC   irq   iirt   irv   iir   rE   H   iE   iN   iQ   ire   rf   g     F@1   ru   g     H@g     @H@g     I@0   g     `H@)r   rw   rL   r   r9   r   rM   rN   rO   r[   rZ   r   rk   r   s      r(   test_translate_plus_otherz&TestAffine2D.test_translate_plus_other   s   

$$R,,77;;jj**2r22XZZ5J5J25N5NN5++--{/E/E/G/GHHH!%//$2C"D"DsBiPPP!%//$2F"G"G$'9sBi#r"C	E 	E 	E ?

$$R,,>O
OBOOOzz++B333xzz3DTZDDDDE5++--{/E/E/G/GHHH!%//$2C"D"DsBiPPP!%//$2F"G"G$'9sBi#r"C	E 	E 	E 

$$R,,221b99jj**2r22XZZ5E5Ea5L5LL5++--{/E/E/G/GHHH!%//$2C"D"Dr3iPPP!%//$2F"G"G$&9r3i"c"C	E 	E 	E %%b"--(:z22 	zz++B33zz**:zBBC5++--{/E/E/G/GHHH!%//$2C"D"DtRjQQQ!%//$2F"G"G$&;tr5k"J	L 	L 	L 	L 	Lr*   c                    t          j                    }t          j        t                    5  |                    d           d d d            n# 1 swxY w Y   t          j        t                    5  |                    dggg           d d d            n# 1 swxY w Y   t          j        t                    5  |                    g            d d d            n# 1 swxY w Y   t          j        t                    5  |                    dg           d d d            n# 1 swxY w Y   t          j        t                    5  |                    dgg           d d d            n# 1 swxY w Y   t          j        t                    5  |                    g dg           d d d            d S # 1 swxY w Y   d S )Nr   r   )mtransformsr   pytestraises
ValueErrorrM   RuntimeError)r'   ts     r(   test_invalid_transformz#TestAffine2D.test_invalid_transform   s    "" ]:&& 	 	KKNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:&& 	! 	!KK1#   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!]<(( 	 	KKOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]<(( 	 	KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:&& 	 	KK!	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:&& 	% 	%KK$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%sk   AAA3BBB<CC"%C"D%%D),D)	E--E14E1F77F;>F;c                    t          j                    }t          j                    }||z   }|                                 t          j        |          }|j        s|j        rJ |                    dd           |j        r|j        sJ |                                |                                k                                    sJ |                                 t          j        |          }|                    dd           |j        rJ t          |                                |                                           d S Nr   r   r   r   )r   r   r9   copy_invalidrw   allr   r'   r@   bss1b1s         r(   	test_copyzTestAffine2D.test_copy4  s    "" ""E	Yq\\:1bk111	Aqz)bk)))1<<>>16688888	Yq\\
Q:1<<>>1<<>>:::::r*   c                    t          j                    }t          j                    }||z   }|                                 t          j        |          }|j        s|j        rJ |                    dd           |j        r|j        rJ t          |                                t          j                                                               |                                 t          j        |          }|                    dd           |j        rJ t          |                                |                                           d S r   )r   r   r9   r   deepcopyr   rw   r   r   s         r(   test_deepcopyzTestAffine2D.test_deepcopyF  s    "" ""E	]1:1bk111	Aqz-"+---2==??K,@,B,B,M,M,O,OPPP	]1
Q:1<<>>1<<>>:::::r*   N)__name__
__module____qualname__rN   rO   rZ   r)   r3   r<   rA   rW   r\   rb   rn   rz   r   r   r   r   r   r   r   r    r*   r(   r   r      s_       :LSzC:Sz:OEE E E
N N N
S S SN N N
I I I2P P P28 8 8A A A; ; ;B B B@ B  B  BD; ; ;@!G !G !GFL L L@% % %(; ; ;$; ; ; ; ;r*   r   c                       e Zd Zd ZdS )TestAffineDeltaTransformc                    t          j        g dg dg dg          }t          j        g dg dg dg          }t          j                            dddddd	          }t          j        |          }t          |                                |           d	|                                d
dd f<   t          |                                |           |                                 t          |                                |           d S )N)r   r   r   )g      @r   r   )r   r   r   )r   r   r   r   r   r   r   r   r   )	r"   r#   r   r   r/   AffineDeltaTransformr   r9   
invalidate)r'   beforeafterbaser   s        r(   test_invalidatez(TestAffineDeltaTransform.test_invalidateZ  s   ???*??*??, - - ///)//)//+ , ,
 #//1aAqAA,T221<<>>6222
 $%!QRR% 1<<>>5111 	1<<>>511111r*   N)r   r   r   r   r   r*   r(   r   r   Y  s#        2 2 2 2 2r*   r   c                  \    G d dt           j                  }  |             }t          j                    }t          j        t          j        d          ||j        z              t          j                     d|_	        |j
                                         t          j                     d S )Nc                   B     e Zd ZdZdxZZdZ fdZd ZeZ	d Z
e
Z xZS )<test_non_affine_caching.<locals>.AssertingNonAffineTransformz
        This transform raises an assertion error when called when it
        shouldn't be and ``self.raise_on_transform`` is True.

        r   Fc                      t                      j        |i | d| _        t          j                                        dd          | _        d S )NF
   )super__init__raise_on_transformr   r   r   underlying_transform)r'   argskwargs	__class__s      r(   r   zEtest_non_affine_caching.<locals>.AssertingNonAffineTransform.__init__|  sN    EGGd-f---&+D#(3(<(>(>(D(DR(L(LD%%%r*   c                 X    | j         r
J d            | j                            |          S Nz3Invalidated affine part of transform unnecessarily.)r   r   transform_pathr'   paths     r(   transform_path_non_affinezVtest_non_affine_caching.<locals>.AssertingNonAffineTransform.transform_path_non_affine  s@    . F FEF F F,;;DAAAr*   c                 X    | j         r
J d            | j                            |          S r   )r   r   rM   r   s     r(   transform_non_affinezQtest_non_affine_caching.<locals>.AssertingNonAffineTransform.transform_non_affine  s@    . F FEF F F,66t<<<r*   )r   r   r   __doc__
input_dimsoutput_dims	is_affiner   r   r   r   rM   __classcell__r   s   @r(   AssertingNonAffineTransformr   s  s{        	 	
 $%$
[		M 	M 	M 	M 	M
	B 	B 	B 3	= 	= 	= )					r*   r   r   rM   T)r   	Transformpltaxesplotr"   arange	transDatadrawr   	transAxesr   )r   my_transaxs      r(   test_non_affine_cachingr   r  s    ) ) ) ) )k&; ) ) )4 +*,,H	BHRYr]]h&=>>>>HJJJ #'HLHJJJJJr*   c                      G d d          } t          j                    }t          j        t          j        d           | d                    \  }|                    dd           |                    dd           t          |                                j	        
                                t          j                                        d          
                                           d S )Nc                       e Zd Zd Zd ZdS )-test_external_transform_api.<locals>.ScaledByc                     || _         d S N)_scale_factor)r'   scale_factors     r(   r   z6test_external_transform_api.<locals>.ScaledBy.__init__  s    !-Dr*   c                 h    t          j                                        | j                  |j        z   S r   )r   r   r   r   r   )r'   r   s     r(   _as_mpl_transformz?test_external_transform_api.<locals>.ScaledBy._as_mpl_transform  s.    (**001CDDn% &r*   N)r   r   r   r   r   r   r*   r(   ScaledByr     s2        	. 	. 	.	& 	& 	& 	& 	&r*   r   r   r   r   d   )r   r   r   r"   r   set_xlimset_ylimr   get_transform_ar9   r   r   r   )r   r   lines      r(   test_external_transform_apir     s    & & & & & & & & 
BHRYr]]hhrll;;;EDKK3KK3D&&((+6688(**0044??AAC C C C Cr*   pre_transform_dataTmpl20g?)remove_textstyletolc                  <   t          j                    } t          j                                        d          }|                     t          j        d                              dd          || j	        z              | 
                    t          j        ddd          t          j        d	dd
          t          j        d                              dd          || j	        z              |                     t          j        dd          t          j        dd          || j	        z              t          j        ddd          }t          j        ddd          }dt          j        |          z  t          j        |d d t          j        f                   z   }t          j        |          t          j        |d d t          j        f                   z
  }|                     |||||| j	        z   t          j        ||                     |d d d         |d d d         }}|d d dd d df         |d d dd d df         }}|                     ||dz   |||| j	        z              |                     |dz
  |dz   |dz  |dz  || j	        z              d S )Nr   r   r   r    r   r   r   r   g      @r!   r   r   r   r   )rM   	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    so    
B"$$**2..GKK	"%%a++w7MKNNNMM"+aA&&+c1a(()B--''1--#bl2  4 4 4
 JJr{1b!!2;r1#5#5 2</  1 1 1 	Ar2A
Aq"A	"&))bfQqqq"*}-...A
q		BF1QQQ
]+,,,AMM!Q1",(>HQNN  , , , SSqS61SSqS6qASSqS##A#X;##A#sss(qAIIaQ1",(>I???HHQUAE1a4A2<1GHHHHHHr*   c                     t          j                    } t          j        t          j        ddd          t          j        ddd                    \  }}|                     ||t          j        ||z            t          j                    	                    d          | j
        z              t          j        ddgd	d
gg          }t          || j                                                   d S )Nrd   r   (@      )@皙?r   rg   ףp=
?r   rh   )r   r   r"   meshgridr  r   logr   r   r   r   r#   r   dataLim
get_pointsr   xsysexpecteds       r(   !test_contour_pre_transform_limitsr    s    	B[RR00"+dD"2M2MNNFBKKBrBw%.0066s;;blJ  L L L x#td% & &H"*"7"7"9"9:::::r*   c                     t          j                    } t          j        t          j        ddd          t          j        ddd                    \  }}|                     ||t          j        ||z            d dd df         t          j                    	                    d          | j
        z              t          j        dd	gd
dgg          }t          || j                                                   d S Nrd   r   r  r  rD   r  r   rg   r  r   rh   )r   r   r"   r  r  pcolorr  r   r   r   r   r#   r   r  r  r  s       r(    test_pcolor_pre_transform_limitsr!    s    	B[RR00"+dD"2M2MNNFBIIb"bfR"Woocrc3B3h/#,..44S99BLH  J J J x#td% & &H"*"7"7"9"9:::::r*   c                     t          j                    } t          j        t          j        ddd          t          j        ddd                    \  }}|                     ||t          j        ||z            d dd df         t          j                    	                    d          | j
        z              t          j        dd	gd
dgg          }t          || j                                                   d S r  )r   r   r"   r  r  r   r  r   r   r   r   r#   r   r  r  r  s       r(   $test_pcolormesh_pre_transform_limitsr#    s    	B[RR00"+dD"2M2MNNFBMM"b"&b//#2#ss(3'02288==L  N N N x#td% & &H"*"7"7"9"9:::::r*   c                  
   t           j                            d           t          j        ddd          } t          j        ddd          }t          j        | |          \  }}t          j        t          j        j        |j         dz            }t          j	                    }|
                    dd	
          }|                    dd           |                    |||d           |j                                         d S )Nr,   r   rG   r   r   i  r   o   polar
projectione   gouraud)shading)r"   r-   r.   r  r  radiansr>   shaper   figureadd_subplotset_rlimr   canvasr   )r2   radiizr  r  figr   s          r(   test_pcolormesh_gouraud_nansr5    s    INN8[C##FKT2&&E;vu%%DAq

29>17+c122A
*,,C		1	1B KKTMM!Q9M---JOOr*   c                     t          j        ddgddgddgg          } t          j                            dddddd          }|                    |           }t          j        ddgddgddgg          }t          ||           t          j                            dddddd          }|                    |           }t          j        ddgddgddgg          }t          ||           t          j                            dddddd          }|                    |           }t          j        ddgd	dgddgg          }t          ||           t          j                            dddd
dd          }|                    |           }t          j        ddgddgddgg          }t          ||           t          j                            dddddd          }|                    |           }t          j        ddgddgddgg          }t          ||           t          j                            dddddd          }|                    |           }t          j        ddgddgddgg          }t          ||           d S )Nr   r   r   rD   r   r   rE   r   <   r   P   r   r   )r"   r#   r   r   r/   rM   r   )pointsr   actualr  s       r(   test_Affine2D_from_valuesr;    s   X1vBxAw  F
 	((Aq!Q::A[[  Fx!Q"a2q'233H)))((Aq!Q::A[[  Fx!Q!R1b'233H)))((Aq!Q::A[[  Fx!Q"a1a&122H)))((Aq!Q::A[[  Fx!Q!R1a&122H)))((Aq!Q::A[[  Fx!Q!Q!Q011H)))((Aq!Q::A[[  Fx!Q!Q!Q011H)))))r*   c                     ddg} t          j                    }t          | |                    |                                                    |                                |                    dd                                           t          | |                    |                                                    |                                d S )Nr   )r   r   r   rM   invertedrw   r9   )pointr   s     r(    test_affine_inverted_invalidatedr?  *  s    #JEAq{{1::<<+A+A%+H+HIIJJJKKS$$&&&q{{1::<<+A+A%+H+HIIJJJJJr*   c                  t   t          j        g d          } t          j        t          j                    t          j        dd                    }|                    |           }|                    |	                                dd          }t          | \  }}t          || j        d d                    d S )N))皙?)皙?rB  )rC  r   )rA  r   r   clip)r   r   r   r   F)rD  simplifyrD   )r   _create_closedr   BlendedGenericTransformr   r   LogTransformr   iter_segments
get_affinezipr   codes)r   r:   tpathresulttpointstcodess         r(   test_clipping_of_logrQ  5  s    MMMNND/ 22v > >@ @E++D11E  !1!1!3!3&6*/ ! 1 1F 6lOGVFDJssO,,,,,r*   c                   :     e Zd ZdZdZdZdZ fdZd Zd Z	 xZ
S )NonAffineForTestz
    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                 H    || _          t                      j        |i | d S r   )
real_transr   r   )r'   rU  r   r   r   s       r(   r   zNonAffineForTest.__init__N  s,    $$)&)))))r*   c                 6    | j                             |          S r   )rU  rM   r1   s     r(   r   z%NonAffineForTest.transform_non_affineR  s    ((000r*   c                 6    | j                             |          S r   )rU  r   r   s     r(   r   z*NonAffineForTest.transform_path_non_affineU  s    --d333r*   )r   r   r   r   r   r   r   r   r   r   r   r   s   @r(   rS  rS  C  sq          IKJ* * * * *1 1 14 4 4 4 4 4 4r*   rS  c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestBasicTransformc                 \   t          j        d                              t          j        dz            | _        t          j        d                              dd          | _        t          j        d                              dd          | _	        t          t          j                                        dd          d	          | _        t          t          j                                        dd          d
          | _        t          t          j                                        dd          d          | _        | j        | j        | j        z   z   | j	        z   | _        | j        | j        z   | j        z   | j	        z   | _        | j        | j        z   | j	        z   | _        d S )Nta1)shorthand_namer   ta2r   r   ta3r   tn1tn2tn3)r   r   rJ   r"   rK   r[  rw   r]  r   r^  rS  r_  r`  ra  stack1stack2stack2_subsetr&   s    r(   setup_methodzTestBasicTransform.setup_methodZ  sm   'u===DDRUQYOO'u===GGANN'u===CCAqII#K$8$:$:$D$DQ$J$J38: : :#K$8$:$:$D$DQ$J$J38: : :#K$8$:$:$D$DQ$J$J38: : : x48dh#6748Ch)DH4tx?!X048;r*   c                 r    | j         j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ d S )Nr   r   )rb  depthrc  rd  r&   s    r(   test_transform_depthz'TestBasicTransform.test_transform_depths  sK    { A%%%%{ A%%%%!'1,,,,,,r*   c                    | j         | j        | j        | j        z   z   z   | j        z   }|| j        | j        | j        z   z   | j        z   | j        | j        z   | j        z   | j        | j        z   | j        g}d |                                D             }t          |          t          |          k    sJ t          ||          D ]\  }}||k    sJ d S )Nc                     g | ]\  }}|S r   r   ).0_rhs      r(   
<listcomp>zCTestBasicTransform.test_left_to_right_iteration.<locals>.<listcomp>  s    EEEEArREEEr*   )r[  r_  r]  r`  r^  _iter_break_from_left_to_rightlenrK  )r'   stack3target_transformsrtarget_stackstacks         r(   test_left_to_right_iterationz/TestBasicTransform.test_left_to_right_iterationx  s    (dh$(TX*=>?48K $"h$(TX*=>$(J"h1TX=!X0!X	 FEVBBDDEEE1vv.//////#&'8!#<#< 	) 	)L%5(((((	) 	)r*   c                 F   | j         | j        z
  | j        k    sJ | j        | j        z
  | j        k    sJ | j        | j        z
  | j                                        k    sJ | j        | j        z
  j        dk    sJ t          j        t                    5  | j         | j        z
   d d d            n# 1 swxY w Y   | j        | j	        | j
        z   z   }| j	        | j
        z   }||z
  | j        k    sJ || j	        z
  || j	                                        z   k    sJ | j         | j
        z
  | j        | j        | j	        z   z   k    sJ | j        | j
        z
  | j        | j        z   | j	        z   k    sJ | j	        | j
        z   | j
        z
  | j
        z   | j	        | j
        z   k    sJ d S )Nr   )rb  rd  r[  rc  r=  rg  r   r   r   r]  r^  r_  )r'   aff1aff2s      r(   test_transform_shortcutsz+TestBasicTransform.test_transform_shortcuts  s   {T//48;;;;{T//48;;;;!DK/483D3D3F3FFFFF"T[071<<<<]:&& 	& 	&K$+%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& x48dh./x$("d{dh&&&&dh$):):)<)<"<<<<<{TX%TX5H)IIIII{TX%DH)<tx)GGGGGDH$048;48#$ $ $ $ $ $s   B00B47B4c                    | j         | j        z   }| j         | j        z   }||k    sJ || j        k    sJ |                    |          sJ |                    | j                  sJ |                    | j                   rJ |                    | j         | j         z             rJ ||k    sJ | j                            | j                  sJ | j                            | j                  sJ | j                            | j                  sJ | j                            | j                  sJ | j                            | j                  rJ | j                            | j                  rJ | j                            | j         | j        z             sJ | j                            | j         | j        z             sJ | j                            | j        | j         z             rJ t          j	        | j
        | j                  }|                    | j                  \  }}| j        |z   }|                    | j                  \  }}||cxu rdu sn J ||cxu rdu sn J d S )NFT)r]  r[  contains_branchrb  r^  rc  rd  r_  r   rG  r`  contains_branch_seperatelyra  )	r'   r1r2blendr  r  stack_blendr`   ra   s	            r(   test_contains_branchz'TestBasicTransform.test_contains_branch  s}   h!h!RxxxxTX~~~~!!"%%%%%!!$(+++++%%dh/////%%dh&9:::::Rxxxx{**4844444{**4844444{**4+=>>>>>{**4+=>>>>>%55dkBBBBB%55dkBBBBB{**48dh+>?????{**48dh+>?????;..tx$(/BCCCCC3DHdkJJ//0BCC1h&778JKKBB%B$r*   c                    t          j        ddgddgt           j        dgddggt           j                  }| j                            |          }| j                            |          }t          j        ddgd	d
gt           j        t           j        gddggt           j                  }t          j        ddgddgt           j        t           j        gddggt           j                  }t          ||           t          ||           t          | j                            |          |           t          | j        	                                                    |          |           | j
        | j        z                                   }| j        	                                                                }t          ||           | j        	                                                                }t          ||           d S )Nr   r   r   r   rD   )dtyper   r   g      3      (@g      &@r   g      "g      8@)r"   r#   nanfloat64rb  r   rM   r   transform_affinerJ  r]  r^  r9   r   rc  )r'   r9  na_ptsall_ptsna_expectedall_expectedexpected_resultrN  s           r(   test_affine_simplificationz-TestBasicTransform.test_affine_simplification  s    Aq6B8bfa[2q'B "
, , ,11&99+''//hR4+!# 02r( <CE:O O Ox#rS#J"$&"&!1C9!>&(j2 2 2
 	"&+666!'<888 	"$+">">v"F"F".	0 	0 	0 	"$+"8"8":":"D"DV"L"L".	0 	0 	0
  8dh.::<<''))4466?F333''))4466?F33333r*   N)	r   r   r   re  rh  rv  rz  r  r  r   r*   r(   rY  rY  Y  so        < < <2- - -
) ) ) % % %,  B#4 #4 #4 #4 #4r*   rY  c                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )TestTransformPlotInterfacec                 @   t          j                    }|                    g dg d|j                   t	          |j                                        t          j        t          j	        t          j	        gt          j	         t          j	         gg                     d S )Nr  333333?皙??r   r  r   )
r   r   r   r   r   r  r  r"   r#   infr'   r   s     r(   test_line_extent_axes_coordsz7TestTransformPlotInterface.test_line_extent_axes_coords  s    XZZ
BLIII2:00228bfbf%5')vgw%7%9 : :	; 	; 	; 	; 	;r*   c                     t          j                    }|                    g dg d|j                   t	          |j                                        t          j        ddgddgg                     d S )Nr  r  r   r  r   r  r  )	r   r   r   r   r   r  r  r"   r#   r  s     r(   test_line_extent_data_coordsz7TestTransformPlotInterface.test_line_extent_data_coords  sz    XZZ
BLIII2:00228cC[3+$>??	A 	A 	A 	A 	Ar*   c                 J   t          j                    }t          j        |j        |j                  }|                    g dg d|           t          |j        	                                t          j        t          j        dgt          j         dgg                     d S )Nr  r      r   g      g     A@)r   r   r   blended_transform_factoryr   r   r   r   r  r  r"   r#   r  r'   r   r:   s      r(   !test_line_extent_compound_coords1z<TestTransformPlotInterface.test_line_extent_compound_coords1  s     XZZ5bl68lD D
???2:00228bfc]')vgs^%5 6 6	7 	7 	7 	7 	7r*   c                 >   t          j                    }t          j                                        d          |j        z   }|                    g dg d|           t          |j        	                                t          j        ddgddgg                     d S )	Nr   r  r  r   r         Ir       u@)r   r   r   r   r   r   r   r   r  r  r"   r#   r  s      r(   )test_line_extent_predata_transform_coordszDTestTransformPlotInterface.test_line_extent_predata_transform_coords   s    XZZ$&&,,R002<?
???2:00228b$Z#t$=>>	@ 	@ 	@ 	@ 	@r*   c                    t          j                    }t          j        |j        t          j                                        d          |j        z             }|                    g dg d|           t          |j
                                        t          j        t          j        dgt          j         dgg                     d S )Nr   r  r  r   r  r  )r   r   r   r  r   r   r   r   r   r   r  r  r"   r#   r  r  s      r(   !test_line_extent_compound_coords2z<TestTransformPlotInterface.test_line_extent_compound_coords2  s     XZZ5L+.0066r::R\IK K
???2:00228bfd^rvgt_$EFF	H 	H 	H 	H 	Hr*   c                 b   t          j                    }t          j                                        dd          }t          j        t          j        d          ||j        z              t          j	        ddgddgg          dz   }t          |j                                        |           d S )Nr   r   r         "@r   r   r   r   rw   r   r"   r   r   r#   r   r  r  r'   r   offsetexpected_data_lims       r(   test_line_extents_affinez3TestTransformPlotInterface.test_line_extents_affine  s    XZZ%''11"b992&2<*?@@@@Hr2hb	%:;;b@!"*"7"7"9"9;LMMMMMr*   c                    t          j                    }t          j                                        dd          }t          t          j                                        dd                    }t          j        t          j        d          ||z   |j	        z              t          j
        ddgddgg          dz   }t          |j                                        |           d S )Nr   r   r   r  r   )r   r   r   r   rw   rS  r   r"   r   r   r#   r   r  r  )r'   r   r  	na_offsetr  s        r(   test_line_extents_non_affinez7TestTransformPlotInterface.test_line_extents_non_affine  s    XZZ%''11"b99$[%9%;%;%E%Eb"%M%MNN	2&9*<r|*KLLLLHr2hb	%:;;b@!"*"7"7"9"9;LMMMMMr*   c                    t          j                    }t          j                                        dd          }t          t          j                                        dd                    }t          ddgddgddgddgg          }t          j        |||z   |j	        z             }|
                    |           t          j        ddgddgg          dz   }t          |j                                        |           d S )Nr   r   r   r         $@r   )r   r   r   r   rw   rS  r   mpatches	PathPatchr   	add_patchr"   r#   r   r  r  )r'   r   r  r  pthpatchr  s          r(   test_pathc_extents_non_affinez8TestTransformPlotInterface.test_pathc_extents_non_affine!  s    XZZ%''11"b99$[%9%;%;%E%Eb"%M%MNN	QFQGb"XAw788"3-3i-?",-NP P P
UHr2hs%<==B!"*"7"7"9"9;LMMMMMr*   c                    t          j                    }t          j                                        dd          }t          ddgddgddgddgg          }t          j        |||j        z             }|	                    |           t          j        ddgddgg          dz   }t          |j                                        |           d S )Nr   r   r   r   r  )r   r   r   r   rw   r   r  r  r   r  r"   r#   r   r  r  )r'   r   r  r  r  r  s         r(   test_pathc_extents_affinez4TestTransformPlotInterface.test_pathc_extents_affine,  s    XZZ%''11"b99QFQGb"XAw788"3&2<2GHHH
UHr2hs%<==B!"*"7"7"9"9;LMMMMMr*   c                 j   t          j        d          }t          j                                        dd          }t          j        t          j        d          ||j        z              t          j	        ddgddgg          ddgz   }t          |j                                        |           d S )Nr&  r'  r   r   r   r   r  r  r  s       r(   *test_line_extents_for_non_affine_transDatazETestTransformPlotInterface.test_line_extents_for_non_affine_transData5  s    X)))%''11!R882&2<*?@@@@ Hr2hb	%:;;q"gE!"*"7"7"9"9;LMMMMMr*   N)r   r   r   r  r  r  r  r  r  r  r  r  r  r   r*   r(   r  r    s        ; ; ;A A A	7 	7 	7@ @ @H H HN N NN N N	N 	N 	NN N N
N 
N 
N 
N 
Nr*   r  c                 :    t          | j        |j                   d S r   )r   bounds)bbox1bbox2s     r(   assert_bbox_eqr  B  s    u|U\22222r*   c                      t           j                            ddddd          } |                                 }t	          |j        | j                   d S )Nr   r   )minpos)r   r	   from_extentsfrozenr   r  )bboxr  s     r(   test_bbox_frozen_copies_minposr  F  sJ    ((c3C(HHD[[]]Fv}dk22222r*   c            	         t           j        j        } t           j        j        } | dddd          } | dddd          } | dddd          } | dddd          } | dddd          }t	           |||          |           t	           |||           | dddd                     t	           |||          |            |||          J t	           |||           | dddd                     d S )Nr   r   r   rg   r}   g      @r   )r   r	   r  intersectionr  )bbox_from_extinterr~  r  r3r4r5s          r(   test_bbox_intersectionr  L  s'   $1M)E	q!Q	"	"B	sCc	*	*B	sAtT	*	*B	sCC	(	(B	q!Q	"	"B 55R=="%%%55R==--S!Q"?"?@@@55R=="%%%5R==   55R==--1a";";<<<<<r*   c            	      4   t          j        ddgddgg          } t          | t          t	          |           dt           j        i                     t          t          |           dt          i          }|                                D ]\  }}t          | |          |k    sJ d}t          t          | |          dt          i          }|                                D ]6\  }}t          t          t          | |          |                    |k    sJ 7d S )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77V[-=$>??@@@#a&&64.))F " "1q!}}!!!!!
C&C..64.11F 5 51F71a==#..//1444445 5r*   c                  `    t          t          j        d          j                  dk    sJ d S )Nr&  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))))))))r  r   subplotr   r   r*   r(   test_str_transformr  n  sB     s{g...899 ,>8 ,8 ,8 ,8 ,8 ,8 ,8r*   c                  p    t          j                    } |                     d          }|j        dk    sJ d S )Nr   r   )r   )r   r   r  r-  )r   rs  s     r(   test_transform_single_pointr    s6    A	6""A7d??????r*   c                      t          j                    \  } }|                    d           |j                            d           d S )Nr  r  )r   subplots
set_yscaler   rM   )r4  r   s     r(   test_log_transformr    sA     lnnGCMM%L6"""""r*   c                      t          j        ddgddgg          } t          j        ddgdt          j        gg          }|                     |          rJ d S )Nr   r   )r   r	   r"   r  overlaps)r@   r   s     r(   test_nan_overlapr    sZ    1a&1a&)**A1a&1bf+.//Azz!}}r*   c                  ,   t          j                    } t          j        g d          }t          j        ddgddgddgg          }|                     ||          }t          ||           t          j        t                    5  |                     ||ddddf                    d d d            n# 1 swxY w Y   t          j        t                    5  |                     ||ddd d f                    d d d            d S # 1 swxY w Y   d S )N)r   ru   r7  r   r   r   )	r   r   r"   r#   transform_anglesr   r   r   r   )r   anglesr9  
new_angless       r(   test_transform_anglesr    s   AXlll##FX1v1v1v.//F ##FF33Jfj111 
z	"	" 5 5	66!A#qs(#34445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 
z	"	" 3 3	66!A#qqq&>2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s$   #B55B9<B9#D		DDc                      t          j        ddg          } dt           j        fddg}|D ]2}t          j        t          j        |           }t          ||            3d S )NgMbPgMbP?r   r6   )r   g     )r"   r#   r  r   nonsingularr   )zero_expansioncasesr   outs       r(   test_nonsingularr    sj    Xvuo..N[&-0E 0 0h{.5663////0 0r*   c                  2   g d} t          | d          }t          j                    }t          j        ||          }t	          |                                j        |            dt          j        d          z  }|	                    t          j
        dz             t	          |                                j        d||fdd|z  f| |fgd	
           dgdz  |_        t	          |                                j        d||fdd|z  f| |fgd	
           d S )N)r6   r   r   r  r   r   T)closedr   r   r   r6   r   V瞯<atol)r   r   r   TransformedPathr   get_fully_transformed_pathverticesr"   sqrtrJ   rK   r9  )r9  r   r:   
trans_pathr  s        r(   test_transformed_pathr    s4   ---Ft$$$D ""E,T599JJ99;;DfMMM 
RWQZZB	LLJ99;;Db"X1r6{bS"I>       
 (Q,DKJ99;;Db"X1r6{bS"I>           r*   c                     t          j                    } t          j        dddd|           }t          j        |          }|                                j        }|                     d           t          |                                j        |dz             |	                    d           t          |                                j        |           d S )Nr6   r   ru      r   r   r   )
r   r   r  WedgeTransformedPatchPathr  r  r   r   
set_radius)r:   r  tpatchr9  s       r(   test_transformed_patch_pathr	    s     ""EN61b#???E-e44F..009F 
KKNNNF5577@&1*MMM 
SF5577@&IIIIIr*   locked_elementx0y0x1y1c                    g d}|                     |            t          j                                        }t          j        |fi | di}t          ||           dk    sJ t          |d| z             dk    sJ |D ]&}t          ||          t          ||          k    sJ '|                    |                                dz              t          ||           dk    sJ t          |d| z             dk    sJ |D ]&}t          ||          t          ||          k    sJ 't          |d| z   d            t          |d| z             J t          j
        |                                |                                k              sJ t          |d| z   d           t          ||           dk    sJ t          |d| z             dk    sJ |D ]&}t          ||          t          ||          k    sJ 'd S )Nr  r   locked_r   r   )remover   r	   unitLockableBboxr  
set_pointsr  setattrr"   r   )r
  other_elementsoriglockedelems        r(   test_lockable_bboxr    sU   ---N.)))  ""D%dBB~q.ABBF 6>**a////69~566!;;;; < <vt$$d(;(;;;;;; 	OODOO%%*+++6>**a////69~566!;;;; < <vt$$d(;(;;;;;; FI.55569~566>>>6$//##v'8'8':'::;;;;; FI.2226>**a////69~566!;;;; < <vt$$d(;(;;;;;;< <r*   c                     t          j        t          j                              } t          j        t
          d          5  |                     t          j        d                     d d d            d S # 1 swxY w Y   d S )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   rH  )r   s    r(   test_transformwrapperr!    s    $[%9%;%;<<A	z<
> 
> 
> & & 	
e $$%%%& & & & & & & & & & & & & & & & & &s   (A66A:=A:png)
extensionsc           	      :   t           j                            d           t           j                            d          }t          j        ddd          }t          | |gddg          D ]\  }}|                                }|                    ||d           |                    |t          j	        |d	z   d	z            t          j
        d	t           j        z            z             |j                                         |                    d
           d S )Nr,   r   )sizer  r   TF)r  densityr   linear)r"   r-   r.   normalr  rK  r  histr   expr   rK   r1  r   r  )fig_testfig_refsamplesr  r4  	log_stater   s          r(   test_scale_swappingr/     s    INN8iB''G
B2Ax1D%=AA    Y\\^^
Y555
26AqD'A+&&RU););;<<<

h   r*   c                  ,   t          j        t          d          5  t          j        d d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        d d           d d d            d S # 1 swxY w Y   d S )NzZ'fontsize' is not a valid value for units; supported values are 'dots', 'points', 'inches'r  fontsize)unitsz3For units of inches or points a fig kwarg is neededinches)r   r   r   r   offset_copyr   r*   r(   test_offset_copy_errorsr5  .  s,   	zP
Q 
Q 
Q 8 8 	J77778 8 8 8 8 8 8 8 8 8 8 8 8 8 8
 
zR
T 
T 
T 6 6H55556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s!   ?AA%B		BBc                  (   t          t          j                    t                                          d                    } |                     dd          sJ |                     dd          sJ |                     dd          rJ t          t          j                    t                                          dd                    } |                     dd	          sJ |                     dd	          rJ |                     d
d
          rJ d S )N   r  r   gٿg333333?r  g      ?rh   rg   r  )r
   r	   r  r   rL   containsrw   fully_contains)bbs    r(   test_transformedbbox_containsr;  9  s    	hjj&;&;B&?&?	@	@B;;r2;;sC     {{2r"""""	hjj&:&:3&C&C	D	DB;;tS!!!!!  s+++++  R(((((((r*   c                     t          j        dd          sJ t          j        dd          sJ t          j        dd          sJ t          j        dd          rJ t          j        dd          rJ t          j        dd          sJ d S Nr  r   r   r   rD   r   r  )r   interval_containsr   r*   r(   test_interval_containsr?  D  s    (55555(33333(33333,VR88888,VQ77777(5555555r*   c                     t          j        dd          sJ t          j        dd          rJ t          j        dd          rJ t          j        dd          rJ t          j        dd          rJ t          j        dd          sJ d S r=  )r   interval_contains_openr   r*   r(   test_interval_contains_openrB  M  s    -fc:::::1&!<<<<<1&!<<<<<1&"=====1&!<<<<<-fc:::::::r*   c                      d} t                      }t          | |          }|j        | k    sJ |j        |k    sJ |j        J dS )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_initializationrJ  V  s[    E++K 44J%%%%"k1111?"""""r*   c                  n   t           j        dz  } t          t          | dgg                    }t          | |          }d|_        |                                }|j                            | dgg           t          j        ddgddgg          }|J t          |ddddf         |d	
           dS )zCTest get_matrix when the matrix is invalid and needs recalculation.r   r   )return_valuer   TrD   r   Nr  r  )
r"   rK   r   r   r   r9   rM   assert_called_once_withr#   r   )rG  rH  rI  matrixexpected_rotations        r(   &test_scaledrotation_get_matrix_invalidrP  `  s    EAIEiuaj\&J&J&JKKKK 44JJ""$$F11E1:,???1b'#$q'"+ , ,F2A2rr6N$5EBBBBB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  r  r!  r#  r5  r;  r?  rQ  r   rS  rY  r  r  r  r  r  r  r  r  r  r  r  r  r	  markparametrizer  r!  r/  r5  r;  r?  rB  rJ  rP  r   r*   r(   <module>r_     sg       J J J J J J J J J J J J              % % % % % % + + + + + + R R R R R R R R R R R R             O O O O O O O O # # # # # #D; D; D; D; D; D; D; D;N
2 2 2 2 2 2 2 22# # #LC C C$ '(d'   I  I  IF; ; ;	; 	; 	;	; 	; 	;  &"* "* "*JK K K- - -4 4 4 4 4{, 4 4 4,I4 I4 I4 I4 I4 I4 I4 I4XZN ZN ZN ZN ZN ZN ZN ZNz3 3 33 3 3= = =,	5 	5 	5/8 /8 /8d  # # #  3 3 3$0 0 0     ,J J J" )+C+C+CDD< < ED<B& & & (((
  
  )(
 6 6 6) ) )6 6 6; ; ;# # #C C C C Cr*   