
    g                     T   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jV                        Z, G d d      Z- G d d       Z.d! Z/d" Z0d# Z1d$ Z2d% Z3d& Z4d' Z5d( Z6d) Z7d* Z8d+ Z9d, Z:ejv                  jy                  d-g d.      d/        Z=d0 Z> ed1g2      d3        Z?d4 Z@d5 ZAd6 ZBd7 ZCd8 ZDd9 ZEy):    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y)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                     y )N         )         )      	   )r   nparrayintfloatselfs    ]/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/matplotlib/tests/test_transforms.py	test_initzTestAffine2D.test_init   sE    )Y	239i;SAB9i;UCD    c                     t         j                  j                  d       t         j                  j                  d      }t        t	        j
                  | j                         |       y )N!N,r   )r"   randomseedr   r   from_values	to_valuesr'   valuess     r(   test_valueszTestAffine2D.test_values   sD    
		x !!!$8//8BBDfMr*   c                     t               }|j                         }d|d<   t        |j                         g dg dg dg       y )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!   s:    
 D	5++-
Iy/QRr*   c                     t        t        j                  j                  dd      dz         }|j	                          t        |j                         g dg dg dg       y )Nr   r   )r   r   r   r7   r8   )r   r"   r-   randclearr   r9   )r'   as     r(   
test_clearzTestAffine2D.test_clear(   s@    RYY^^Aq)A-.		1<<>Iy)+LMr*   c                 0   t               j                  t        j                  dz        }t               j	                  d      }t        |j                         |j                                t        |j                  | j                        ddg       t        |j                  | j                        ddgddgdd	gg       t               j                  t        j                        }t               j	                  d
      }t        |j                         |j                                t        |j                  | j                        ddg       t        |j                  | j                        ddgddgddgg       t               j                  dt        j                  z  dz        }t               j	                  d      }t        |j                         |j                                t        |j                  | j                        ddg       t        |j                  | j                        ddgddgddgg       t        ||z   j                         |j                                t        ||z   j                         |j                                y )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   ""25519-j##B'6,,.0@A!#--0A0A"BRGL!#--0D0D"E$&7RGaV"<	> z  'z$$S)4??,doo.?@!$..1B1B"Cb"XN!$..1E1E"F$%r7RHr1g">	@ :$$QY]3z$$S)8..0$//2CD!$..1B1B"CaWM!$..1E1E"F$%q6Ar7QG"<	> 	C#I113T__5FGC$J224doo6GHr*   c                     t               j                  g | j                  t        j                  dz   } t               j
                  g | j                  d }t        |j                         |j                                t        |j                  | j                        ddg       t        |j                  | j                        ddgddgddgg        t               j                  g | j                  t        j                   } t               j
                  g | j                  d }t        |j                         |j                                t        |j                  | j                        ddg       t        |j                  | j                        ddgddgd	dgg        t               j                  g | j                  dt        j                  z  dz   } t               j
                  g | j                  d
 }t        |j                         |j                                t        |j                  | j                        ddg       t        |j                  | j                        ddgddgdd	gg       t        ||z   j                         |j                                t        ||z   j                         |j                                y )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   sL   )))A4::AruuqyA*hj**;DJJ;;6,,.0@A!#--0A0A"BQFK!#--0D0D"E$%q6B7QF";	= (xz'';;RUU;+xz++=TZZ==4??,doo.?@!$..1B1B"CaVL!$..1E1E"F$%q6B8b!W"=	? ,8:++GTZZGRUUQG+xz++=TZZ==8..0$//2CD!$..1B1B"CaVL!$..1E1E"F$%q6Ar7QG"<	> 	"39"8"8":DOO<MN!3:"9"9";T__=NOr*   c                    t               j                  dd      }t               j                  dd      }t               j                  dd      }t        ||z   j                         |j                                t        |j	                  | j
                        ddg       t        |j	                  | j                        ddgddgddgg       y )	Nr   r   rE   r   rH   r!      )r   r   r   r9   rM   rN   rO   )r'   sxsyr:   s       r(   
test_scalezTestAffine2D.test_scale_   s    Za#Za$
  B'BG//153C3C3EF5??4+<+<=2wG5??4+?+?@GaWr1g6	8r*   c                    t               j                  t        j                  dz  t        j                  dz        }t               j	                  dd      }t        |j                         |j                                t               j	                  dd      }t        |j                  | j                        ddg       t        |j                  | j                        d	d
gddgdd	gg       y )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    JOOBEEAIruurz:	J''b1	9//193G3G3IJ
##J
;!%//$2C2C"DsDkR!%//$2F2F"G$%q6C;A"?	Ar*   c                    t               j                  dd      }t               j                  dd      }t               j                  dd      }t        ||z   j                         |j                                t        |j	                  | j
                        ddg       t        |j	                  | j                        ddgddgd	dgg       y )
N   r   r5      +   ,      -      )r   	translater   r9   rM   rN   rO   )r'   txtyr:   s       r(   test_translatezTestAffine2D.test_translater   s    Z!!"a(Z!!!R(
$$R,BG//153C3C3EF5??4+<+<=BxH5??4+?+?@Hr2hR9	;r*   c                     t               j                  d      j                  g | j                  d }t               j                  d       t               j                  g | j                  d z   }t	        |j                         |j                                t        |j                  | j                        ddg       t        |j                  | j                        ddgddgdd	gg       t               j                  d      j                  dd	      }t               j                  d      t               j                  dd	      z   }t	        |j                         |j                                t        |j                  | j                        d
d	g       t        |j                  | j                        ddgddgddgg       t               j                  d      j                  dd      }t               j                  d      t               j                  dd      z   }t	        |j                         |j                                t        |j                  | j                        ddg       t        |j                  | j                        d	dgddgddgg       t               j                  d      j                  dd      }t               j                  d      t               j                  dd      z   }t	        |j                         |j                                t        |j                  | j                        ddg       t        |j                  | j                        ddgddgddgg       y )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);;MTZZMMz,,R03xz33ETZZEEF5++-{/E/E/GH!%//$2C2C"Dq!fM!%//$2F2F"G$%q6Ar7QG"<	> 
%%b)//26j++B/(*2B2B1b2II5++-{/E/E/GH!%//$2C2C"Dr2hO!%//$2F2F"G$&8b"X2w"?	A &&r*(:z2 	z,,R0z**:zBC5++-{/E/E/GH!%//$2C2C"DtTlS!%//$2F2F"G$&:d|aV"D	F 
%%b)33B;j++B/(*2F2Fr22NN5++-{/E/E/GH!%//$2C2C"Dr2hO!%//$2F2F"G$&8b"XBx"@	Br*   c                     t               j                  g | j                  d j                  d      } t               j                  g | j                  d t               j                  d      z   }t	        |j                         |j                                t        |j                  | j                        ddg       t        |j                  | j                        ddgddgddgg        t               j                  g | j                  d j                  d	d      } t               j                  g | j                  d t               j                  d	d      z   }t	        |j                         |j                                t        |j                  | j                        d	dg       t        |j                  | j                        ddgdd
gddgg        t               j                  g | j                  d j                  dd      } t               j                  g | j                  d t               j                  dd      z   }t	        |j                         |j                                t        |j                  | j                        ddg       t        |j                  | j                        ddgddgddgg        t               j                  g | j                  d j                  dd      } t               j                  g | j                  d t               j                  dd      z   }t	        |j                         |j                                t        |j                  | j                        ddg       t        |j                  | j                        ddgddgddgg       y )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   s9   ,
,,=djj="=HHM3xz33DTZZDDz,,S125++-{/E/E/GH!%//$2C2C"Dr2hO!%//$2F2F"G$%q6Ar7RH"=	? -
,,=djj="=CCArJ3xz33DTZZDDz''2./5++-{/E/E/GH!%//$2C2C"Dq"gN!%//$2F2F"G$%q6B8aW"=	? .-->tzz>2>(:z2 	3xz33DTZZDDz**:zBC5++-{/E/E/GH!%//$2C2C"DsDkR!%//$2F2F"G$%q6C;C"A	C -
,,=djj="=GGBO3xz33DTZZDDz++B345++-{/E/E/GH!%//$2C2C"Dr2hO!%//$2F2F"G$&8b"XBx"@	Br*   c                    t               j                  dd      j                  d      }t               j                  dd      t               j                  d      z   }t        |j	                         |j	                                t        |j                  | j                        ddg       t        |j                  | j                        ddgddgdd	gg        t               j                  dd      j                  g | j                  d }t               j                  dd       t               j                  g | j                  d z   }t        |j	                         |j	                                t        |j                  | j                        ddg       t        |j                  | j                        ddgd
dgdd	gg       t               j                  dd      j                  dd      }t               j                  dd      t               j                  dd      z   }t        |j	                         |j	                                t        |j                  | j                        ddg       t        |j                  | j                        ddgddgd	dgg       t               j                  dd      j                  dd      }t               j                  dd      t               j                  dd      z   }t        |j	                         |j	                                t        |j                  | j                        ddg       t        |j                  | j                        ddgddgddgg       y )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j&&q"-
0E0Eb0II5++-{/E/E/GH5??4+<+<=1vF!%//$2F2F"G$%q6Aq6Ar7";	= :
  B'99J4::JrJz''2.3xz33DTZZDDE5++-{/E/E/GH5??4+<+<=1vF!%//$2F2F"G$%q6Aq6Ar7";	= !!!R((:z2 	z''2.z**:zBC5++-{/E/E/GH!%//$2C2C"Dq%jQ!%//$2F2F"G$&8aZ"a"A	C 
  B'11"b9j&&q"-
0D0DR0LL5++-{/E/E/GH5??4+<+<=BxH5??4+?+?@Hr2hR9	;r*   c                    t               j                  dd      j                  d      }t               j                  dd      t               j                  d      z   }t        |j	                         |j	                                t        |j                  | j                        ddg       t        |j                  | j                        ddgdd	gd
dgg        t               j                  dd      j                  g | j                  d }t               j                  dd       t               j                  g | j                  d z   }t        |j	                         |j	                                t        |j                  | j                        ddg       t        |j                  | j                        ddgdd	gddgg       t               j                  dd      j                  dd      }t               j                  dd      t               j                  dd      z   }t        |j	                         |j	                                t        |j                  | j                        d	dg       t        |j                  | j                        ddgddgddgg       t               j                  dd      j                  dd      }t               j                  dd      t               j                  dd      z   }t        |j	                         |j	                                t        |j                  | j                        ddg       t        |j                  | j                        ddgddgddgg       y )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z**:zBz,,R015++-{/E/E/GH!%//$2C2C"DuclS!%//$2F2F"G$&7UCL2q'"B	D$$$Z<##5%)ZZ5135z**:zB3xz33DTZZDDE5++-{/E/E/GH!%//$2C2C"DtSkR!%//$2F2F"G$%q6E3<!Q"@	B 
##J
;AA!RHz**:zBz''2./5++-{/E/E/GH!%//$2C2C"DsDkR!%//$2F2F"G$%r7T4L2r("C	E 
##J
;EEb"Mz**:zBz++B345++-{/E/E/GH!%//$2C2C"DtUmT!%//$2F2F"G$&8dE]RH"E	Gr*   c                    t               j                  dd      j                  d      }t               j                  dd      t               j                  d      z   }t        |j	                         |j	                                t        |j                  | j                        ddg       t        |j                  | j                        ddgddgd	d
gg        t               j                  dd      j                  g | j                  d }t               j                  dd       t               j                  g | j                  d z   }t        |j	                         |j	                                t        |j                  | j                        ddg       t        |j                  | j                        d	dgddgdd
gg       t               j                  dd      j                  dd      }t               j                  dd      t               j                  dd      z   }t        |j	                         |j	                                t        |j                  | j                        ddg       t        |j                  | j                        ddgddgddgg       t               j                  dd      j                  dd      }t               j                  dd      t               j                  dd      z   }t        |j	                         |j	                                t        |j                  | j                        ddg       t        |j                  | j                        ddgddgdd gg       y )!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;j**2r2XZ5J5J25NN5++-{/E/E/GH!%//$2C2C"DsBiP!%//$2F2F"G$'9sBi#r"C	E ?
$$R,>>O

OBOz++B33xz33DTZZDDE5++-{/E/E/GH!%//$2C2C"DsBiP!%//$2F2F"G$'9sBi#r"C	E 
$$R,221b9j**2r2XZ5E5Ea5LL5++-{/E/E/GH!%//$2C2C"Dr3iP!%//$2F2F"G$&9r3i"c"C	E %%b"-(:z2 	z++B3z**:zBC5++-{/E/E/GH!%//$2C2C"DtRjQ!%//$2F2F"G$&;tr5k"J	Lr*   c                 4   t        j                         }t        j                  t              5  |j                  d       d d d        t        j                  t              5  |j                  dggg       d d d        t        j                  t              5  |j                  g        d d d        t        j                  t              5  |j                  dg       d d d        t        j                  t              5  |j                  dgg       d d d        t        j                  t              5  |j                  g dg       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   qxY w# 1 sw Y   y xY w)Nr   r   )mtransformsr   pytestraises
ValueErrorrM   RuntimeError)r'   ts     r(   test_invalid_transformz#TestAffine2D.test_invalid_transform   s1     " ]]:& 	KKN	]]:& 	!KK1# 	!]]<( 	KKO	]]<( 	KK	]]:& 	KK!	]]:& 	%KK$	% 	%	 		! 	!	 		 		 		% 	%sG   E!EE*
E6>F3FEE'*E36E?FFc                 p   t        j                         }t        j                         }||z   }|j                          t        j                  |      }|j                  s|j                  rJ |j                  dd       |j                  r|j                  sJ |j                         |j                         k(  j                         sJ |j                          t        j                  |      }|j                  dd       |j                  rJ t        |j                         |j                                y Nr   r   r   r   )r   r   r9   copy_invalidrw   allr   r'   r@   bss1b1s         r(   	test_copyzTestAffine2D.test_copy4  s      "  "E	YYq\::bkk11	Aqzzbkk))1<<>166888	YYq\
Q::~1<<>1<<>:r*   c                    t        j                         }t        j                         }||z   }|j                          t        j                  |      }|j
                  s|j
                  rJ |j                  dd       |j
                  r|j
                  rJ t        |j                         t        j                         j                                |j                          t        j                  |      }|j                  dd       |j
                  rJ t        |j                         |j                                y r   )r   r   r9   r   deepcopyr   rw   r   r   s         r(   test_deepcopyzTestAffine2D.test_deepcopyF  s      "  "E	]]1::bkk11	Aqzz"++--2==?K,@,@,B,M,M,OP	]]1
Q::~1<<>1<<>:r*   N)__name__
__module____qualname__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
N
SN
I2P28A;B@ BD;@!GFL@%(;$;r*   r   c                       e Zd Zd Zy)TestAffineDeltaTransformc                    t        j                  g dg dg dg      }t        j                  g dg dg dg      }t        j                  j	                  dddddd	      }t        j
                  |      }t        |j                         |       d	|j                         d
dd f<   t        |j                         |       |j                          t        |j                         |       y )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,,T21<<>62
 $%!QR% 1<<>51 	1<<>51r*   N)r   r   r   r   r   r*   r(   r   r   Y  s    2r*   r   c                  l    G d dt         j                        }  |        }t        j                         }t        j                  t        j                  d      ||j                  z          t        j                          d|_	        |j                  j                          t        j                          y )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        |   |i | d| _        t        j                         j                  dd      | _        y )NF
   )super__init__raise_on_transformr   r   r   underlying_transform)r'   argskwargs	__class__s      r(   r   zEtest_non_affine_caching.<locals>.AssertingNonAffineTransform.__init__|  s;    Gd-f-&+D#(3(<(<(>(D(DR(LD%r*   c                 ^    | j                   rJ d       | j                  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  s4    .. FEF.,,;;DAAr*   c                 ^    | j                   rJ d       | j                  j                  |      S r   )r   r   rM   r   s     r(   transform_non_affinezQtest_non_affine_caching.<locals>.AssertingNonAffineTransform.transform_non_affine  s4    .. FEF.,,66t<<r*   )r   r   r   __doc__
input_dimsoutput_dims	is_affiner   r   r   r   rM   __classcell__r   s   @r(   AssertingNonAffineTransformr   s  s8    	
 $%$
[		M
	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  st    )k&;&; )4 +,H	BHHRYYr]h&=>HHJ #'HLLHHJr*   c                      G d d      } t        j                         }t        j                  t        j                  d       | d            \  }|j                  dd       |j                  dd       t        |j                         j                  j                         t        j                         j                  d      j                                y )Nc                       e Zd Zd Zd Zy)-test_external_transform_api.<locals>.ScaledByc                     || _         y N)_scale_factor)r'   scale_factors     r(   r   z6test_external_transform_api.<locals>.ScaledBy.__init__  s
    !-Dr*   c                 v    t        j                         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  s0    ((*001C1CDnn% &r*   N)r   r   r   r   r   r   r*   r(   ScaledByr     s    	.	&r*   r   r   r   r   d   )r   r   r   r"   r   set_xlimset_ylimr   get_transform_ar9   r   r   r   )r   r   lines      r(   test_external_transform_apir     s    & & 
BHHRYYr]hrl;EDKK3KK3D&&(++668((*004??ACr*   pre_transform_dataTmpl20g?)remove_textstyletolc                  8   t        j                         } t        j                         j	                  d      }| j                  t        j                  d      j                  dd      || j                  z          | j                  t        j                  ddd      t        j                  d	dd
      t        j                  d      j                  dd      || j                  z          | j                  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!                  |||||| j                  z   t        j"                  ||             |d d d   |d d d   }}|d d dd d df   |d d dd d df   }}| j%                  ||dz   |||| j                  z          | j'                  |dz
  |dz   |dz  |dz  || j                  z          y )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    s$    
B""$**2.GKK		"%%a+w7MKNMM"++aA&++c1a())B-''1-#bll2  4
 JJr{{1b!2;;r1#5 2<</  1 	Ar2A
Aq"A	"&&)bffQq"**}-..A
q	BFF1Q

]+,,AMM!Q1",,(>HHQN  , SqS61SqS6qASqS#A#X;#A#ss(qAIIaQ1",,(>I?HHQUAE1a4A2<<1GHHr*   c                     t        j                         } t        j                  t        j                  ddd      t        j                  ddd            \  }}| j                  ||t        j                  ||z        t        j                         j                  d      | j                  z          t        j                  ddgd	d
gg      }t        || j                  j                                y )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"++dD"2MNFBKKBrBw%..066s;bllJ  L xx#td% &H"**"7"7"9:r*   c                     t        j                         } t        j                  t        j                  ddd      t        j                  ddd            \  }}| j                  ||t        j                  ||z        d dd df   t        j                         j                  d      | j                  z          t        j                  dd	gd
dgg      }t        || j                  j                                y 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"++dD"2MNFBIIb"bffR"Wocrc3B3h/#,,.44S9BLLH  J xx#td% &H"**"7"7"9:r*   c                     t        j                         } t        j                  t        j                  ddd      t        j                  ddd            \  }}| j                  ||t        j                  ||z        d dd df   t        j                         j                  d      | j                  z          t        j                  dd	gd
dgg      }t        || j                  j                                y 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"++dD"2MNFBMM"b"&&b/#2#ss(3'00288=L  N xx#td% &H"**"7"7"9:r*   c                     t         j                  j                  d       t        j                  ddd      } t        j                  ddd      }t        j                  | |      \  }}t        j
                  t        j                  j                  |j                   dz        }t        j                         }|j                  dd	
      }|j                  dd       |j                  |||d       |j                  j                          y )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    IINN8[[C#FKKT2&E;;vu%DAq


299>>177+c12A
**,C		1B KKTMM!Q9M-JJOOr*   c                     t        j                  ddgddgddgg      } t        j                  j	                  dddddd      }|j                  |       }t        j                  ddgddgddgg      }t        ||       t        j                  j	                  dddddd      }|j                  |       }t        j                  ddgddgddgg      }t        ||       t        j                  j	                  dddddd      }|j                  |       }t        j                  ddgd	dgddgg      }t        ||       t        j                  j	                  dddd
dd      }|j                  |       }t        j                  ddgddgddgg      }t        ||       t        j                  j	                  dddddd      }|j                  |       }t        j                  ddgddgddgg      }t        ||       t        j                  j	                  dddddd      }|j                  |       }t        j                  ddgddgddgg      }t        ||       y )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;    sA   XX1vBxAw F
 	((Aq!Q:A[[ Fxx!Q"a2q'23H)((Aq!Q:A[[ Fxx!Q!R1b'23H)((Aq!Q:A[[ Fxx!Q"a1a&12H)((Aq!Q:A[[ Fxx!Q!R1a&12H)((Aq!Q:A[[ Fxx!Q!Q!Q01H)((Aq!Q:A[[ Fxx!Q!Q!Q01H)r*   c                  T   ddg} t        j                         }t        | |j                  |j	                         j                  |                    |j                  dd      j                          t        | |j                  |j	                         j                  |                    y )Nr   )r   r   r   rM   invertedrw   r9   )pointr   s     r(    test_affine_inverted_invalidatedr?  *  sx    #JEAq{{1::<+A+A%+HIJKKS$$&q{{1::<+A+A%+HIJr*   c                  X   t        j                  g d      } t        j                  t        j                         t        j                  dd            }|j                  |       }|j                  |j                         dd      }t        | \  }}t        || j                  d d        y )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ND// 2 22v >@E++D1E  !1!1!3&6*/ ! 1F 6lOGVFDJJsO,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                 2    || _         t        |   |i | y r   )
real_transr   r   )r'   rU  r   r   r   s       r(   r   zNonAffineForTest.__init__N  s    $$)&)r*   c                 8    | j                   j                  |      S r   )rU  rM   r1   s     r(   r   z%NonAffineForTest.transform_non_affineR  s    ((00r*   c                 8    | j                   j                  |      S r   )rU  r   r   s     r(   r   z*NonAffineForTest.transform_path_non_affineU  s    --d33r*   )r   r   r   r   r   r   r   r   r   r   r   r   s   @r(   rS  rS  C  s(     IKJ*14r*   rS  c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestBasicTransformc                    t        j                  d      j                  t        j                  dz        | _        t        j                  d      j                  dd      | _        t        j                  d      j                  dd      | _	        t        t        j                         j                  dd      d	      | _        t        t        j                         j                  dd      d
      | _        t        t        j                         j                  dd      d      | _        | j
                  | j                  | j                  z   z   | j                  z   | _        | j
                  | j                  z   | j                  z   | j                  z   | _        | j                  | j                  z   | j                  z   | _        y )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  sF   ''u=DDRUUQYO''u=GGAN''u=CCAqI#K$8$8$:$D$DQ$J38:#K$8$8$:$D$DQ$J38:#K$8$8$:$D$DQ$J38: xx488dhh#67488Chh)DHH4txx?!XX0488;r*   c                     | j                   j                  dk(  sJ | j                  j                  dk(  sJ | j                  j                  dk(  sJ y )Nr   r   )rb  depthrc  rd  r&   s    r(   test_transform_depthz'TestBasicTransform.test_transform_depths  sL    {{  A%%%{{  A%%%!!''1,,,r*   c                 6   | 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}|j                         D cg c]  \  }}|	 }}}t        |      t        |      k(  sJ t        ||      D ]  \  }}||k(  rJ  y c c}}w r   )r[  r_  r]  r`  r^  _iter_break_from_left_to_rightlenrK  )r'   stack3target_transforms_rhrtarget_stackstacks           r(   test_left_to_right_iterationz/TestBasicTransform.test_left_to_right_iterationx  s    ((dhh$((TXX*=>?488K $"hh$((TXX*=>$((J"hh1TXX=!XX0!XX	 $BBDEEArREE1v.////#&'8!#< 	)L%5(((	) Fs   Dc                    | j                   | j                  z
  | j                  k(  sJ | j                  | j                  z
  | j                  k(  sJ | j                  | j                  z
  | j                  j	                         k(  sJ | j                  | j                  z
  j
                  dk(  sJ t        j                  t              5  | j                   | j                  z
   d d d        | j                  | j                  | j                  z   z   }| j                  | j                  z   }||z
  | j                  k(  sJ || j                  z
  || j                  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 y # 1 sw Y   `xY w)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///488;;;{{T///488;;;!!DKK/4883D3D3FFFF""T[[0771<<<]]:& 	&KK$++%	& xx488dhh./xx$(("d{dhh&&&dhh$):):)<"<<<<{{TXX%TXX5H)IIII{{TXX%DHH)<txx)GGGGDHH$0488;488#$ 	% $	& 	&s   I  I
c                    | j                   | j                  z   }| j                   | j                  z   }||k(  sJ || j                  k7  sJ |j                  |      sJ |j                  | j                        sJ |j                  | j                         rJ |j                  | j                   | j                   z         rJ ||k(  sJ | j                  j                  | j                        sJ | j
                  j                  | j                        sJ | j                  j                  | j                        sJ | j
                  j                  | j                        sJ | j                  j                  | j                        rJ | j                  j                  | j
                        rJ | j                  j                  | j                   | j                  z         sJ | j
                  j                  | j                   | j                  z         sJ | j                  j                  | j                  | j                   z         rJ t        j                  | j                  | j
                        }|j                  | j                        \  }}| j                  |z   }|j                  | j                        \  }}||cxu rdu sJ  J ||cxu rdu sJ  J y )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  sZ   hh!hh!RxxTXX~~!!"%%%!!$((+++%%dhh///%%dhh&9:::Rxx{{**488444{{**488444{{**4+=+=>>>{{**4+=+=>>>%%55dkkBBB%%55dkkBBB{{**488dhh+>???{{**488dhh+>???;;..txx$((/BCCC33DHHdkkJ//0B0BC1hh&778J8J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                  |      }| 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                  j                  |      |       t        | j                  j                         j                  |      |       | j                  | j                  z   j                         }| j                  j                         j                         }t        ||       | j                  j                         j                         }t        ||       y )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8bffa[2q'B "

,11&9++''/hhR4+!# 02r( <CE::Oxx#rS#J"$&&"&&!1C9!>&(jj2
 	"&+6!'<8 	"$++">">v"F".	0 	"$++"8"8":"D"DV"L".	0
  88dhh.::<'')446?F3'')446?F3r*   N)	r   r   r   re  rh  rs  rw  r  r  r   r*   r(   rY  rY  Y  s!    <2-
) %,B#4r*   rY  c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)TestTransformPlotInterfacec                 ^   t        j                         }|j                  g dg d|j                         t	        |j
                  j                         t        j                  t        j                  t        j                  gt        j                   t        j                   gg             y )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  sn    XXZ
BLLI2::00288bffbff%5')vvgw%7%9 :	;r*   c                     t        j                         }|j                  g dg d|j                         t	        |j
                  j                         t        j                  ddgddgg             y )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  sT    XXZ
BLLI2::00288cC[3+$>?	Ar*   c                 d   t        j                         }t        j                  |j                  |j
                        }|j                  g dg d|       t        |j                  j                         t        j                  t        j                  dgt        j                   dgg             y )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~     XXZ55bll68llD
?2::00288bffc]')vvgs^%5 6	7r*   c                 6   t        j                         }t        j                         j	                  d      |j
                  z   }|j                  g dg d|       t        |j                  j                         t        j                  ddgddgg             y )	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   sr    XXZ$$&,,R02<<?
?2::00288b$Z#t$=>	@r*   c                    t        j                         }t        j                  |j                  t        j
                         j                  d      |j                  z         }|j                  g dg d|       t        |j                  j                         t        j                  t        j                  dgt        j                   dgg             y )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     XXZ55LL+..066r:R\\IK
?2::00288bffd^rvvgt_$EF	Hr*   c                 f   t        j                         }t        j                         j	                  dd      }t        j
                  t        j                  d      ||j                  z          t        j                  ddgddgg      dz   }t        |j                  j                         |       y )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    XXZ%%'11"b92&2<<*?@HHr2hb	%:;b@!"**"7"7"9;LMr*   c                    t        j                         }t        j                         j	                  dd      }t        t        j                         j	                  dd            }t        j                  t        j                  d      ||z   |j                  z          t        j                  ddgddgg      dz   }t        |j                  j                         |       y )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    XXZ%%'11"b9$[%9%9%;%E%Eb"%MN	2&9*<r||*KLHHr2hb	%:;b@!"**"7"7"9;LMr*   c                    t        j                         }t        j                         j	                  dd      }t        t        j                         j	                  dd            }t        ddgddgddgddgg      }t        j                  |||z   |j                  z         }|j                  |       t        j                  ddgddgg      dz   }t        |j                  j                         |       y )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    XXZ%%'11"b9$[%9%9%;%E%Eb"%MN	QFQGb"XAw78""3-3i-?",,-NP
UHHr2hs%<=B!"**"7"7"9;LMr*   c                    t        j                         }t        j                         j	                  dd      }t        ddgddgddgddgg      }t        j                  |||j                  z         }|j                  |       t        j                  ddgddgg      dz   }t        |j                  j                         |       y )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    XXZ%%'11"b9QFQGb"XAw78""3&2<<2GH
UHHr2hs%<=B!"**"7"7"9;LMr*   c                 n   t        j                  d      }t        j                         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                  j                         |       y )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    XX)%%'11!R82&2<<*?@ HHr2hb	%:;q"gE!"**"7"7"9;LMr*   N)r   r   r   r  r  r  r  r  r  r  r  r  r  r   r*   r(   r  r    s<    ;A	7@HNN	NN
Nr*   r  c                 D    t        | j                  |j                         y r   )r   bounds)bbox1bbox2s     r(   assert_bbox_eqr  B  s    u||U\\2r*   c                      t         j                  j                  ddddd      } | j                         }t	        |j
                  | j
                         y )Nr   r   )minpos)r   r	   from_extentsfrozenr   r  )bboxr  s     r(   test_bbox_frozen_copies_minposr  F  s@    ((c3C(HD[[]Fv}}dkk2r*   c            	         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             y )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    $$11M))E	q!Q	"B	sCc	*B	sAtT	*B	sCC	(B	q!Q	"B 5R="%5R=-S!Q"?@5R="%R=   5R=-1a";<r*   c            	         t        j                  ddgddgg      } t        | t        t	        |       dt         j                  i             t        t        |       dt        i      }|j                         D ]  \  }}t        | |      |k(  rJ  d}t        t        | |      dt        i      }|j                         D ])  \  }}t        t        t        | |      |            |k(  r)J  y )Nr   r   r}   r	   z.1f)
r   r	   r  evalreprstrdictitemsgetattrformat)r   asdictkr  fmts        r(   test_bbox_as_stringsr  b  s    2q'C:./A1d47V[-=-=$>?@#a&64.)F "1q!}!!!"
C&C.64.1F 51F71a=#./14445r*   c                  `    t        t        j                  d      j                        dk(  sJ y )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  s/     s{{g.889 ,>8 ,8 ,8 ,8r*   c                  p    t        j                         } | j                  d      }|j                  dk(  sJ y )Nr   r   )r   )r   r   r  r-  )r   rp  s     r(   test_transform_single_pointr    s0    A	6"A77d??r*   c                      t        j                         \  } }|j                  d       |j                  j	                  d       y )Nr  r  )r   subplots
set_yscaler   rM   )r4  r   s     r(   test_log_transformr    s1     llnGCMM%LL6"r*   c                      t        j                  ddgddgg      } t        j                  ddgdt        j                  gg      }| j	                  |      rJ y )Nr   r   )r   r	   r"   r  overlaps)r@   r   s     r(   test_nan_overlapr    sS    1a&1a&)*A1a&1bff+./Azz!}}r*   c                     t        j                         } t        j                  g d      }t        j                  ddgddgddgg      }| j	                  ||      }t        ||       t        j                  t              5  | j	                  ||ddddf          d d d        t        j                  t              5  | j	                  ||ddd d f          d d d        y # 1 sw Y   GxY w# 1 sw Y   y xY w)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XXl#FXX1v1v1v./F ##FF3Jfj1 
z	" 5	66!A#qs(#345 
z	" 3	66!A#q&>23 3	5 53 3s   C#>C/#C,/C8c                      t        j                  ddg      } dt         j                  fddg}|D ]3  }t        j                  t        j                  |       }t        ||        5 y )NgMbPgMbP?r   r6   )r   g     )r"   r#   r  r   nonsingularr   )zero_expansioncasesr   outs       r(   test_nonsingularr    sZ    XXvuo.N[&-0E 0hh{..563/0r*   c                     g d} t        | d      }t        j                         }t        j                  ||      }t	        |j                         j                  |        dt        j                  d      z  }|j                  t        j                  dz         t	        |j                         j                  d||fdd|z  f| |fgd	
       dgdz  |_        t	        |j                         j                  d||fdd|z  f| |fgd	
       y )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    s    -Ft$D  "E,,T59JJ99;DDfM 
RWWQZB	LLJ99;DDb"X1r6{bS"I> 
 (Q,DKJ99;DDb"X1r6{bS"I> r*   c                     t        j                         } t        j                  dddd|       }t        j                  |      }|j                         j                  }| j                  d       t        |j                         j                  |dz         |j                  d       t        |j                         j                  |       y )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NN61b#?E--e4F..099F 
KKNF557@@&1*M 
SF557@@&Ir*   locked_elementx0y0x1y1c                 V   g d}|j                  |        t        j                  j                         }t        j                  |fi | di}t        ||       dk(  sJ t        |d| z         dk(  sJ |D ]  }t        ||      t        ||      k(  rJ  |j                  |j                         dz          t        ||       dk(  sJ t        |d| z         dk(  sJ |D ]  }t        ||      t        ||      k(  rJ  t        |d| z   d        t        |d| z         J t        j                  |j                         |j                         k(        sJ t        |d| z   d       t        ||       dk(  sJ t        |d| z         dk(  sJ |D ]  }t        ||      t        ||      k(  rJ  y )Nr  r   locked_r   r   )remover   r	   unitLockableBboxr  
set_pointsr  setattrr"   r   )r  other_elementsoriglockedelems        r(   test_lockable_bboxr    s   -N.)  "D%%dB~q.ABF 6>*a///69~56!;;; <vt$d(;;;;< 	OODOO%*+6>*a///69~56!;;; <vt$d(;;;;< FI.569~56>>>66$//#v'8'8'::;;; FI.26>*a///69~56!;;; <vt$d(;;;;<r*   c                      t        j                  t        j                               } t        j                  t
        d      5  | j                  t        j                  d             d d d        y # 1 sw Y   y xY w)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%9%;<A	z<
> & 	
e  $%& & &s   %A11A:png)
extensionsc           	      $   t         j                  j                  d       t         j                  j                  d      }t        j                  ddd      }t        | |gddg      D ]  \  }}|j                         }|j                  ||d       |j                  |t        j                  |d	z   d	z        t        j                  d	t         j                  z        z         |j                  j                          |j                  d
        y )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    IINN8iiB'G
B2Ax1D%=A  Y\\^
Y5
266AqD'A+&RUU);;<


h r*   c                      t        j                  t        d      5  t        j                  d d       d d d        t        j                  t        d      5  t        j                  d d       d d d        y # 1 sw Y   ExY w# 1 sw Y   y xY w)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_errorsr2  .  s|    	zP
Q 8 	J78
 
zR
T 6H56 68 8
6 6s   A8B8BBc                     t        t        j                         t               j	                  d            } | j                  dd      sJ | j                  dd      sJ | j                  dd      rJ t        t        j                         t               j                  dd            } | j                  dd	      sJ | j                  dd	      rJ | j                  d
d
      rJ y )N   r  r   gٿg333333?r  g      ?rh   rg   r  )r
   r	   r  r   rL   containsrw   fully_contains)bbs    r(   test_transformedbbox_containsr8  9  s    	hj&;&;B&?	@B;;r2;;sC   {{2r"""	hj&:&:3&C	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 y Nr  r   r   r   rD   r   r  )r   interval_containsr   r*   r(   test_interval_containsr<  D  s    ((555((333((333,,VR888,,VQ777((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 y r:  )r   interval_contains_openr   r*   r(   test_interval_contains_openr?  M  s    --fc:::11&!<<<11&!<<<11&"===11&!<<<--fc:::r*   c                      d} t               }t        | |      }|j                  | k(  sJ |j                  |k(  sJ |j                  J y)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_initializationrG  V  sR    E+K 4J%%%""k111??"""r*   c                  J   t         j                  dz  } t        t        | dgg            }t        | |      }d|_        |j                         }|j                  j                  | dgg       t        j                  ddgddgg      }|J t        |ddddf   |d	
       y)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   )rD  rE  rF  matrixexpected_rotations        r(   &test_scaledrotation_get_matrix_invalidrM  `  s    EEAIEiuaj\&JKK 4JJ""$F11E1:,?1b'#$q'"+ ,F2A2rr6N$5EBr*   )Fr   numpyr"   numpy.testingr   r   r   r   r   
matplotlibr   matplotlib.pyplotpyplotr   matplotlib.patchespatchesr  matplotlib.transforms
transformsr   r   r	   r
   r   matplotlib.pathr   matplotlib.testing.decoratorsr   r   unittest.mockr   r   r   r   r   r  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,  r2  r8  r<  r?  rG  rM  r   r*   r(   <module>r\     sz    J J    % + R R   O #D; D;N
2 22#LC$ '(d' I IF;	;	;&"*JK-4{,, 4,I4 I4XZN ZNz33=,	5/8d#3$0 ,J" )+CD< E<B& (
  )
 6)6;#Cr*   