
    Ngl                     P   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 d dlmZ d dlmZm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 Z,d  Z-d! Z.d" Z/d# Z0d$ Z1d% Z2d& Z3d' Z4d( Z5d) Z6ej7        8                    d*g d+          d,             Z9d- Z: ed.g/          d0             Z;d1 Z<d2 Z=d3 Z>d4 Z?dS )5    N)assert_allcloseassert_almost_equalassert_array_equalassert_array_almost_equal)scale)Affine2DBboxTransformedBbox)Path)image_comparisoncheck_figures_equalc                       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      ?               @g      @      @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/ai-engine/env/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   )r2   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   r4   r5   )r   r   r*   randclearr   r6   )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   r6   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   r@   r   r   rA   r   r   rD   rB   rF   )r   rotate_aroundpivotr   rH   rotate_deg_aroundr   r6   r   rJ   rK   rL   rM   s          r%   test_rotate_aroundzTestAffine2D.test_rotate_aroundE   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   rB   r   rE   r      )r   r   r   r6   rJ   rK   rL   )r$   sxsyr7   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   rH   skew_degr   r6   r   rJ   rK   rL   )r$   	trans_rad	trans_degr7   s       r%   	test_skewzTestAffine2D.test_skewg   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   r2      +   ,      -      )r   	translater   r6   rJ   rK   rL   )r$   txtyr7   s       r%   test_translatezTestAffine2D.test_translateq   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 )Nr@   rD   r   r   r   r   r   rA   rB   rC   r[   r   irb   rc   g            ?g      g      @rm   r2      ro         rr   .   )r   rI   rX   rW   r   r6   r   rJ   rK   rL   r   rh   rt   r$   r7   trans_addeds      r%   test_rotate_plus_otherz#TestAffine2D.test_rotate_plus_otherz   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 )Nr@   rD   rA   r   r   rC   rB   rE   r   r[   r   ry   rb   rc   rd   re         ?g      @r   rf   rm   r2   rn   ro   r{   rr      r~   )r   rX   rW   rI   r   r6   r   rJ   rK   rL   r   rh   rt   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   rB   r@   r   r   r   r   r   r\   r   rb   rc         rE         rm   r2   rq   (   &       $   #   )r   r   rI   r   r6   rJ   rK   r   rL   rX   rW   rh   rt   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 )Nrb   rc   r@   r   rd   rB   r   r   rf   rA   r   rz   r   g      r   g      rE   g      +@g      r\   rm   r2   g     8@g     E@rn   rp   g     ;@g     F@rs   ro   )r   rh   rI   r   r6   r   rJ   rK   rL   rX   rW   r   rt   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 )!Nrm   r2   r@   irn   iirq   irs   iir   rB   H   iE   iN   iQ   irb   rc   g     F@1   rr   g     H@g     @H@g     I@0   g     `H@)r   rt   rI   r   r6   r   rJ   rK   rL   rX   rW   r   rh   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
ValueErrorrJ   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   r6   copy_invalidrt   allr   r$   r=   bss1b1s         r%   	test_copyzTestAffine2D.test_copy3  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   r6   r   deepcopyr   rt   r   r   s         r%   test_deepcopyzTestAffine2D.test_deepcopyE  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__rK   rL   rW   r&   r0   r9   r>   rT   rY   r_   rk   rw   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                  \    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__b  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_affineg  s@    . F FEF F F,;;DAAAr'   c                 X    | j         r
J d            | j                            |          S r   )r   r   rJ   r   s     r%   transform_non_affinezQtest_non_affine_caching.<locals>.AssertingNonAffineTransform.transform_non_affinem  s@    . F FEF F F,66t<<<r'   )r   r   r   __doc__
input_dimsoutput_dims	is_affiner   r   r   r   rJ   __classcell__r   s   @r%   AssertingNonAffineTransformr   Y  s{        	 	
 $%$
[		M 	M 	M 	M 	M
	B 	B 	B 3	= 	= 	= )					r'   r   r   rJ   T)r   	Transformpltaxesplotr   arange	transDatadrawr   	transAxes
invalidate)r   my_transaxs      r%   test_non_affine_cachingr   X  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_ar6   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   )rJ   	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 )Nra   r}   (@      )@皙?r   rd   ףp=
?r   re   )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 Nra   r}   r  r  rA   r  r   rd   r	  r   re   )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   rD   r   r   i  r   o   polar
projectione   gouraud)shading)r   r*   r+   r   r
  radiansr;   shaper   figureadd_subplotset_rlimr   canvasr   )r/   radiizr  r   figr   s          r%   test_pcolormesh_gouraud_nansr*    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}   rA   r   r   rB   r   <   r   P   r   r   )r   r    r   r   r,   rJ   r   )pointsr   actualr  s       r%   test_Affine2D_from_valuesr0    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   rJ   invertedrt   r6   )pointr   s     r%    test_affine_inverted_invalidatedr4    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))皙?)皙?r7  )r8  r}   )r6  r}   r   clip)r   r   r   r   F)r9  simplifyrA   )r   _create_closedr   BlendedGenericTransformr   r   LogTransformr   iter_segments
get_affinezipr   codes)r   r7   tpathresulttpointstcodess         r%   test_clipping_of_logrF    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$   rJ  r   r   r   s       r%   r   zNonAffineForTest.__init__4  s,    $$)&)))))r'   c                 6    | j                             |          S r   )rJ  rJ   r.   s     r%   r   z%NonAffineForTest.transform_non_affine8  s    ((000r'   c                 6    | j                             |          S r   )rJ  r   r   s     r%   r   z*NonAffineForTest.transform_path_non_affine;  s    --d333r'   )r   r   r   r   r   r   r   r   r   r   r   r   s   @r%   rH  rH  )  sq          IKJ* * * * *1 1 14 4 4 4 4 4 4r'   rH  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   rG   r   rH   rP  rt   rR  r   rS  rH  rT  rU  rV  stack1stack2stack2_subsetr#   s    r%   setup_methodzTestBasicTransform.setup_method@  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   )rW  depthrX  rY  r#   s    r%   test_transform_depthz'TestBasicTransform.test_transform_depthY  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>h  s    EEEEArREEEr'   )rP  rT  rR  rU  rS  _iter_break_from_left_to_rightlenr@  )r$   stack3target_transformsrtarget_stackstacks         r%   test_left_to_right_iterationz/TestBasicTransform.test_left_to_right_iteration^  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   )rW  rY  rP  rX  r2  r\  r   r   r   rR  rS  rT  )r$   aff1aff2s      r%   test_transform_shortcutsz+TestBasicTransform.test_transform_shortcutsn  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)rR  rP  contains_branchrW  rS  rX  rY  rT  r   r<  rU  contains_branch_seperatelyrV  )	r$   r1r2blendr   r  stack_blendr]   r^   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   rA   )dtyper   r   g      3      (@g      &@r   g      "g      8@)r   r    nanfloat64rW  r   rJ   r   transform_affiner?  rR  rS  r6   r   rX  )r$   r.  na_ptsall_ptsna_expectedall_expectedexpected_resultrC  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   rZ  r]  rk  ro  rw  r  r   r'   r%   rN  rN  ?  so        < < <2- - -
) ) ) % % %,  B#4 #4 #4 #4 #4r'   rN  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   r7   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         Irz       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   rt   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   rt   rH  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   rt   rH  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   rt   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_transData  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  (  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  ,  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   rd   rz   g      @r   )r   r	   r  intersectionr  )bbox_from_extinterrs  rt  r3r4r5s          r%   test_bbox_intersectionr  2  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   rz   r	   z.1f)
r   r	   r  evalreprstrdictitemsgetattrformat)r   asdictkr  fmts        r%   test_bbox_as_stringsr  H  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  T  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   rh  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   rJ   )r)  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}   rr   r,  r   r   r   )	r   r   r   r    transform_anglesr   r   r   r   )r   anglesr.  
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   r3   )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)r3   r   r   r  r   r   T)closedr   r   r   r3   r   gV瞯<)atol)r   r   r   TransformedPathr   get_fully_transformed_pathverticesr   sqrtrG   rH   r.  )r.  r   r7   
trans_pathrt  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 )Nr3   r   rr      r   r   r   )
r   r   r  WedgeTransformedPatchPathr  r  r   r   
set_radius)r7   r  tpatchr.  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   r=  )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   r@  r  histr   expr  rH   r&  r   r  )fig_testfig_refsamplesr   r)  	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_errorsr(    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      ?re   rd   r  )r
   r	   r  r   rI   containsrt   fully_contains)bbs    r%   test_transformedbbox_containsr.    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   rA   r   r  )r   interval_containsr   r'   r%   test_interval_containsr2  *  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 r0  )r   interval_contains_openr   r'   r%   test_interval_contains_openr5  3  s    -fc:::::1&!<<<<<1&!<<<<<1&"=====1&!<<<<<-fc:::::::r'   )@r   numpyr   numpy.testingr   r   r   r   r   
matplotlibr   matplotlib.pyplotpyplotr   matplotlib.patchespatchesr  matplotlib.transforms
transformsr   r   r	   r
   matplotlib.pathr   matplotlib.testing.decoratorsr   r   r   r   r   r  r  r  r  r*  r0  r4  rF  r   rH  rN  r  r  r  r  r  r  r  r  r  r  r  r  r  markparametrizer  r  r"  r(  r.  r2  r5  r   r'   r%   <module>rC     s       J J J J J J J J J J J J              % % % % % % + + + + + + A A A A A A A A A A             O O O O O O O OD; D; D; D; D; D; D; D;N
# # #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; ; ; ; ;r'   