+
     ]i.  c                   s   ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	 ^ RIH
t
 R t]P                  P                  ] P                  ! 4       R8g  RR7      R	 4       t]P                  P                  ] P                  ! 4       R8g  RR7      R
 4       tR tR tR tR t]	! R.4      R 4       t]	! R.4      R 4       t]	! R.RR7      R 4       tR t]	! R.RR7      R 4       t]	! R.RR7      R 4       t]	! R.RR7      R 4       t]	! R.RR7      R 4       t]	! R .RR7      R! 4       tR" tR# tR$ t ]	! R%.RR7      R& 4       t!R' t"R( t#R) t$R* t%R1R+ lt&R1R, lt']P                  PQ                  R-. R2O4      ]
! R..R/7      R0 4       4       t)R# )3    N)pyplot)image_comparison)check_figures_equalc                 sb   \         P                  ! \         P                  ! ^ ^\         P                  ,          ^4      \         P                  ! ^ ^\         P                  ,          ^4      4      w  r#\         P                  ! V4      p\         P
                  ! V4      pV P                  ! WE3/ VB pV# )r    )npmeshgridarangepicossinquiver)axZkwargsXYUVQs   &,     C/usr/lib64/python3.14/site-packages/matplotlib/tests/test_quiver.pydraw_quiverr      ss    ;;ryyAIq1yyAIq13DA
q	A
q	A
		!!&!AH    ZCPythonzRequires CPython)Zreasonc                  s    \         P                  ! 4       w  r\        V4      pVP                  p\        P
                  ! V4      pVP                  4        ?R # N)pltsubplotsr   r   sysgetrefcountremove)figr   r   ZttXorig_refcount        r   test_quiver_memory_leakr      s=     llnGCBA
##COOC(MHHJ	r   c            
      s    \         P                  ! 4       w  r\        V4      pVP                  VR R^RRRR/R7      p\        P
                  ! V4      pVP                  4        R# )      ?q=
ףp?$2 \frac{m}{s}$WweightboldlabelposfontpropertiesN)r   r   r   	quiverkeyr   r   r   )r   r   r   qkr   r   r   test_quiver_key_memory_leakr)   %   s\     llnGCBA	adA'9"&.%7 
 
9B OOB'MIIKr   c            
      sl   ^^.p \         P                  ! \        RR7      ;_uu_ 4        \        P                  ! V 4       RRR4       \         P                  ! \        RR7      ;_uu_ 4        \        P                  ! W W W 4       RRR4       R#   + '       g   i     LW; i  + '       g   i     R# ; i)   z7takes from 2 to 5 positional arguments but 1 were givenZmatchNz7takes from 2 to 5 positional arguments but 6 were given)pytestraisesZ	TypeErrorr   r
   )r   s    r   test_quiver_number_of_argsr.   4   s    	
AA	K
M 
M 	

1
M 
K
M 
M 	

1q$
M 
M	
M 
M
M 
M 
Ms   B,B"B	"B3	c            	      s   ^^.p . ROp\         P                  ! \        RR7      ;_uu_ 4        \        P                  ! WW 4       RRR4       \         P                  ! \        RR7      ;_uu_ 4        \        P                  ! W W4       RRR4       \         P                  ! \        RR7      ;_uu_ 4        \        P                  ! W W4       RRR4       \         P                  ! \        RR7      ;_uu_ 4        \        P                  ! W W V4       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L}; i  + '       g   i     R# ; i)r*   z?X and Y must be the same size, but X.size is 2 and Y.size is 3.r+   NzMArgument U has a size 3 which does not match 2, the number of arrow positionszMArgument V has a size 3 which does not match 2, the number of arrow positionszMArgument C has a size 3 which does not match 2, the number of arrow positions)r*      i   )r,   r-   
ValueErrorr   r
   )ZX2ZX3     r   test_quiver_arg_sizesr2   @   s   
QB	B	  >
@ 
@ 	

22"
@ 
  B
D 
D 	

22"
D 
  B
D 
D 	

22"
D 
  B
D 
D 	

222&
D 
D
@ 
@
D 
D
D 
D
D 
D 
Ds/   D1D/5E9ED,	/D?	E	E&	c                  s   \         P                  ! 4       w  r\        P                  ! \        P                  ! ^4      \        P                  ! ^
4      4      w  r#\        P
                  ! V4      ;rE\        P                  P                  ^^
4      R,
          ^,          pVP                  W#WEVR7       V P                  P                  4        R# )   r   anglesN)r   r   r   r   r   	ones_likerandomrandr
   canvasdrawr   r   r   r   r   r   Zphi          r   test_no_warningsr=   U   s    llnGC;;ryy}biim4DALLOA99>>"b!B&#
-CIIaAI%JJOOr   c                  sh   \         P                  ! 4       w  r\        P                  ! \        P                  ! ^
4      \        P                  ! ^
4      4      w  r#\        P
                  ! V4      \        P                  ! V4      rTVP                  WE^ ^ R7       V P                  P                  4        R# )i
   )Z
headlengthZheadaxislengthN)
r   r   r   r   r   r   r	   r
   r9   r:   )r   r   r   r   r   r            r   test_zero_headlengthr?   ^   sj     llnGC;;ryy}biim4DA66!9bffQiqIIaqI3JJOOr   zquiver_animated_test_image.pngc            
      s    \         P                  ! 4       w  r\        VR R7      pVP                  VRR^RRRR/R7       R	# )
T)Zanimatedr   r   r    r!   r"   r#   r$   N)r   r   r   r'   r   r   r         r   test_quiver_animaterB   h   sD     llnGCB&ALLCq"4x.@  Br   zquiver_with_key_test_image.pngc                  s    \         P                  ! 4       w  rVP                  R 4       \        V4      pVP	                  VRR^RRRRRRRR	/R
7	       R# )皙?r   gffffff?z"$2\, \mathrm{m}\, \mathrm{s}^{-1}$figurer!   r"   r#   ZsizeZlarge)anglecoordinatesr%   r&   Ni)r   r   marginsr   r'   r@   rA   r   test_quiver_with_keyrH   q   sU    llnGCJJsOBALLCq6%!)667 C  Er   zquiver_single_test_image.pngT)Zremove_textc                  s    \         P                  ! 4       w  rVP                  R 4       VP                  ^.^.^.^.4       R# )rC   N)r   r   rG   r
   r   r   r1   r   test_quiver_singlerJ   ~   s4    llnGCJJsOIIqcA3aS!r   c                  s   \         P                  ! 4       w  r\        \        P                  ! R .4      \        P                  ! R.4      R7      pVP                  ^.^.VR,          VR,          4      p^ VR,          ^ &   R# )皙?g       @)uvrL   rM   N)r   r   dictr   arrayr
   )r   r   uvZq0s       r   test_quiver_copyrQ      s\    llnGC	#288SE?	3B	A3RWbg	.BBsGAJr   zquiver_key_pivot.pngc            	      s>   \         P                  ! 4       w  r\        P                  ^ ^\        P                  ,          R1^ ^\        P                  ,          R13,          w  r#VP                  \        P                  ! V4      \        P                  ! V4      4      pVP                  R	^4       VP                  R	^4       VP                  VR^^RRR7       VP                  V^R^RRR7       VP                  VR^ ^RRR7       VP                  V^ R^RRR7       R# )
r    y              $@r   ZN)r%   EZSr!   Ni)r   r   r   Zmgridr   r
   r	   r   set_xlimset_ylimr'   )r   r   rL   rM   qr   r   test_quiver_key_pivotrV      s    llnGC88AagcM1QruuWS=01DA
		"&&)RVVAY'AKKBKKBLLCAsSL1LLAsAsSL1LLCAsSL1LLAsAsSL1r   zquiver_key_xy.pngc                  s0   \         P                  ! ^4      p \         P                  ! ^4      pV \         P                  ^,          ,          p\         P                  ! RV,          4      pVP
                  pVP                  p\        P                  ! ^4      w  rg\        VR4       Fn  w  rVP                  R^4       VP                  RR4       VP                  WWERRR^RV	R7
      p
\        RR4       F  w  rVP                  WR^VRR	R
7       K  	  Kp  	  R# )i   y              ?xy皙?middleg?)pivotZunitsZwidthscalescale_unitsr5   皙?Z Zb)r   r   r   rE   labelcolorN)rP   rW   gɿ)rX   r   r]   )r    i-   iZ   )r   r   Zzerosr   ZexpZrealZimagr   r   ZziprS   rT   r
   r'   )r   r   r5   rP   r   r   r   Zaxsr   Z	angle_strrU   xrE   s                r   test_quiver_key_xyrb      s     			!A
A"%%!)_F	V	B
A
A||AHCS,/
B
D#IIaA 4&  ( O[9HALL3!5#LN : 0r   zbarbs_test_image.pngc                  s&   \         P                  ! R
^^4      p \         P                  ! W 4      w  r^V,          ^V,          rC\        P                  ! 4       w  rVVP                  WW4\         P                  ! W44      RR\        RRRR7      RR7	       R	# )   TF      ?rX   333333?Z	emptybarbZspacingZheightZviridis)
fill_emptyroundingsizesZcmapN)r   linspacer   r   r   barbsZhypotrN   ra   r   r   r   r   r   r   r<   r   
test_barbsrn      sr    
B1A;;qDAa4AqllnGCHHQ1!D5$C@  r   zbarbs_pivot_test_image.pngc                  s$   \         P                  ! R^^4      p \         P                  ! W 4      w  r^V,          ^V,          rC\        P                  ! 4       w  rVVP                  WW4RRR\        RRRR7      R7       VP                  W^1R	R
7       R# )rc   TF333333?rd   rX   re   rf   )rg   rh   rZ   ri   Zblack)ZsZcNrj   )r   rk   r   r   r   rl   rN   Zscatterrm   r<   r   test_barbs_pivotrp      sz    
B1A;;qDAa4AqllnGCHHQ1D5$C@  BJJqrWJ%r   zbarbs_test_flip.pngc                 s   \         P                  ! R
^^4      p \         P                  ! W 4      w  r^V,          ^V,          rC\        P                  ! 4       w  rVVP                  WW4RRR\        RRRR7      V^ 8  R7	       R	# )z'Test barbs with an array for flip_barb.TFro   rd   rX   re   rf   )rg   rh   rZ   ri   Z	flip_barbNrj   )r   rk   r   r   r   rl   rN   rm   r<   r   test_barbs_fliprq      sp     	B1A;;qDAa4AqllnGCHHQ1D5$C@1u  r   c                  s    \         P                  ! 4       w  r\        P                  ! R .4      p\        P                  ! R.4      pVP	                  ^.^.W#4      p^ V^ &   ^ V^ &   R# )rK   g@N)r   r   r   rO   rl   )r   r   rL   rM   Zb0r   r   test_barb_copyrr      sU    llnGC
#A
#A	1#sA	!BAaDAaDr   c                 s   \         P                  ! ^4      p \         P                  ! ^4      p\         P                  P                  R\         P                  ! R4      ,          4      p\         P                  P                  R\         P
                  ! V4      ,          4      p\         P                  P                  V^&   \         P                  P                  V^&   \        P                  ! 4       w  rE\        P                  ! \        4      ;_uu_ 4        VP                  WW#4       RRR4       R#   + '       g   i     R# ; i)z=Test error handling when given differing sized masked arrays.g      .@N)i   )r   r   ZmarO   Zonesr6   Zmaskedr   r   r,   r-   r0   rl   )ra   yrL   rM   r   r   r>   r   test_bad_masked_sizesrt      s    
		!A
		!A
C"''$-'(A
C",,q/)*A55<<AaD55<<AaDllnGC	z	"	"
q 
#	"	"	"s   D11E	c            	      sj   \         P                  ! 4       w  r\        P                  ! \        P                  ! ^4      \        P                  ! ^
4      4      w  r#\        P
                  ! V4      ;rE\        P                  P                  ^^
4      R,
          ^,          pVP                  W#WEVRR7       R# )r3   r   rW   )r5   r\   N)	r   r   r   r   r   r6   r7   r8   r
   r;   r<   r   test_angles_and_scaleru      ss    llnGC;;ryy}biim4DALLOA99>>"b!B&#
-CIIaA$I7r   zquiver_xy.pngc            
      s    \         P                  ! \        R R7      R7      w  rVP                  ^ ^ ^^RR^R7       VP	                  ^ R4       VP                  ^ R4       VP                  4        R# )Zequal)Zaspect)Z
subplot_kwrW   )r5   r\   r[   rK   N)r   r   rN   r
   rS   rT   ZgridrI   r1   r   test_quiver_xyrv      sX     lld'&:;GCIIaAq4qIAKK3KK3GGIr   c                  sn   \         P                  ! 4       w  r\        P                  ! \        P                  ! ^4      \        P                  ! ^4      4      w  r#\        P
                  ! V4      ;p;rVVP                  W#WEVR7      pVP                  V^^^R4      pV P                  P                  4        R# )r/   r4   ZLabelN)
r   r   r   r   r   r6   r
   r'   r9   r:   )	r   r   r   r   r   r   r5   rU   r(   s	            r   test_quiverkey_anglesrw     s     llnGC;;ryy|RYYq\2DA\\!_$A$
		!V	,A	aAq'	*BJJOOr   c                  s0   R R/R RRR/RR/.p V  EF  p\         P                  ! \         P                  ) \         P                  ^4      p\         P                  ! V4      \         P                  ,          ^,          p\         P                  ! V4      p\         P                  ! V4      p\
        P                  ! 4       pVP                  RR7      pVP                  ! W#WE3/ VB pVP                  V^ ^ ^R4      p	VP                  P                  4        EK  	  R# )r5   rW   r\   Zaitoff)Z
projection1 unitsN)r   rk   r   r6   Z
zeros_liker   rD   Zadd_subplotr
   r'   r9   r:   )
kwargs_listkwargs_dictra   rs   ZvxZvyr   r   rU   r(   
             r   test_quiverkey_angles_xy_aitoffr|     s     
4	4-	K #KKr*LLObee#a']]1\\!_jjl___1IIaB2k2\\!Q1i0

 #r   c            
      s4   R R/R RRR/RR/.p V  F  p. R
Op. R
Op. ROp. ROp\         P                  ! 4       w  rgVP                  ! W#WE3/ VB pVP                  VRR^RRR7       VP                  V^ ^ ^R4      p	VP                  P                  4        K  	  R	# )r5   rW   r\   re   rK   zQuiver key, length = 1rR   )r   r   r   r^   r%   rx   N)r    r`   r    )r*   r`   r*   )r*   r`   r    )r   r   r
   r'   r9   r:   )
ry   rz   r   r   r   r   r   r   rU   r(   r{   r   +test_quiverkey_angles_scale_units_cartesianr}   -  s     
4	4-	K #,,.IIaA0K0
Q#3c 	 	C\\!Q1i0

 #r   c                 s,   \         P                  ! 4       w  r\        P                  ! \        P                  ! ^4      \        P                  ! ^4      4      w  r#\        P
                  ! V4      ;rEVP                  W#WE4      pVP                  ^ ^4       R# )zBCheck that it is possible to set all arrow UVC to the same numbersN)r   r   r   r   r   r6   r
   Zset_UVC)r   r   r   r   r   r   rU   r<   r   test_quiver_setuvc_numbersr~   H  s`     llnGC;;ryy|RYYq\2DALLOA
		!AIIaOr   c                s    \         P                  ! ^^^4      p\         P                  ! ^^^4      p\         P                  ! W#4      w  rE^^rvV P                  4       pVP	                  WEWgRR7      p	VP                  RR4       VP                  RR4       Vf4   VP                  V	^^^RRRR	7       VP                  V	R^^RR
R^ZR7       R# VP                  V	^^^RRRVR7       VP                  V	R^^RR
R^ZVR7	       R# )z/Draw Quiver and QuiverKey using zorder argumentrY   rZ   r         @Ndatar   bluerF   r^   r_   r   rF   r^   r_   rE   )rF   r^   r_   zorder)rF   r^   r_   rE   r   )r   r   r   r   r
   rS   rT   r'   )
r   r   ra   rs   r   r   r   r   r   rU   s
   &&        r   draw_quiverkey_zorder_argumentr   T  s   
		!QA
		!QA;;qDAaq	B
		!H	-AKKSKKS~
Q1bff 	 	.
QQfB 	 	8 	Q1bffV 	 	=
QQfBv 	 	Gr   c                s   \         P                  ! ^^^4      p\         P                  ! ^^^4      p\         P                  ! W#4      w  rE^^rvV P                  4       pVP	                  WEWgRR7      p	VP                  RR4       VP                  RR4       VP                  V	^^^RRRR7      p
VP                  V	R^^RR	R^ZR
7      pVe%   V
P                  V4       VP                  V4       R# R# )z*Draw Quiver and QuiverKey using set_zorderrY   r   r   r   r   r   r   r   r   r   N)	r   r   r   r   r
   rS   rT   r'   Z
set_zorder)r   r   ra   rs   r   r   r   r   r   rU   Zqk1Zqk2s   &&          r   draw_quiverkey_setzorderr   k  s    
		!QA
		!QA;;qDAaq	B
		!H	-AKKSKKS
,,q!Q   0C
,,q#q"& b  :Cvv r   r   Zpng)Z
extensionsc                 s6    \        WR 7       \        WR 7       R# ))r   N)r   r   )Zfig_testZfig_refr   s   &&&r   test_quiverkey_zorderr     s     #8;W4r   r   )r    r/   rc   N)*Zplatformr   Znumpyr   r,   Z
matplotlibr   r   Zmatplotlib.testing.decoratorsr   r   r   ZmarkZskipifZpython_implementationr   r)   r.   r2   r=   r?   rB   rH   rJ   rQ   rV   rb   rn   rp   rq   rr   rt   ru   rv   rw   r|   r}   r~   r   r   Zparametrizer   ) r   r   <module>r      s*    
   $ : = H224	A-  /
0/
0 H224	A-  /
//
/	%'* 345B 6B 345	E 6	E 12E" F" )*=2 >2 &'T:O ;O. )*= > /0dC& D& ()t< =
8 ?#6 7":"6	G.( ?3(5 ) 45r   