+
    i                        R t ^ RIHt ^ RIt^ RIt^ RIHt ^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt  ! R R]P2                  4      t ! R R	]P6                  4      t ! R
 R]P:                  4      t ! R R]4      t]! ]4       ]	! R.RR7      R 4       t ]	! R.R]PB                  ! 4       R8X  d   ^ MRR7      R 4       t"R# )z)
Testing that skewed Axes properly work.
)	ExitStackN)image_comparison)Axes)register_projectionc                   8   a a ] tR t^t oV 3R ltR tRtVtV ;t# )	SkewXTickc                $  < \        4       ;_uu_ 4       pV P                  V P                  V P                  V P                  V P
                  3 F-  pVP                  VP                  VP                  4       4       K/  	  \        P                  ! V P                  P                  V P                  4       4      p\        P                  ! V P                  P                  V P                  4       4      pV P                  P                  V P                  P                  4       ;'       d    T4       V P                  P                  V P                  P                  4       ;'       d    T4       V P                  P                  V P                  P                  4       ;'       d    T4       V P
                  P                  V P
                  P                  4       ;'       d    T4       \        SV `A  V4       R R R 4       R #   + '       g   i     R # ; iN)r   gridline	tick1line	tick2linelabel1label2callbackset_visibleget_visible
transformsinterval_containsaxes
lower_xlimget_loc
upper_xlimsuperdraw)selfrendererstackartistneeds_lowerneeds_upper	__class__s   &&    z/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/matplotlib/tests/test_skew.pyr   SkewXTick.draw   sa   [[E==$..$..;;5v1163E3E3GH5 %66		$$dlln6K$66		$$dlln6KNN&&**,<<>KK##'')99k;NN&&**,<<>KK##'')99k;GL"! [[[s$   DG>'<G>$<G>!<G>G>>H	c                J    V P                   P                  P                  4       # r	   )r   xaxisget_view_intervalr   s   &r!   r%   SkewXTick.get_view_interval*   s    yy0022     )	__name__
__module____qualname____firstlineno__r   r%   __static_attributes____classdictcell____classcell__r    __classdict__s   @@r!   r   r      s     #&3 3r(   r   c                   ,   a  ] tR t^0t o R tR tRtV tR# )	SkewXAxisc                2    \        V P                  R VR7      # )N)major)r   r   )r   r6   s   &&r!   	_get_tickSkewXAxis._get_tick1   s    D66r(   c                v    V P                   P                  ^ ,          V P                   P                  ^,          3# )    )r   r   r   r&   s   &r!   r%   SkewXAxis.get_view_interval4   s+    yy##A&		(<(<Q(???r(   r)   N)r*   r+   r,   r-   r7   r%   r.   r/   r2   s   @r!   r4   r4   0   s     7@ @r(   r4   c                   &   a  ] tR t^;t o R tRtV tR# )	SkewSpinec                    V P                   P                  pV P                  R 8X  d   V P                  P                  VR&   R# V P                  P
                  VR&   R# )topN:NNNr:   )_pathvertices
spine_typer   r   r   r   ptss   & r!   _adjust_locationSkewSpine._adjust_location<   sC    jj!!??e#		,,CI		,,CIr(   r)   N)r*   r+   r,   r-   rG   r.   r/   r<   s   @r!   r>   r>   ;   s     - -r(   r>   c                   b   a a ] tR t^Gt oRtR tR tV 3R lt]R 4       t	]R 4       t
RtVtV ;t# )	SkewXAxesskewxc                   \        V 4      V n        V P                  P                  P	                  V P                  4       V P                  P
                  P	                  V P                  4       \        P                  ! V 4      V n        V P                  P                  P	                  V P                  4       V P                  P                  P	                  V P                  4       R # r	   )r4   r$   spinesr@   register_axisbottommaxisYAxisyaxisleftrightr&   s   &r!   
_init_axisSkewXAxes._init_axisL   s    t_
%%djj1((4[[&
&&tzz2''

3r(   c                    R \         P                  V R 4      R\        P                  P                  V R4      R\        P                  P                  V R4      R\        P                  P                  V R4      /pV# )r@   rO   rS   rT   )r>   linear_spinemspinesSpine)r   rM   s   & r!   _gen_axes_spinesSkewXAxes._gen_axes_spinesU   se    //e<GMM66tXF'--44T6B7==55dGDF r(   c                  < ^p\         SV `  4        V P                  V P                  \        P
                  ! 4       P                  V^ 4      ,           ,           V n        V P                  V P                  ,           V n	        \        P                  ! V P                  V P                  ,           \        P                  ! 4       4      \        P
                  ! 4       P                  V^ 4      ,           V P                  ,           V n        R# )zi
This is called once when the plot is created to set up all the
transforms for the data, text and grids.
N)r   _set_lim_and_transforms
transScaletransLimitsr   Affine2Dskew_degtransDataToAxes	transAxes	transDatablended_transform_factoryIdentityTransform_xaxis_transform)r   rotr    s   & r!   r^   !SkewXAxes._set_lim_and_transforms\   s    
  	') !%!%!1!1!+!4!4!6!?!?Q!G"H!I
 --> ",!E!EOOd...((*", !**32"3 7;nn!Er(   c                B    V P                   P                  P                  # r	   )r   viewLim	intervalxr&   s   &r!   r   SkewXAxes.lower_xlimy   s    yy  ***r(   c                r    R R.RR..pV P                   P                  4       P                  V4      R,          # )g        g      ?rA   )rc   inverted	transformrE   s   & r!   r   SkewXAxes.upper_xlim}   s9    Bx"b"##,,.88=dCCr(   )rh   re   rc   r$   rR   )r*   r+   r,   r-   namerU   r[   r^   propertyr   r   r.   r/   r0   r1   s   @@r!   rJ   rJ   G   sL      D4E: + + D D Dr(   rJ   zskew_axes.pngT)remove_textc                      \         P                  ! 4       p V P                  ^^^RR7      pVP                  R^24       VP	                  ^2R4       VP                  R4       VP                  ^ RR7       R# )   rK   )
projectionTb)colorNi)pltfigureadd_subplotset_xlimset_ylimgridaxvline)figaxs     r!   test_set_line_coll_dash_imager      s\    
**,C	AqW	5BKKRKKCGGDM JJqJr(   zskew_rects.pngx86_64g;On?)ru   tolc                     \         P                  ! ^^RRRR7      w  rVP                  p\        \        P
                  ! . RO^R7      4      pV^ ,          P                  R^.4       V^ ,          P                  R^.4       V^ ,          P                  RRR7       \        W4       F  w  pw  rE^-V,          ^-V,          rv\        P                  ! 4       P                  Wg4      pVP                  RV RV R24       VP                  \        P                   ! RR.^^WP"                  ,           R	R
R7      4       K  	  \         P$                  ! ^ RRRRR7       R# )   T)sharexshareyfigsize)repeatequal)sharezSkew of z
 in X and z in Yg      ?coral)rq   alpha	facecolorg{Gz?gGz?)wspacerS   rT   rO   r@   N)   r   )r   r   r:   rw      )r{   subplotsflatlist	itertoolsproductr~   r   
set_aspectzipr   ra   rb   	set_title	add_patchmpatch	Rectanglere   subplots_adjust)	fixr   	rotationsr   xrotsyrotsxdegydegts	            r!   test_skew_rectangler      s%    Q$tVLIC99DY&&'8CDIGb!WGb!WGwd+!$2NU%Zed!**46
xvZvU;<
V%%r2h101LL0@,/7D 	E 3 qt4$Or(   )#__doc__
contextlibr   r   platformmatplotlib.pyplotpyplotr{   matplotlib.testing.decoratorsr   matplotlib.axesr   matplotlib.transformsr   matplotlib.axisaxisrP   matplotlib.spinesrM   rY   matplotlib.patchespatchesr   matplotlib.projectionsr   XTickr   XAxisr4   rZ   r>   rJ   r   machiner   r)   r(   r!   <module>r      s    !    :   *  # # 6
3 34@ @- -9D 9D| I  ?#6 7 #$$#++-9auFPFPr(   