
    &h                       S SK r S SKrS SKrS SKJrJr  S SKrS SKJrJ	r	  S\R                  " 5       :H  r " S S\R                  5      r " S S\R                  5      r " S	 S
\R                  5      r\S:X  a  \R"                  " 5         gg)    N)
CollectionSequence)Vector2Vector3PyPyc                   $    \ rS rSrSrS rS rSrg)MathModuleTest   zMath module tests.c                    [         R                  R                  SSS5      nU R                  US5        [         R                  R                  SSS5      nU R                  US5        [         R                  R                  SSS5      nU R                  US5        U R	                  [
        [         R                  R                  S	5        U R	                  [
        [         R                  R                  S
S
S
5        U R	                  [        [         R                  R                  SSS5        U R	                  [        [         R                  R                  SSS5        g )N
   d         ?g     K@              $@      ?g      Y@   str皙?g      )pygamemathlerpassertAlmostEqualassertRaises	TypeError
ValueErrorselfresults     N/var/www/auris/envauris/lib/python3.13/site-packages/pygame/tests/math_test.py	test_lerpMathModuleTest.test_lerp   s    !!"c3/vt,!!"c3/vt,!!"c3/vu- 	)V[[%5%5q9 	)V[[%5%5ueUK 	*fkk&6&6CE*fkk&6&6CF    c                    [         R                  R                  SSS5      nU R                  US5        [         R                  R                  SSS5      nU R                  US5        [         R                  R                  SSS5      nU R                  US5        [         R                  R                  SSS5      nU R                  US5        [         R                  R                  SSS5      nU R                  US5        [         R                  R                  SSS5      nU R	                  US5        [         R                  R                  S	SS5      nU R	                  US5        [         R                  R                  SSS5      nU R	                  US5        [         R                  R                  SSS5      nU R	                  US5        [         R                  R                  S
SS5      nU R	                  US
5        U R                  [        [         R                  R                  S5        U R                  [        [         R                  R                  SSS5        g)zTest clamp function.r   r         r   Q?      @      $      @hellopythonN)r   r   clampassertEqualr   r   r   r   s     r   
test_clampMathModuleTest.test_clamp#   s   
 ""2q!,#""31-#""1a+#""1a+#""1a+# ""4s3vs+""5$4vt,""3c2vs+""4s3vt,""3c2vs+ 	)V[[%6%6;)V[[%6%6vNr"    N)__name__
__module____qualname____firstlineno____doc__r    r0   __static_attributes__r2   r"   r   r	   r	      s    G()Or"   r	   c                      \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/ r1S0 r2S1 r3S2 r4S3 r5S4 r6S5 r7S6 r8S7 r9S8 r:S9 r;S: r<S; r=S< r>S= r?S> r@S? rAS@ rBSA rCSB rDSC rESD rFSE rGSF rHSG rISHrJgI)JVector2TypeTestO   c                 n   [        5       U l        [        SS5      U l        [        SS5      U l        SU l        [        U R                  5      U l        [        U R                  5      U l        SU l        [        U R                  5      U l	        [        U R                  5      U l
        SU l        SU l        g )Nr   r   333333?333333@)ffffff@333333@r@   rA   )r   zeroVece1e2t1listl1v1t2l2v2s1s2r   s    r   setUpVector2TypeTest.setUpP   s    y!Q-!Q-tww-$''"tww-$''"r"   c                     [        5       nU R                  UR                  S5        U R                  UR                  S5        g Nr   r   r/   xyr   vs     r   testConstructionDefault'Vector2TypeTest.testConstructionDefault]   s1    Ic"c"r"   c                     [        S5      nU R                  UR                  S5        U R                  UR                  S5        g Nr   r   rS   rV   s     r   testConstructionScalar&Vector2TypeTest.testConstructionScalarb   s3    AJc"c"r"   c                     [        SS9nU R                  UR                  S5        U R                  UR                  S5        g Nr   )rT   r   rS   rV   s     r   testConstructionScalarKeywords.Vector2TypeTest.testConstructionScalarKeywordsg   s3    aLc"c"r"   c                     [        SSS9nU R                  UR                  S5        U R                  UR                  S5        g )Nr      rT   rU   r          @rS   rV   s     r   testConstructionKeywords(Vector2TypeTest.testConstructionKeywordsl   s6    a1c"c"r"   c                     [        SS5      nU R                  UR                  S5        U R                  UR                  S5        g Nr>   r?   rS   rV   s     r   testConstructionXY"Vector2TypeTest.testConstructionXYq   s6    Cc"c"r"   c                     [        S5      nU R                  UR                  S5        U R                  UR                  S5        g )Nr=   r>   r?   rS   rV   s     r   testConstructionTuple%Vector2TypeTest.testConstructionTuplev   s4    Jc"c"r"   c                     [        SS/5      nU R                  UR                  S5        U R                  UR                  S5        g ri   rS   rV   s     r   testConstructionList$Vector2TypeTest.testConstructionList{   s8    S#Jc"c"r"   c                     [        [        SS5      5      nU R                  UR                  S5        U R                  UR                  S5        g ri   rS   rV   s     r   testConstructionVector2'Vector2TypeTest.testConstructionVector2   s;    GC%&c"c"r"   c                 v   U R                   R                  nU R                  XR                   R                  5        U R                  XR                   S   5        U R                   R                  nU R                  XR                   R                  5        U R                  XR                   S   5        SU R                   l        U R                  U R                   R                  S5        SU R                   l        U R                  U R                   R                  S5        S nU R	                  [
        U5        g )Nr   r   T㥛 	@c                  &    [        5       n SU l        g Nspamr   rT   rW   s    r   assign_nonfloat<Vector2TypeTest.testAttributeAccess.<locals>.assign_nonfloat       	AACr"   )rH   rT   r/   rU   r   r   r   tmpr|   s      r   testAttributeAccess#Vector2TypeTest.testAttributeAccess   s    ggiiggii(ggaj)ggiiggii(ggaj)	E*	E*	 	)_5r"   c           
         U R                  [        [        R                  " SS5      5      [        R                  " SS5      5        U R                  [	        [        [        R                  " SS5      5      5      [        R                  5        U R                  [        [        R                  " SS5      5      [        [        R                  " SS5      5      5        U R                  [        [        R                  " SS5      5      [        [        R                  " SS5      5      5        U R                  [        [        R                  " SS5      5      [        R                  " SS5      5        U R                  [        [        R                  " SS5      5      [        R                  " SS5      5        U R                  [        [        R                  " SS5      5      [        R                  " SS5      5        U R                  [        [        R                  " SS5      5      [        R                  " SS5      5        U R                  [        [        R                  " SS5      5      [        R                  " SS5      5        U R                  [        [        R                  " S	S	5      5      [        R                  " S	S	5      5        U R                  [        [        R                  " S
S
5      5      [        R                  " SS5      5        U R                  [        [        R                  " SS5      5      [        R                  " SS5      5        U R                  [        [        R                  " SS5      5      [        R                  " SS5      5        U R                  [        [        R                  " SS5      5      [        R                  " SS5      5        U R                  [        [        R                  " SS5      5      [        R                  " SS5      5        U R                  [        [        R                  " SS5      5      [        R                  " SS5      5        U R                  [        [        R                  " SS5      5      [        R                  " SS5      5        U R                  [        [        R                  " SS5      5      [        R                  " SS5      5        U R                  [        [        R                  " SS5      5      [        R                  " SS5      5        U R                  [        [        R                  " SS5      5      [        R                  " SS5      5        U R                  [        [        R                  " SS5      5      [        R                  " SS5      5        U R                  [        [        R                  " SS5      5      [        R                  " SS5      5        U R                  [        [        R                  " SS5      5      [        R                  " SS5      5        U R                  [        [        R                  " SS5      S5      [        R                  " SS5      5        U R                  [	        [        [        R                  " SS5      S5      5      [        R                  5        U R                  [	        [        [        R                  " SS5      S5      5      [        R                  5        U R                  [	        [        [        R                  " SS5      S5      5      [        R                  5        U R                  [        [        R                  " SS5      5      [        R                  " SS5      5        U R                  [        [        R                  " SS5      5      [        R                  " SS5      5        U R                  [        [        R                  " SS5      5      [        R                  " S S 5      5        U R                  [        [        R                  " S!S!5      5      [        R                  " S"S"5      5        U R                  [        [        R                  " S#S#5      5      [        R                  " S$S$5      5        U R                  [        [        R                  " S%S%5      5      [        R                  " S"S"5      5        U R                  [        [        [        R                  " SS5      S&5        U R                  [        [        [        R                  " SS5      S'5        g (Nr   r   r   g    eAg@xDg      r)   g    eg@xg?r   g333333$@g eA皙g333333$g eg?g#@g33dAgg#g33dg       r   r   g      @   g@r(   r@         @g      iggffffffg      ?a)r/   roundr   r   typer   r   rN   s    r   test___round___basic$Vector2TypeTest.test___round___basic   s#   v~~c378&..c:RSeFNN3$<=>O&..c*+U6>>#s3K-L	
 	&..t,-uV^^D$5O/P	
 	&..|<=NN<6	
 	v~~dD9:FNN4QU<VWv~~dD9:FNN4QU<VW&.../u1M	
 	&..>?NN=-8	
 	&.../u1M	
 	v~~c378&..c:RSv~~c378&..c:RSv~~dD9:FNN4QU<VW&..|<=NN<6	

 	v~~dD9:FNN4QU<VW&.../u1M	
 	&..>?NN=-8	

 	v~~c378&..c:RSv~~c378&..t:TU&..k:;NN<6	

 	v~~dD9:FNN4QU<VW&..t,-v~~eU/K	
 	&..|<=NN=-8	

 	&..t,b16>>%3O	
 	eFNN4$>CDfnnUeFNN4$>BCV^^TeFNN4$>BCV^^T 	v~~c378&..A:NOv~~c378&..c:RSv~~c378&..c:RSv~~dD9:FNN2r<RSv~~dD9:FNN2r<RSv~~dD9:FNN2r<RS)UFNN3,DcJ)UFNN3,DcJr"   c                     [        SS5      nUR                  5       nU R                  UR                  UR                  5        U R                  UR                  UR                  5        g )N     P@g     @)r   copyr/   rT   rU   r   v_copy0v_copy1s      r   testCopyVector2TypeTest.testCopy   sI    &&),,.GII.GII.r"   c                 ,   [        SS5      n[        SS5      n[        SS5      n[        SS5      nUR                  US5      nUR                  US5        U R                  [	        UR
                  S5      UR
                  5        U R                  [	        UR                  S5      UR                  5        U R                  [	        UR
                  S5      UR
                  5        U R                  [	        UR                  S5      UR                  5        g )	Ng)\( @gGz[@zG@r   皙(@     @r&   rc   r   move_towardsmove_towards_ipr/   r   rT   rU   r   expectedorigintarget	change_ipchanges         r   test_move_towards_basic'Vector2TypeTest.test_move_towards_basic   s    4)v&'D&)	$$VQ/!!&!,vxx+XZZ8vxx+XZZ8y{{A.

;y{{A.

;r"   c                 ,   [        SS5      n[        SS5      n[        SS5      n[        SS5      nUR                  US5      nUR                  US5        U R                  [	        UR
                  S5      UR
                  5        U R                  [	        UR                  S5      UR                  5        U R                  [	        UR
                  S5      UR
                  5        U R                  [	        UR                  S5      UR                  5        g )Nr     r   r   r      rc   r   r   s         r   test_move_towards_max_distance.Vector2TypeTest.test_move_towards_max_distance   s    5$'v&'D&)	$$VR0!!&"-vxx+XZZ8vxx+XZZ8y{{A.

;y{{A.

;r"   c                 ,   [        SS5      n[        SS5      n[        SS5      n[        SS5      nUR                  US5      nUR                  US5        U R                  [	        UR
                  S5      UR
                  5        U R                  [	        UR                  S5      UR                  5        U R                  [	        UR
                  S5      UR
                  5        U R                  [	        UR                  S5      UR                  5        g )Nr   r   r   r   r   rc   r   r   s         r   test_move_nowhere!Vector2TypeTest.test_move_nowhere  s    4(v&'D&)	$$VQ/!!&!,vxx+XZZ8vxx+XZZ8y{{A.

;y{{A.

;r"   c                 ,   [        SS5      n[        SS5      n[        SS5      n[        SS5      nUR                  US5      nUR                  US5        U R                  [	        UR
                  S5      UR
                  5        U R                  [	        UR                  S5      UR                  5        U R                  [	        UR
                  S5      UR
                  5        U R                  [	        UR                  S5      UR                  5        g )	Nq=
ףp@QD@r   r   r   r   rc   r   r   s         r   test_move_awayVector2TypeTest.test_move_away  s    4)v&'D&)	$$VR0!!&"-vxx+XZZ8vxx+XZZ8y{{A.

;y{{A.

;r"   c                     [        SS5      nUR                  5       nS HF  nU R                  UR                  X#5      U5        UR	                  X5        U R                  X5        MH     g )Nr   r   gRQr   r   gʡE?r
   )r   r   r/   r   r   r   vecvec2dists       r   test_move_towards_self&Vector2TypeTest.test_move_towards_self$  sZ    dG$xxz-DS--d93?  +S' .r"   c                 0   S nS nS nS nS nS nU R                  [        U5        U R                  [        U5        U R                  [        U5        U R                  [        U5        U R                  [        U5        U R                  [        U5        g )Nc                  Z    [        SS5      n [        SS5      nU R                  USS5        g Nr   r   r   r   r&   rc   r   r   r   r   s     r   overpopulate>Vector2TypeTest.test_move_towards_errors.<locals>.overpopulate-  s,    T6*FUF+F1-r"   c                  Z    [        SS5      n [        SS5      nU R                  USS5        g r   r   r   r   s     r   overpopulate_ipAVector2TypeTest.test_move_towards_errors.<locals>.overpopulate_ip2  s,    T6*FUF+F""61a0r"   c                  X    [        SS5      n [        SS5      nU R                  US5        g )Nr   r   r   r   novialr   r   s     r   invalid_types1@Vector2TypeTest.test_move_towards_errors.<locals>.invalid_types17  s*    T6*FUF+F1r"   c                  X    [        SS5      n [        SS5      nU R                  US5        g )Nr   r   r   r   isr   r   s     r   invalid_types_ip1CVector2TypeTest.test_move_towards_errors.<locals>.invalid_types_ip1<  s*    T6*FUF+F""640r"   c                  X    [        SS5      n [        SS5      nU R                  SS5        g )Nr   r   r   r   kindar&   r   r   s     r   invalid_types2@Vector2TypeTest.test_move_towards_errors.<locals>.invalid_types2A  s*    T6*FUF+F+r"   c                  X    [        SS5      n [        SS5      nU R                  SS5        g )Nr   r   r   r   coolr&   r   r   s     r   invalid_types_ip2CVector2TypeTest.test_move_towards_errors.<locals>.invalid_types_ip2F  s*    T6*FUF+F""61-r"   )r   r   )r   r   r   r   r   r   r   s          r   test_move_towards_errors(Vector2TypeTest.test_move_towards_errors,  s    	.
	1
	2
	1
	,
	.
 	)\2)_5)^4)%67)^4)%67r"   c                   ^ [        SS5      m[        5       S S    U R                  [        T5      S5        U R                  TS   S5        U R                  TS   S5        U R                  [        U4S j5        U R                  TS   S5        U R                  TS   S5        U R                  [        U4S	 j5        U R                  TS S  SS/5        U R                  TSS  S/5        U R                  TS S S/5        U R                  [        T5      SS/5        U R                  [        T5      S
5        STS'   STS'   U R                  TR                  S5        U R                  TR                  S5        SS/TS S & U R                  TR                  S5        U R                  TR                  S5        S nU R                  [        U5        S nU R                  [        U5        S nU R                  [        U5        g )Nr>   r?   rc   r   r   c                     > T S   $ Nrc   r2   r{   s   r   <lambda>.Vector2TypeTest.testSequence.<locals>.<lambda>X  	    adr"   r   c                     > T S   $ )Nr   r2   r{   s   r   r   r   [  	    aer"   r=   r@   rA   333333"@=
ףp=&@c                  &    [        5       n / SQU S S & g Nr   rc   r&   r   r{   s    r   r   2Vector2TypeTest.testSequence.<locals>.overpopulatei  s    	AAaDr"   c                  $    [        5       n S/U S S & g Nr   r   r{   s    r   underpopulate3Vector2TypeTest.testSequence.<locals>.underpopulateo      	A3AaDr"   c                  "    [        5       n SU S'   g Nry   r   r   r{   s    r   r|   5Vector2TypeTest.testSequence.<locals>.assign_nonfloatu      	AAaDr"   )r   r/   lenr   
IndexErrorrF   tuplerT   rU   r   r   r   r   r   r|   rW   s       @r   testSequenceVector2TypeTest.testSequenceR  s   C	!Q#1s#1s#*l32$2$*m41Sz*12&2A&a3*-q:.!!c"c"U|!c"e$	 	*l3	 	*m4	 	)_5r"   c                    S	S jn[        U R                  5      nU R                  [        XS S S5        U R                  [        XSS S5        U R                  [        XSSS5        [        U R                  5      nS/US S S2'   U R	                  USU R                  R
                  /5        [        U R                  5      nS/US S S2'   U R	                  X R                  R                  S/5        [        U R                  5      nX"S S S2'   U R	                  X R                  R
                  U R                  R                  /5        [        U R                  5      n[        U R                  5      n[        U R                  5      nS/USS& S/U[        SS5      '   SUSS& U R	                  X45        U R	                  X55        U R	                  [        U5      [        U R                  5      5        U R	                  [        U5      [        U R                  5      5        U R	                  [        U5      [        U R                  5      5        g )
Nc                 b    Ub  Ub  Ub  XX#2	 g Ub  Uc	  Ub  XS U2	 g Uc  Uc  Ub  U S S U2	 g g g g Nr2   r   startstopsteps       r   delSlice5Vector2TypeTest.testExtendedSlicing.<locals>.delSlice}  Z     T%5$:Jd("t|8Ht$4<D4D$K 5E<r"   rc   r   r   r   r   皙@r  NNN)	r   rH   r   r   r/   rU   rT   slicer   r   r   rW   r   bcs         r   testExtendedSlicing#Vector2TypeTest.testExtendedSlicing{  s   	  DGG)X$a@)X!T1=)X!Q: DGG#A#RO,DGG$$B$WWYYO,DGG$B$WWYY		23DGGDGGDGG!A%1+!Aa$tww-0a$tww-0a$tww-0r"   c                 ~  ^ [        SS5      mU R                  TR                  S5      5        U R                  ST;   5        U R                  ST;   5        U R                  ST;  5        U R                  TR                  S5      5        U R	                  [
        U4S j5        U R	                  [
        U4S j5        g )Nr   r   rc   c                     > ST ;   $ Nstringr2   r  s   r   r   /Vector2TypeTest.test_contains.<locals>.<lambda>  	    X]r"   c                     > ST ;   $ Ny      @      @r2   r  s   r   r   r    	    Vq[r"   )r   
assertTrue__contains__assertFalser   r   r   r  s    @r   test_containsVector2TypeTest.test_contains  s    AqM 	q)*QQ
#*+)%:;)%89r"   c                    U R                   U R                  -   nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                   R                  U R                  R                  -   5        U R                  UR                  U R                   R                  U R                  R                  -   5        U R                   U R                  -   nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                   R                  U R                  S   -   5        U R                  UR                  U R                   R                  U R                  S   -   5        U R                   U R                  -   nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                   R                  U R                  S   -   5        U R                  UR                  U R                   R                  U R                  S   -   5        U R                  U R                  -   nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                  S   U R                  R                  -   5        U R                  UR                  U R                  S   U R                  R                  -   5        U R                  U R                  -   nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                  S   U R                  R                  -   5        U R                  UR                  U R                  S   U R                  R                  -   5        g Nr   r   rH   rK   r  
isinstancer   r/   rT   rU   rI   rJ   rE   rG   r   v3s     r   testAddVector2TypeTest.testAdd  }   WWtww
2tDGG}56twwyy4779945twwyy4779945WWtww
2tDGG}56twwyy4771:56twwyy4771:56WWtww
2tDGG}56twwyy4771:56twwyy4771:56WWtww
2tDGG}56twwqzDGGII56twwqzDGGII56WWtww
2tDGG}56twwqzDGGII56twwqzDGGII56r"   c                    U R                   U R                  -
  nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                   R                  U R                  R                  -
  5        U R                  UR                  U R                   R                  U R                  R                  -
  5        U R                   U R                  -
  nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                   R                  U R                  S   -
  5        U R                  UR                  U R                   R                  U R                  S   -
  5        U R                   U R                  -
  nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                   R                  U R                  S   -
  5        U R                  UR                  U R                   R                  U R                  S   -
  5        U R                  U R                  -
  nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                  S   U R                  R                  -
  5        U R                  UR                  U R                  S   U R                  R                  -
  5        U R                  U R                  -
  nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                  S   U R                  R                  -
  5        U R                  UR                  U R                  S   U R                  R                  -
  5        g r  r  r  s     r   testSubVector2TypeTest.testSub  r#  r"   c                    U R                   U R                  -  nU R                  [        U[	        U R                  5      5      5        U R                  UR                  U R                   U R                  R                  -  5        U R                  UR                  U R                   U R                  R                  -  5        U R                  U R                  -  nU R                  UR                  U R                  R                  U R                  -  5        U R                  UR                  U R                  R                  U R                  -  5        g r   )	rL   rH   r  r  r   r/   rT   rU   rM   rV   s     r   testScalarMultiplication(Vector2TypeTest.testScalarMultiplication  s    GGdgg
1d477m45dgg		12dgg		12GGdggdggii$''12dggii$''12r"   c                    U R                   U R                  -  nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                   R                  U R                  -  5        U R                  UR                  U R                   R                  U R                  -  5        U R                   U R                  -  nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                   R                  U R                  -  5        U R                  UR                  U R                   R                  U R                  -  5        g r   )
rH   rL   r  r  r   r   rT   rU   rM   r/   rV   s     r   testScalarDivision"Vector2TypeTest.testScalarDivision  s    GGdgg
1d477m45qssDGGII$78qssDGGII$78GGtww
1d477m45dggii47723dggii47723r"   c                    U R                  [        U R                  5      S5        U R                  [        U R                  5      S5        U R	                  U R                  (       + 5        U R	                  U R                  5        g NFTr/   boolrB   rH   r  rN   s    r   testBoolVector2TypeTest.testBool  V    dll+U3dgg-DLL() r"   c                 ,   U R                   7nU R                  [        U[        U R                   5      5      5        U R	                  UR
                  U R                   R
                  5        U R	                  UR                  U R                   R                  5        U R                  [        U5      [        U R                   5      5        U R                   * nU R                  [        U[        U R                   5      5      5        U R	                  UR
                  U R                   R
                  * 5        U R	                  UR                  U R                   R                  * 5        U R                  [        U5      [        U R                   5      5        g r   )	rH   r  r  r   r/   rT   rU   assertNotEqualidrV   s     r   	testUnaryVector2TypeTest.testUnary  s    WWH
1d477m45dggii(dggii(BqE2dgg;/WWH
1d477m45twwyyj)twwyyj)BqE2dgg;/r"   c                 L   [        SS5      n[        SS5      n[        SS5      nU R                  X:H  S5        U R                  X:g  S5        U R                  X:g  S5        U R                  X#:H  S5        U R                  US:H  S5        U R                  US:g  S5        U R                  USS/:g  S5        U R                  USS/:H  S5        U R                  US	:g  S5        U R                  US	:H  S5        U R                  U/ S
Q:g  S5        U R                  U/ S
Q:H  S5        g )Nr&   r         @       r   TF)r&   r   r$   )r&   r   r   )r   r/   r   int_vecflt_veczero_vecs       r   testCompareVector2TypeTest.testCompare  s   !R.#t$1a=+T2+U3,d3,e4G+T2G+U3QF*D1QF*E2At,Au-J.5J.6r"   c                 R    [        SS5      nU R                  [        U5      S5        g )Nr>   r?   z
[1.2, 3.4])r   r/   r   rV   s     r   testStrVector2TypeTest.testStr  s"    CQ.r"   c                     [        SS5      nU R                  UR                  5       S5        U R                  U[        UR                  5       5      5        g )Nr>   r?   z<Vector2(1.2, 3.4)>)r   r/   __repr__rV   s     r   testReprVector2TypeTest.testRepr  s@    C'<=GAJJL12r"   c                 \  ^ U R                   R                  5       nUR                  mU R                  T" 5       U R                   S   5        U R                  T" 5       U R                   S   5        U R	                  [
        U4S j5        U R                   R                  5       nU R                   R                  5       nU R                  [        U5      [        U5      5        U R                  [        U5      [        UR                  5       5      5        U R                  [        U5      [        U5      5        U R                  [        U R                   R                  5       5      U R                  5        SnU R                    H&  nU R                  XPR                   U   5        US-  nM(     g )Nr   r   c                     > T " 5       $ r   r2   next_s   r   r   *Vector2TypeTest.testIter.<locals>.<lambda>      r"   
rH   __iter____next__r/   r   StopIterationr5  r6  rF   rG   r   itit1it2idxvalrL  s         @r   testIterVector2TypeTest.testIter  s-   WW$''!*-$''!*--9gg gg BsGRW-C"S\\^"45cDI.dgg..01477;77CS''#,/1HC r"   c                 `   [        SS5      nUR                  S5      nUR                  S5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        [        SS5      nUR                  S5      nU R                  UR                  S5        U R                  UR                  S5        UR                  S5      nU R                  UR                  UR                  5        U R                  UR                  UR                  5        UR                  S5      nU R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  [        SS5      R                  S5      [        SS5      5        g )	Nr   r   Z     r   h  gPv@)r   rotater/   rT   rU   r   rH   rK   r   s       r   test_rotateVector2TypeTest.test_rotate)  s   Q]YYr]YYx q!q!q!q!rtt$rtt$R_YYs^r"q!YYs^rtt$rtt$YYq\rtt$rtt$A--l;WQ]Kr"   c                 b   S[         R                  4S[         R                  S-  4S[         R                  * S-  4S[         R                  S-  44nU HY  u  p#U R                  [        U5      R	                  U5      [         R
                  " U5      [         R                  " U5      45        M[     g Nr   r   rc      )r   pir/   r   
rotate_radcossin)r   tests
initialVecradianss       r   test_rotate_radVector2TypeTest.test_rotate_rad@  s    TWWTWWq[!dggX\"TWWq[!	
 $)J
#..w7'"DHHW$56 $)r"   c                 x   [        SS5      nU R                  UR                  S5      S 5        U R                  UR                  S5        U R                  UR                  S5        [        SS5      nUR                  S5        U R                  UR                  S5        U R                  UR                  S5        g Nr   r   r\  r   r^  )r   r/   	rotate_iprT   rU   rV   s     r   test_rotate_ipVector2TypeTest.test_rotate_ipM  s    AqMR$/a a BO	Cb!a r"   c                 j   S[         R                  4S[         R                  S-  4S[         R                  * S-  4S[         R                  S-  44nU H]  u  p#[        U5      nUR                  U5        U R	                  U[         R
                  " U5      [         R                  " U5      45        M_     g re  )r   rh  r   rotate_rad_ipr/   rj  rk  )r   rl  rm  rn  r   s        r   test_rotate_rad_ip"Vector2TypeTest.test_rotate_rad_ipW  s    TWWTWWq[!dggX\"TWWq[!	
 $)J*%Cg&S488G#4dhhw6G"HI $)r"   c                 n  ^  T R                   R                  5       nT R                  UR                  UR                  -  UR                  UR                  -  -   S5        T R                  T R                   R                  T R                  S   5        T R                  T R                   R                  T R                  S   5        T R                  T R                   R                  UR                  -  T R                   R                  UR                  -  -
  S5        T R                  [        U 4S j5        g )Nr   r   r   r   c                  8   > T R                   R                  5       $ r   rB   	normalizerN   s   r   r   0Vector2TypeTest.test_normalize.<locals>.<lambda>l      dll.D.D.Fr"   )	rH   r}  r   rT   rU   r/   rG   r   r   rV   s   ` r   test_normalizeVector2TypeTest.test_normalizec  s    GGqssQSSy13394c:DGGAJ/DGGAJ/twwyy133QSS@#F*&FGr"   c                 N  ^  T R                   7nT R                  UR                  UR                  -  UR                  UR                  -  -   S5        T R	                  UR                  5       S 5        T R                  UR                  UR                  -  UR                  UR                  -  -   S5        T R                  T R                   R                  UR                  -  T R                   R                  UR                  -  -
  S5        T R                  [        U 4S j5        g )Nr   r   c                  8   > T R                   R                  5       $ r   rB   normalize_iprN   s   r   r   3Vector2TypeTest.test_normalize_ip.<locals>.<lambda>x      dll.G.G.Ir"   )	rH   r5  rT   rU   r/   r  r   r   r   rV   s   ` r   test_normalize_ip!Vector2TypeTest.test_normalize_ipn  s    WWHACC!##Iacc	137)40qssQSSy13394c:twwyy133QSS@#F*&IJr"   c                 t   U R                  U R                  R                  5       S5        U R                  R                  5       nU R                  UR                  5       S5        U R                  U R                  R                  5       S5        U R                  U R
                  R                  5       S5        g r.  r/   rH   is_normalizedr}  rD   rB   rV   s     r   test_is_normalized"Vector2TypeTest.test_is_normalizedz      ..0%8GG*D1..0$7335u=r"   c                 <   U R                  U R                  R                  U R                  5      U R                  R                  U R                  R
                  -  U R                  R
                  U R                  R                  -  -
  5        U R                  U R                  R                  U R                  5      U R                  R                  U R                  S   -  U R                  R
                  U R                  S   -  -
  5        U R                  U R                  R                  U R                  5      U R                  R                  U R                  S   -  U R                  R
                  U R                  S   -  -
  5        U R                  U R                  R                  U R                  5      U R                  R                  U R                  5      * 5        U R                  U R                  R                  U R                  5      S5        g Nr   r   )r/   rH   crossrK   rT   rU   rJ   rI   rN   s    r   
test_crossVector2TypeTest.test_cross  sY   GGMM$''"DGGII		$9DGGII		<Q$Q	
 	GGMM$''"DGGII
$:TWWYYQR=S$S	
 	GGMM$''"DGGII
$:TWWYYQR=S$S	
 	tww/$''--2H1HItww/3r"   c                 h   U R                  U R                  R                  U R                  5      U R                  R                  U R                  R                  -  U R                  R
                  U R                  R
                  -  -   5        U R                  U R                  R                  U R                  5      U R                  R                  U R                  S   -  U R                  R
                  U R                  S   -  -   5        U R                  U R                  R                  U R                  5      U R                  R                  U R                  S   -  U R                  R
                  U R                  S   -  -   5        U R                  U R                  R                  U R                  5      U R                  R                  U R                  5      5        U R                  U R                  R                  U R                  5      U R                  U R                  -  5        g r  )	r   rH   dotrK   rT   rU   rJ   rI   r/   rN   s    r   test_dotVector2TypeTest.test_dot  sa   GGKK $''))dggii"7$''))dggii:O"O	
 	GGKK $''))dggaj"847799twwqz;Q"Q	
 	GGKK $''))dggaj"847799twwqz;Q"Q	
 	TWW-tww{{477/CDTWW-tww/@Ar"   c                 V   U R                  U R                  R                  U R                  R                  U R                  5      5      R                  5       U R                  R                  5       5        U R                  [        SS5      R                  S5      S5        U R                  [        SS5      R                  S5      S5        U R                  [        SS5      R                  S5      S5        U R                  [        [        SS5      R                  S5      5      S	5        g )
Nr   )r   r   r\  r   )r   r   r^     )r   r      )r/   rH   r`  angle_torK   r}  r   absrN   s    r   test_angle_toVector2TypeTest.test_angle_to  s    GGNN477++DGG45??A477CTCTCV	
 	A//8"=A//8#>A//8#>WQ]33G<=sCr"   c                 T  ^  [        SS5      nUR                  S5        T R                  U[        SS5      [        R                  " S5      -  5        T R                  [        U 4S j5        T R                  UR                  S5      S 5        T R                  UT R                  5        g )Nr   r*   rc   c                  :   > T R                   R                  S5      $ r   rB   scale_to_lengthrN   s   r   r   6Vector2TypeTest.test_scale_to_length.<locals>.<lambda>      dll.J.J1.Mr"   r   )r   r  r/   r   sqrtr   r   rB   rV   s   ` r   test_scale_to_length$Vector2TypeTest.test_scale_to_length  s    AqM	#GC-		!<=*&MN**1-t4DLL)r"   c                     U R                  [        SS5      R                  5       S5        U R                  [        SS5      R                  5       S5        U R                  U R                  R                  5       S5        g )Nr&   rg  r$   r   r   )r/   r   lengthrB   rN   s    r   test_lengthVector2TypeTest.test_length  s]    A--/3Q..0!4,,.2r"   c                     U R                  [        SS5      R                  5       S5        U R                  [        SS5      R                  5       S5        U R                  U R                  R                  5       S5        g )Nr&   rg  r   r   r   )r/   r   length_squaredrB   rN   s    r   test_length_squared#Vector2TypeTest.test_length_squared  s]    A557<Q668"=446:r"   c                 p  ^ ^ [        SS5      m[        SS5      nT R                  TR                  U5      [        SS5      5        T R                  TR                  SU-  5      TR                  U5      5        T R                  TR                  T* 5      T* 5        T R                  [        U U4S j5        g )Nr   r   r   r&   c                  :   > TR                  T R                  5      $ r   reflectrB   rV   s   r   r   .Vector2TypeTest.test_reflect.<locals>.<lambda>      aii.Er"   )r   r/   r  r   r   r   nrW   s   ` @r   test_reflectVector2TypeTest.test_reflect  s    ArNAqM1wq!}51q5)199Q<8A2+*&EFr"   c                   ^ [        SS5      n[        U5      m[        SS5      nU R                  TR                  U5      S 5        U R                  T[        SS5      5        [        U5      mTR                  SU-  5        U R                  TUR                  U5      5        [        U5      mTR                  U* 5        U R                  TU* 5        U R	                  [
        U4S j5        g )Nr   r   r   r&   c                  6   > T R                  [        5       5      $ r   )
reflect_ipr   )rK   s   r   r   1Vector2TypeTest.test_reflect_ip.<locals>.<lambda>  s    bmmGI.Fr"   )r   r/   r  r  r   r   r   rH   r  rK   s      @r   test_reflect_ipVector2TypeTest.test_reflect_ip  s    Q^R[AqMq)40WQ]+R[
a!eRZZ]+R[
rcbS!*&FGr"   c                    U R                   U R                  -
  nU R                  U R                  R	                  U R
                  5      [        R                  " S5      5        U R                  U R                  R	                  S5      [        R                  " S5      5        U R                  U R                  R	                  SS/5      [        R                  " S5      5        U R                  U R                   R	                  U R                  5      [        R                  " UR                  UR                  -  UR                  UR                  -  -   5      5        U R                  U R                   R	                  U R                  5      [        R                  " UR                  UR                  -  UR                  UR                  -  -   5      5        U R                  U R                   R	                  U R                  5      [        R                  " UR                  UR                  -  UR                  UR                  -  -   5      5        U R                  U R                   R	                  U R                   5      S5        U R                  U R                   R	                  U R                  5      S5        U R                  U R                   R	                  U R                  5      S5        U R                  U R                   R	                  U R                  5      U R                  R	                  U R                  5      5        U R                  U R                   R	                  U R                  5      U R                  R	                  U R                  5      5        U R                  U R                   R	                  U R                  5      U R                  R	                  U R                   5      5        g Nrc   )r   r   r   r   )rH   rK   r/   rC   distance_torD   r   r  r   rT   rU   rI   rJ   rE   rG   r   diffs     r   test_distance_to Vector2TypeTest.test_distance_to  s   ww ,,TWW5tyy|D,,V4diilC,,aV4diilCGG($))DFFTVVOdfftvvo4U*V	
 	GG($))DFFTVVOdfftvvo4U*V	
 	GG($))DFFTVVOdfftvvo4U*V	
 	,,TWW5q9,,TWW5q9,,TWW5q9,,TWW5tww7J7J4777ST,,TWW5tww7J7J4777ST,,TWW5tww7J7J4777STr"   c                    U R                   U R                  -
  nU R                  U R                  R	                  U R
                  5      S5        U R                  U R                  R	                  S5      S5        U R                  U R                  R	                  SS/5      S5        U R                  U R                   R	                  U R                  5      UR                  UR                  -  UR                  UR                  -  -   5        U R                  U R                   R	                  U R                  5      UR                  UR                  -  UR                  UR                  -  -   5        U R                  U R                   R	                  U R                  5      UR                  UR                  -  UR                  UR                  -  -   5        U R                  U R                   R	                  U R                   5      S5        U R                  U R                   R	                  U R                  5      S5        U R                  U R                   R	                  U R                  5      S5        U R                  U R                   R	                  U R                  5      U R                  R	                  U R                   5      5        U R                  U R                   R	                  U R                  5      U R                  R	                  U R                  5      5        U R                  U R                   R	                  U R                  5      U R                  R	                  U R                  5      5        g r  )rH   rK   r/   rC   distance_squared_torD   r   rT   rU   rI   rJ   rE   rG   r  s     r   test_distance_squared_to(Vector2TypeTest.test_distance_squared_to  s`   ww 44TWW=qA44V<a@44aV<a@GG''0$&&466/DFFTVVO2S	
 	GG''0$&&466/DFFTVVO2S	
 	GG''0$&&466/DFFTVVO2S	
 	44TWW=qA44TWW=qA44TWW=qAGG''0$''2M2Mdgg2V	
 	GG''0$''2M2Mdgg2V	
 	GG''0$''2M2Mdgg2V	
r"   c                 (   [        SS5      nUR                  S5        U R                  U[        S5      5        UR                  SS5        U R                  U[        SS5      5        UR                  S5        U R                  U[        S5      5        g )	Nr&   rg  r   )r   r   r$   r   )rg  r   )r$   r   )r   updater/   r5  rV   s     r   test_updateVector2TypeTest.test_update  so    AqM	GFO,	AGAqM*	Awv/r"   c           	      .   U R                  U R                  R                  U R                  R                  U R                  R                  45        U R                  U R                  R
                  U R                  R                  U R                  R                  U R                  R                  U R                  R                  U R                  R                  U R                  R                  45        U R                  U R                  l        U R                  U R                  U R                  5        U R                  U R                  l        U R                  U R                  U R                  S   U R                  S   45        U R                  [        U R                  5      [        5        S nS nU R                  [        U5        U R                  [        U5        S nU R                  [        U5        S nU R                  [        U5        g )Nr   r   c                  "    S[        5       l        g Nr   rc   )r   xxr2   r"   r   invalidSwizzleX5Vector2TypeTest.test_swizzle.<locals>.invalidSwizzleX      !GILr"   c                  "    S[        5       l        g r  )r   yyr2   r"   r   invalidSwizzleY5Vector2TypeTest.test_swizzle.<locals>.invalidSwizzleY  r  r"   c                  "    S[        5       l        g Nr&   )r   xyr2   r"   r   invalidAssignment7Vector2TypeTest.test_swizzle.<locals>.invalidAssignment      GILr"   c                  ,    [        [        5       S5        g )N   ä)getattrr   r2   r"   r   unicodeAttribute6Vector2TypeTest.test_swizzle.<locals>.unicodeAttribute  s    GIt$r"   )r/   rH   yxrU   rT   xxyyxyrI   r  r   r   r   AttributeErrorr   )r   r  r  r  r  s        r   test_swizzleVector2TypeTest.test_swizzle  s]   dggii%;<GGNNWWYY		47799dggiiDGGIIN	
 WW
$''*WW
4771:twwqz":;dgg0	"	" 	./:./:	 	)%67	% 	.*:;r"   c                    U R                  [        U R                  R                  5      [        5        U R                  [        U R                  R
                  5      [        5        U R                  [        U R                  R                  5      [        5        U R                  [        U R                  R                  5      [        5        U R                  [        U R                  R                  5      [        5        g r   )r/   r   rH   rT   floatr  r   xyxr   xyxyr   xyxyxrN   s    r   test_swizzle_return_types)Vector2TypeTest.test_swizzle_return_types$      dggii%0dggjj)73dggkk*G4dggll+U3dggmm,e4r"   c                 ,  ^  T R                   nT R                  nT R                  nT R                  nT R	                  UR                  5       U-   UR                  U-   UR                  U-   45        T R	                  UR                  5       U-
  UR                  U-
  UR                  U-
  45        T R	                  UR                  5       U-  UR                  U-  UR                  U-  45        T R	                  UR                  5       U-  UR                  U-  UR                  U-  45        T R	                  UR                  5       U-  UR                  U-  UR                  U-  45        T R	                  UR                  5       U-  UR                  U-  UR                  U-  45        T R	                  UR                  5       U-  UR                  U-  UR                  U-  45        T R	                  UR                  5       U:  UR                  U:  =(       a    UR                  U:  5        T R	                  UR                  5       U:  UR                  U:  =(       a    UR                  U:  5        T R	                  UR                  5       U:H  UR                  U:H  =(       a    UR                  U:H  5        T R	                  UR                  5       U:g  X1R                  UR                  4;  5        T R	                  UR                  5       U:  UR                  U:  =(       a    UR                  U:  5        T R	                  UR                  5       U:*  UR                  U:*  =(       a    UR                  U:*  5        T R	                  UR                  5       U:g  X1R                  UR                  4;  5        T R	                  X1R                  5       -   X1R                  -   X1R                  -   45        T R	                  X1R                  5       -
  X1R                  -
  X1R                  -
  45        T R	                  X1R                  5       -  X1R                  -  X1R                  -  45        T R	                  X1R                  5       -  X1R                  -  X1R                  -  45        T R	                  X1R                  5       -  X1R                  -  X1R                  -  45        T R	                  X1R                  5       -  X1R                  -  X1R                  -  45        T R	                  X1R                  5       -  X1R                  -  X1R                  -  45        T R	                  X1R                  5       :  X1R                  :  =(       a    X1R                  :  5        T R	                  X1R                  5       :  X1R                  :  =(       a    X1R                  :  5        T R	                  X1R                  5       :H  X1R                  :H  =(       a    X1R                  :H  5        T R	                  X1R                  5       :g  X1R                  UR                  4;  5        T R	                  X1R                  5       :*  X1R                  :*  =(       a    X1R                  :*  5        T R	                  X1R                  5       :  X1R                  :  =(       a    X1R                  :  5        T R	                  X1R                  5       :g  X1R                  UR                  4;  5        T R	                  [        UR                  5       U-  5      [        U5      5        T R	                  UR                  5       U-   X-   5        T R	                  UR                  5       U-
  X-
  5        T R	                  UR                  5       U-  UR                  UR                  -  UR                  UR                  -  45        T R	                  UR                  5       U-  UR                  UR                  -  UR                  UR                  -  45        T R	                  UR                  5       U-  UR                  UR                  -  UR                  UR                  -  45        T R	                  UR                  5       U-  UR                  UR                  -  UR                  UR                  -  45        T R	                  UR                  5       U-  UR                  UR                  -  UR                  UR                  -  45        T R	                  UR                  5       U:  UR                  UR                  :  =(       a    UR                  UR                  :  5        T R	                  UR                  5       U:  UR                  UR                  :  =(       a    UR                  UR                  :  5        T R	                  UR                  5       U:  UR                  UR                  :  =(       a    UR                  UR                  :  5        T R	                  UR                  5       U:*  UR                  UR                  :*  =(       a    UR                  UR                  :*  5        T R	                  UR                  5       U:H  UR                  UR                  :H  =(       a    UR                  UR                  :H  5        T R	                  UR                  5       U:g  UR                  UR                  :g  =(       a    UR                  UR                  :g  5        T R	                  X!R                  5       -   X!-   5        T R	                  X!R                  5       -
  X!-
  5        T R	                  X!R                  5       -  UR                  UR                  -  UR                  UR                  -  45        T R	                  X!R                  5       -  UR                  UR                  -  UR                  UR                  -  45        T R	                  X!R                  5       -  UR                  UR                  -  UR                  UR                  -  45        T R	                  X!R                  5       -  UR                  UR                  -  UR                  UR                  -  45        T R	                  X!R                  5       -  UR                  UR                  -  UR                  UR                  -  45        T R	                  X!R                  5       :  UR                  UR                  :  =(       a    UR                  UR                  :  5        T R	                  X!R                  5       :  UR                  UR                  :  =(       a    UR                  UR                  :  5        T R	                  X!R                  5       :*  UR                  UR                  :*  =(       a    UR                  UR                  :*  5        T R	                  X!R                  5       :  UR                  UR                  :  =(       a    UR                  UR                  :  5        T R	                  X!R                  5       :H  UR                  UR                  :H  =(       a    UR                  UR                  :H  5        T R	                  X!R                  5       :g  UR                  UR                  :g  =(       a    UR                  UR                  :g  5        T R	                  UR                  5       UR                  5       -   X!-   5        T R	                  UR                  5       UR                  5       -
  X!-
  5        T R	                  UR                  5       UR                  5       -  UR                  UR                  -  UR                  UR                  -  45        T R	                  UR                  5       UR                  5       -  UR                  UR                  -  UR                  UR                  -  45        T R	                  UR                  5       UR                  5       -  UR                  UR                  -  UR                  UR                  -  45        T R	                  UR                  5       UR                  5       -  UR                  UR                  -  UR                  UR                  -  45        T R	                  UR                  5       UR                  5       -  UR                  UR                  -  UR                  UR                  -  45        T R	                  UR                  5       UR                  5       :  UR                  UR                  :  =(       a    UR                  UR                  :  5        T R	                  UR                  5       UR                  5       :  UR                  UR                  :  =(       a    UR                  UR                  :  5        T R	                  UR                  5       UR                  5       :*  UR                  UR                  :*  =(       a    UR                  UR                  :*  5        T R	                  UR                  5       UR                  5       :  UR                  UR                  :  =(       a    UR                  UR                  :  5        T R	                  UR                  5       UR                  5       :H  UR                  UR                  :H  =(       a    UR                  UR                  :H  5        T R	                  UR                  5       UR                  5       :g  UR                  UR                  :g  =(       a    UR                  UR                  :g  5        T R	                  [        UR                  5       5      [        UR                  5      [        UR                  5      45        T R	                  UR                  5       * U* 5        T R	                  UR                  5       7U75        T R	                  [        UR                  5       5      [        U5      5        T R	                  [        [        5       R                  5       5      [        [        5       5      5        T R	                  T R                  R                  5       S-  S5        T R                  [        S 5        T R                  [        U 4S j5        T R                  [        U 4S j5        T R                  [        S 5        T R                  [        S 5        T R                  [        S 5        T R                  [        U 4S	 j5        T R                  [        U 4S
 j5        T R                  [        U 4S j5        T R                  [        U 4S j5        T R                  [        U 4S j5        T R                  [        U 4S j5        g )Nr   r   r   c                  J    [        [        SS5      R                  5       S5      $ Nr   r   r>   )powr   elementwiser2   r"   r   r   2Vector2TypeTest.test_elementwise.<locals>.<lambda>  s    c'"a.2L2L2NPS.Tr"   c                  >   > T R                   R                  5       S-  $ Nr   rB   r  rN   s   r   r   r        T\\5M5M5OSU5Ur"   c                  >   > T R                   R                  5       S-  $ r  r  rN   s   r   r   r    r  r"   c                  <    [        SS5      R                  5       S-  $ r  r   r  r2   r"   r   r   r        WQ]5N5N5PST5Tr"   c                  <    [        SS5      R                  5       S-  $ r  r  r2   r"   r   r   r    s    WQ]5N5N5PTU5Ur"   c                  <    [        SS5      R                  5       S-  $ r  r  r2   r"   r   r   r    r  r"   c                  R   > [        SS5      R                  5       T R                  -  $ r   r   r  rB   rN   s   r   r   r        wq!}'@'@'BT\\'Qr"   c                  R   > [        SS5      R                  5       T R                  -  $ r   r  rN   s   r   r   r    s    wq!}'@'@'Bdll'Rr"   c                  R   > [        SS5      R                  5       T R                  -  $ r   r  rN   s   r   r   r    r  r"   c                  >   > ST R                   R                  5       -  $ r   r  rN   s   r   r   r        Q9Q9Q9S5Sr"   c                  >   > ST R                   R                  5       -  $ r   r  rN   s   r   r   r        Q$,,:R:R:T5Tr"   c                  >   > ST R                   R                  5       -  $ r   r  rN   s   r   r   r    r  r"   )rH   rK   rL   rM   r/   r  rT   rU   r   r  r0  r   rB   r   r   ZeroDivisionError)r   rH   rK   rL   rM   s   `    r   test_elementwise Vector2TypeTest.test_elementwise,  s   WWWWWWWW)B.BDD2I0FG)B.BDD2I0FG)B.BDD2I0FG)B.BDD2I0FG)R/"$$"*bddbj1IJ)R/"$$(BDD"H1EF)B.BDD2I0FG)B.r	0GbddRiH)B.r	0GbddRiH)R/1J
K)R/DD"$$<1GH)R/1J
K)R/1J
K)R/DD"$$<1GHnn..ddBI0FGnn..ddBI0FGnn..ddBI0FGnn..ddBI0FG~~//"*bDDj1IJ~~//"dd(BH1EFnn..ddBI0FGnn..TT	0Gb44iHnn..TT	0Gb44iH~~//tt1Jdd
K~~//DD"$$<1GH~~//tt1Jdd
K~~//tt1Jdd
K~~//DD"$$<1GH 	bnn.34d2h?)B.8)B.8)B.bddRTTk0JK)B.bddRTTk0JK)R/"$$"$$,1MN)R/"$$*bddBDDj1IJ)B.bddRTTk0JK)B.rtt0KrttL)B.rtt0KrttL)R/1N"$$"$$,O)R/1N"$$"$$,O)R/1N"$$"$$,O)R/1N"$$"$$,Onn..8nn..8nn..bddRTTk0JKnn..bddRTTk0JK~~//"$$"$$,1MN~~//"$$*bddBDDj1IJnn..bddRTTk0JKnn..rtt0KrttLnn..rtt0KrttL~~//1N"$$"$$,O~~//1N"$$"$$,O~~//1N"$$"$$,O~~//1N"$$"$$,O 	)BNN,<<bgF)BNN,<<bgFNNr~~//"$$+rttbdd{1K	
 	NNr~~//"$$+rttbdd{1K	
 	NN 00244244<2N	
 	)R^^-==bdd
BDDRTRVRVJ?WXNNr~~//"$$+rttbdd{1K	
 	NNr~~//1L	
 	NNr~~//1L	
 	NN 00"$$"$$,2O244244<	
 	NN 00"$$"$$,2O244244<	
 	NN 00"$$"$$,2O244244<	
 	NN 00"$$"$$,2O244244<	

 	R^^-.RTTCI0FG"..**RC0"..**RC0bnn./b:gi3356WYH113q8&A*&TU+-UV+-UV+-TU+-UV+-TUQ	
 	R	
 	Q	
 	+-ST+-TU+-STr"   c                 J  ^ ^^^ T R                  [        U 4S j5        T R                  [        U 4S j5        T R                  [        U 4S j5        [        SS5      m[        SS5      mSmTR                  T5      T-  nUUU4S j[	        TS-   5       5        HH  u  p#T R                  UR                  5       S5        T R                  TR                  U5      X!-  5        MJ     T R                  WT5        [        SS5      m[        SS5      mTR                  5       TR                  5       -  nUUU4S	 j[	        TS-   5       5        Hd  u  p#T R                  UR                  5       TR                  5       TR                  5       -
  [        U5      T-  -  TR                  5       -   5        Mf     T R                  UT5        T R                  TR                  TS
5      T5        T R                  TR                  TS
5      T5        T R                  [        U4S j5        g )Nc                  P   > T R                   R                  T R                  S5      $ Nr   rB   slerprH   rN   s   r   r   ,Vector2TypeTest.test_slerp.<locals>.<lambda>      dll.@.@#.Nr"   c                  P   > T R                   R                  T R                  S5      $ r  rH   r  rB   rN   s   r   r   r        dggmmDLL#.Nr"   c                  P   > T R                   R                  T R                   S5      $ r  rB   r  rN   s   r   r   r        dll.@.@s.Sr"   r   r   r   c           	   3   b   >#    U  H$  oTR                  TU[        T5      -  5      4v   M&     g 7fr   r  r  .0istepsrH   rK   s     r   	<genexpr>-Vector2TypeTest.test_slerp.<locals>.<genexpr>  s*     SBRQ"a%,&678BRs   ,/r   c           	   3   d   >#    U  H%  oTR                  TU* [        T5      -  5      4v   M'     g 7fr   r!  r"  s     r   r&  r'    ,     TCSa"qb5<&789CS   -0r   c                  *   > T R                  T * S5      $ r  r  rH   s   r   r   r        bhhsC.@r"   )
r   r   r   r  ranger   r  r/   r  r  r   
angle_stepr$  uradial_factorr%  rH   rK   s   `    @@@r   
test_slerpVector2TypeTest.test_slerp  s   *&NO*&NO*&STQ]Q][[_u,
S%PQ	BRSDA""188:q1""2;;q>1>B T 	BS!_Q^		biik1T5QRCSTDA""
ryy{*uQx%/?@299;N U
 	B"c*B/"c*B/*&@Ar"   c                 &  ^^ [        SS5      m[        SS5      mU R                  TR                  TS5      S5        U R                  [        UU4S j5        [        SS5      m[        SS5      mU R                  TR                  TS5      S5        g )	Nr   r   r   )r$   r$   c                  (   > T R                  TS5      $ Nr*   r   rH   rK   s   r   r   +Vector2TypeTest.test_lerp.<locals>.<lambda>      bggb#.>r"   r%   r   )r   r*   )r   r/   r   r   r   r   rH   rK   s    @@r   r    Vector2TypeTest.test_lerp  sw    Q]R_S)62*&>?S"R_S)84r"   c                   ^ [        5       mTR                  U R                  R                  5       5        U R	                  U R                  T5        U R	                  U R                  [         R                  " U R                  R                  5       5      5        U R	                  U R
                  R                  5       S5        U R	                  U R                  R                  5       S5        U R	                  SU R                  -  R                  5       S5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S	 j5        U R                  [        U4S
 j5        U R                  [        S 5        U R                  [        S 5        U R                  [        S 5        U R                  [        S 5        U R                  [        S 5        U R                  [        S 5        TR                  S5        U R	                  TSU R                  -  5        U R	                  [         R                  " S5      SU R                  -  5        U R	                  [         R                  " S5      T5        TR                  S5        U R	                  TU R
                  5        U R	                  [         R                  " S5      U R
                  5        U R	                  [         R                  " S5      T5        g )Nrf  )r   r\  rc   )rc   r\  c                  &   > T R                  S5      $ N)NN
from_polarr{   s   r   r   ,Vector2TypeTest.test_polar.<locals>.<lambda>  s    Q\\,-Gr"   c                  &   > T R                  S5      $ NabrB  r{   s   r   r   rD        Q\\$-?r"   c                  &   > T R                  S5      $ Nr   rB  r{   s   r   r   rD        Q\\)-Dr"   c                  &   > T R                  S5      $ r   rB  r{   s   r   r   rD    rK  r"   c                  &   > T R                  S5      $ Nr   rB  r{   s   r   r   rD    rH  r"   c                  (   > T R                  SS5      $ Nr   rc   rB  r{   s   r   r   rD    s    Q\\!Q-?r"   c                  .    [         R                  " S5      $ rA  r   rC  r2   r"   r   r   rD    s    W-?-?-Mr"   c                  .    [         R                  " S5      $ rF  rS  r2   r"   r   r   rD        W-?-?-Er"   c                  .    [         R                  " S5      $ rJ  rS  r2   r"   r   r   rD        W-?-?	-Jr"   c                  .    [         R                  " S5      $ r   rS  r2   r"   r   r   rD    rW  r"   c                  .    [         R                  " S5      $ rN  rS  r2   r"   r   r   rD    rU  r"   c                  0    [         R                  " SS5      $ rQ  rS  r2   r"   r   r   rD    s    W-?-?1-Er"   )r   r\  r   )	r   rC  rH   as_polarr/   rC   rD   r   r   rV   s    @r   
test_polarVector2TypeTest.test_polar  sF   I	TWW%%'(!$'"4"4TWW5E5E5G"HI))+V4))+W5!dgg+//17;)%GH)%?@)%DE)%DE)%?@)%?@)%MN)%EF)%JK)%JK)%EF)%EF	YC$''M*++I6dggF++I6:	VDGG$++F3TWW=++F3Q7r"   c                      " S S[         R                  R                  5      nU" SS5      nU" SS5      nX#-   nU R                  XA" SS5      5        US-  nU R                  X!" SS5      5        g )Nc                       \ rS rSrSrg)7Vector2TypeTest.test_subclass_operation.<locals>.Vectori  r2   Nr3   r4   r5   r6   r8   r2   r"   r   Vectorr`        r"   rb  rc   r   r   rg  )r   r   r   r/   )r   rb  vec_avec_b
result_adds        r   test_subclass_operation'Vector2TypeTest.test_subclass_operation  sl    	V[[(( 	 q!q!]
VAq\2
q!-r"   c                     [        SS5      n[        SS5      nUR                  U5      nU R                  UR                  UR                  5        U R                  SUR                  5        g)MProject onto x-axis, e.g. get the component pointing in the x-axis direction.rc   r   r   Nr   projectr/   rT   rU   r   rW   x_axisactuals       r   test_project_v2_onto_x_axis+Vector2TypeTest.test_project_v2_onto_x_axis  sX     AqMQ 6" 	fhh'FHH%r"   c                     [        SS5      n[        SS5      nUR                  U5      nU R                  SUR                  5        U R                  UR                  UR                  5        g)MProject onto y-axis, e.g. get the component pointing in the y-axis direction.rc   r   r   Nrk  r   rW   y_axisro  s       r   test_project_v2_onto_y_axis+Vector2TypeTest.test_project_v2_onto_y_axis  sX     AqMC 6" 	FHH%fhh'r"   c                 :   [        SS5      n[        SS5      nUR                  U5      nUR                  U5      UR                  U5      -  U-  nU R                  UR                  UR                  5        U R                  UR
                  UR
                  5        g)Project onto other vector.rc   r&   r$   N)r   rl  r  r/   rT   rU   r   rW   otherro  r   s        r   test_project_v2_onto_other*Vector2TypeTest.test_project_v2_onto_other  s|     AqM1 5! 55<%))E"22U:VXX.VXX.r"   c                 L   [        SS5      n[        SS5      nUR                  [        U5      5      nUR                  U5      UR                  U5      -  U-  nU R	                  UR
                  UR
                  5        U R	                  UR                  UR                  5        g)#Project onto other tuple as vector.rc   r&   r$   N)r   rl  r   r  r/   rT   rU   rz  s        r   #test_project_v2_onto_other_as_tuple3Vector2TypeTest.test_project_v2_onto_other_as_tuple!  s     AqM1 5<( 55<%))E"22U:VXX.VXX.r"   c                 L   [        SS5      n[        SS5      nUR                  [        U5      5      nUR                  U5      UR                  U5      -  U-  nU R	                  UR
                  UR
                  5        U R	                  UR                  UR                  5        g)"Project onto other list as vector.rc   r&   r$   N)r   rl  rF   r  r/   rT   rU   rz  s        r   "test_project_v2_onto_other_as_list2Vector2TypeTest.test_project_v2_onto_other_as_list/  s     AqM1 4;' 55<%))E"22U:VXX.VXX.r"   c                 v    [        SS5      n[        SS5      nU R                  [        UR                  U5        g)ECheck if exception is raise when projected on vector has zero length.rc   r&   r   N)r   r   r   rl  r   rW   r{  s      r   /test_project_v2_raises_if_other_has_zero_length?Vector2TypeTest.test_project_v2_raises_if_other_has_zero_length=  s2     AqM1 	*aii7r"   c                 b    [        SS5      nSnU R                  [        UR                  U5        g)ECheck if exception is raise when projected on vector is not iterable.rc   r&   r   N)r   r   r   rl  r  s      r   /test_project_v2_raises_if_other_is_not_iterable?Vector2TypeTest.test_project_v2_raises_if_other_is_not_iterableF  s,     AqM 	)QYY6r"   c                     [        SS5      nU R                  [        U[        5      5        U R	                  [        U[
        5      5        g )Nr&   rg  )r   r  r  r   r  r   rV   s     r   test_collection_abc#Vector2TypeTest.test_collection_abcO  s5    AqM
1j12Ax01r"   c                 H   [        SS5      nUR                  S5      nUR                  SS5      nU R                  X#5        UR                  S5        U R                  X5        UR                  SS5        U R                  X5        [        SS5      nU R                  XB5        g )N   rc   r$   r   gW, ;@gc(3I?)r   clamp_magnituder/   clamp_magnitude_ipr   rH   rK   r   expected_v2s        r   test_clamp_mag_v2_max%Vector2TypeTest.test_clamp_mag_v2_maxT  s    Q]"1% 
a  
a# /1CD)r"   c                     [        SS5      nUR                  SS5      nUR                  SS5        [        SS5      nU R                  X25        U R                  X15        g )Nr   rc   r&   r$   gcOT\w?gcOT\w@)r   r  r  r/   r   rH   rK   r  s       r   test_clamp_mag_v2_min%Vector2TypeTest.test_clamp_mag_v2_minc  sY    Q]1%
a#02DE))r"   c           	         [        SS5      nS Hf  nU R                  US9   UR                  " U6 nUR                  " U6   U R	                  X5        U R	                  U[        SS5      5        S S S 5        Mh     g ! , (       d  f       Mz  = f)Nr   rc   )r   r   )r'   gffffff@)(\?gp=
ף@gffffff@args)r   subTestr  r  r/   r   rH   r  rK   s       r   test_clamp_mag_v2_no_change+Vector2TypeTest.test_clamp_mag_v2_no_changek  s|    Q]
D 4(''.%%t,  (  WQ]3	 )(
 )(s   AA::
B		c                 b   [        SS5      nUR                  SS5      nUR                  SS5        U R                  X5        U R	                  UR                  5       S5        UR                  S5      nUR                  SS5        U R                  X5        U R                  U[        5       5        g Nr   rc   r   r   )r   r  r  r/   r   r  r=  s      r   test_clamp_mag_v2_edge_cases,Vector2TypeTest.test_clamp_mag_v2_edge_casesy  s    Q]1%
a# ryy{A."
a# WY'r"   c                    [        SS5      nS H_  nU R                  US9   U R                  " [        UR                  /UQ76   U R                  " [        UR
                  /UQ76   S S S 5        Ma     S H_  nU R                  US9   U R                  " [        UR                  /UQ76   U R                  " [        UR
                  /UQ76   S S S 5        Ma     [        5       nU R                  [        UR                  S5        U R                  [        UR
                  S5        g ! , (       d  f       GM%  = f! , (       d  f       M  = fNr   rc   ))foobarr   )g9vcu@test)invalid_args))r   )rg  r&   )r   )r  r   r&   rg  )r   r  r   r   r  r  r   r   rH   r  rK   s       r   test_clamp_mag_v2_errors(Vector2TypeTest.test_clamp_mag_v2_errors  s   Q]
L
 <8!!)R-?-?O,O!!)R-B-BR\R 98

L <8!!*b.@.@P<P!!*b.C.CSlS 98
 Y*b&8&8!<*b&;&;Q?# 98 98s   AD$AD7$
D4	7
E	c           	         [        SS5      n " S S[         5      nU" SS5      nU R                  UR                  5       S5        U R                  [	        U5      U5        U R                  [	        U5      [	        UR                  5       5      5        U R                  U[	        UR                  U5      5      5        U R                  U[	        UR                  US5      5      5        U R                  U[	        UR                  US5      5      5        U R                  U[	        UR                  S5      5      5        U R                  U[	        UR                  S5      5      5        U R                  U[	        UR                  U5      5      5        U R                  U[	        UR                  US5      5      5        U R                  U[	        UR                  S5      5      5        U R                  U[	        UR                  SS5      5      5        U R                  U[	        UR                  5       U-   5      5        U" SS5      nU R                  [	        X4-   5      U5        U R                  [	        X4-
  5      U5        U R                  [	        US-  5      U5        U R                  [	        US-  5      U5        U R                  [	        UR                  5       S-  5      U5        g	)
z Check if Vector2 is subclassablerg  rc   c                       \ rS rSrS rSrg)7Vector2TypeTest.test_subclassing_v2.<locals>.TestVectori  c                     gN  r2   rN   s    r   supermariobrosiscoolLVector2TypeTest.test_subclassing_v2.<locals>.TestVector.supermariobrosiscool      r"   r2   Nr3   r4   r5   r6   r  r8   r2   r"   r   
TestVectorr        r"   r  r   r  r$   r&   N)r   r/   r  r5  r   r   r  r   r  r`  ri  rl  r   r  r  r   rW   r  r{  other1s        r   test_subclassing_v2#Vector2TypeTest.test_subclassing_v2  s@   AqM	 	 1a 335s;DGZ0DGT%**,%78T%--*:%;<T%**Q*:%;<T%++a*;%<=T%,,q/%:;T%*:*:1*=%>?T%--*:%;<T%*<*<Q*B%CDT%*?*?*B%CDT%*?*?1*E%FGT%*;*;*=*E%FGAq!en-z:en-z:eai*5eai*5e//1Q67Dr"   )rC   rD   rG   rJ   rL   rM   rE   rI   rH   rK   rB   N)Kr3   r4   r5   r6   rO   rX   r\   r`   rf   rj   rm   rp   rs   r   r   r   r   r   r   r   r   r   r   r	  r  r!  r%  r(  r+  r1  r7  r@  rC  rG  rY  rb  ro  rt  rx  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r4  r    r\  rg  rp  rv  r|  r  r  r  r  r  r  r  r  r  r  r  r8   r2   r"   r   r:   r:   O   su   #
#
#
#
#
#
#
#
6$MK^/<<<<($8L'6R#1J:7,7,34!
07"/3
"L.!
J	H
K>4BD*3
;
GHU*
60<>5}U~B458:.&(///872
**4
(@4Er"   r:   c                      \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/ r1S0 r2S1 r3S2 r4S3 r5S4 r6S5 r7S6 r8S7 r9S8 r:S9 r;S: r<S; r=\>R~                  " \@S<5      S= 5       rAS> rBS? rCS@ rDSA rESB rFSC rGSD rHSE rISF rJSG rKSH rLSI rM\>R~                  " \@S<5      SJ 5       rNSK rOSL rPSM rQSN rRSO rSSP rTSQ rUSR rVSS rWST rXSU rYSV rZSW r[SX r\SY r]SZ r^S[ r_S\ r`S] raS^ rbS_ rcS`rdga)bVector3TypeTesti  c                    [        5       U l        [        SSS5      U l        [        SSS5      U l        [        SSS5      U l        SU l        [        U R
                  5      U l        [        U R
                  5      U l        SU l	        [        U R                  5      U l
        [        U R                  5      U l        SU l        SU l        g )Nr   r   r>   r?   333333#@)r@   rA   g @r@   rA   )r   rB   rC   rD   e3rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   s    r   rO   Vector3TypeTest.setUp  s    y!Q"!Q"!Q"!tww-$''"!tww-$''"r"   c                     [        5       nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        g rR   r   r/   rT   rU   zrV   s     r   rX   'Vector3TypeTest.testConstructionDefault  sE    Ic"c"c"r"   c                     [        SSS5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        g )Nr>   r?   r  r  rV   s     r   testConstructionXYZ#Vector3TypeTest.testConstructionXYZ  sL    Cc"c"c"c"r"   c                     [        S5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        g )Nr  r>   r?   r  r  rV   s     r   rm   %Vector3TypeTest.testConstructionTuple  sH    O$c"c"c"r"   c                     [        / SQ5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        g )Nr>   r?   333333#r>   r?   r  r  rV   s     r   rp   $Vector3TypeTest.testConstructionList  sI    $%c"c"d#r"   c                     [        [        SSS5      5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        g )Nr>   r?   r  r  rV   s     r   testConstructionVector3'Vector3TypeTest.testConstructionVector3  sQ    GCd+,c"c"d#r"   c                     [        S5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        g r[   r  rV   s     r   r\   &Vector3TypeTest.testConstructionScalar  sG    AJc"c"c"r"   c                     [        SS9nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        g r_   r  rV   s     r   r`   .Vector3TypeTest.testConstructionScalarKeywords  sG    aLc"c"c"r"   c                     [        SSSS9nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        g )Nr   rc   r&   )rT   rU   r  r   re   r:  r  rV   s     r   rf   (Vector3TypeTest.testConstructionKeywords  sL    a1"c"c"c"r"   c                 p    U R                  [        [        SS5        U R                  [        [        SSS9  g )Nr   rc   rd   )r   r   r   rN   s    r   testConstructionMissing'Vector3TypeTest.testConstructionMissing  s-    *gq!4*ga8r"   c                    U R                   R                  nU R                  XR                   R                  5        U R                  XR                   S   5        U R                   R                  nU R                  XR                   R                  5        U R                  XR                   S   5        U R                   R                  nU R                  XR                   R                  5        U R                  XR                   S   5        SU R                   l        U R                  U R                   R                  S5        SU R                   l        U R                  U R                   R                  S5        SU R                   l        U R                  U R                   R                  S5        S nU R                  [        U5        g )Nr   r   rc   rv   c                  &    [        5       n SU l        g rx   rz   r{   s    r   r|   <Vector3TypeTest.testAttributeAccess.<locals>.assign_nonfloat  r~   r"   )rH   rT   r/   rU   r  r   r   r   s      r   r   #Vector3TypeTest.testAttributeAccess  s-   ggiiggii(ggaj)ggiiggii(ggaj)ggiiggii(ggaj)	E*	E*	E*	 	)_5r"   c                 "   [        SSS5      nUR                  5       nU R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        g )Ng     x@g     @g     8@)r   r   r/   rT   rU   r  r   s      r   r   Vector3TypeTest.testCopy  sc    &&&1,,.GII.GII.GII.r"   c                   ^ [        SSS5      mU R                  [        T5      S5        U R                  TS   S5        U R                  TS   S5        U R                  TS   S5        U R                  [        U4S j5        U R                  TS	   S5        U R                  TS
   S5        U R                  TS   S5        U R                  [        U4S j5        U R                  TS S  / SQ5        U R                  TSS  SS/5        U R                  TS S S/5        U R                  TS S	 SS/5        U R                  TSS S/5        U R                  [        T5      / SQ5        U R                  [        T5      S5        STS'   STS'   STS'   U R                  TR                  S5        U R                  TR                  S5        U R                  TR                  S5        / SQTS S & U R                  TR                  S5        U R                  TR                  S5        U R                  TR                  S5        S nU R                  [        U5        S nU R                  [        U5        S nU R                  [        U5        g )Nr>   r?   r  r&   r   r   rc   c                     > T S   $ r  r2   r{   s   r   r   .Vector3TypeTest.testSequence.<locals>.<lambda>'  r   r"   r   r   r   c                     > T S   $ )Nr  r2   r{   s   r   r   r  +  r   r"   r  r@   rA   g )r   r   R*r   r   r  c                  &    [        5       n / SQU S S & g N)r   rc   r&   rg  r   r{   s    r   r   2Vector3TypeTest.testSequence.<locals>.overpopulate>  s    	AAaDr"   c                  $    [        5       n S/U S S & g r   r  r{   s    r   r   3Vector3TypeTest.testSequence.<locals>.underpopulateD  r   r"   c                  "    [        5       n SU S'   g r   r   r{   s    r   r|   5Vector3TypeTest.testSequence.<locals>.assign_nonfloatJ  r   r"   )r   r/   r   r   r   rF   r   rT   rU   r  r   r   r   s       @r   r   Vector3TypeTest.testSequence!  sA   Cd#Q#1s#1s#1t$*l32%2$2$*m41/012d,2A&3B#s,1Q#'a"23q#34!!!c"c"d##!c"e$f%	  	*l3	 	*m4	 	)_5r"   c                    SS jn[        U R                  5      nU R                  [        XS S S5        U R                  [        XSS S5        U R                  [        XSSS5        [        U R                  5      nSS/US S S2'   U R	                  USU R                  R
                  S/5        [        U R                  5      nSS/US S S2'   U R	                  USU R                  R
                  S/5        [        U R                  5      nX"S S S	2'   U R	                  X R                  R                  U R                  R
                  U R                  R                  /5        [        U R                  5      n[        U R                  5      n[        U R                  5      nS
/USS& S
/U[        SS5      '   SUSS& U R	                  X45        U R	                  X55        U R	                  [        U5      [        U R                  5      5        U R	                  [        U5      [        U R                  5      5        U R	                  [        U5      [        U R                  5      5        g )Nc                 b    Ub  Ub  Ub  XX#2	 g Ub  Uc	  Ub  XS U2	 g Uc  Uc  Ub  U S S U2	 g g g g r   r2   r   s       r   r   5Vector3TypeTest.testExtendedSlicing.<locals>.delSliceR  r  r"   rc   r   r   gr      r   r   r  r  r  )
r   rH   r   r   r/   rU   r  rT   r  r   r  s         r   r	  #Vector3TypeTest.testExtendedSlicingP  s   	  DGG)X$a@)X!T1=)X!Q: DGG#A#T47799d34DGGr($B$RB/0DGG$B$WWYY		47799=>DGGDGGDGG!A%1+!Aa$tww-0a$tww-0a$tww-0r"   c                   ^ [        SSS5      mU R                  TR                  S5      5        U R                  ST;   5        U R                  ST;   5        U R                  ST;   5        U R                  ST;  5        U R                  TR                  S5      5        U R	                  [
        U4S j5        U R	                  [
        U4S j5        g )Nr   r   rc   r&   r   c                     > ST ;   $ r  r2   r  s   r   r   /Vector3TypeTest.test_contains.<locals>.<lambda>  r  r"   c                     > ST ;   $ r  r2   r  s   r   r   r    r  r"   )r   r  r  r  r   r   r  s    @r   r  Vector3TypeTest.test_containsu  s    Aq! 	q)*QQQ
#+,)%:;)%89r"   c                 t
   U R                   U R                  -   nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                   R                  U R                  R                  -   5        U R                  UR                  U R                   R                  U R                  R                  -   5        U R                  UR                  U R                   R                  U R                  R                  -   5        U R                   U R                  -   nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                   R                  U R                  S   -   5        U R                  UR                  U R                   R                  U R                  S   -   5        U R                  UR                  U R                   R                  U R                  S   -   5        U R                   U R                  -   nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                   R                  U R                  S   -   5        U R                  UR                  U R                   R                  U R                  S   -   5        U R                  UR                  U R                   R                  U R                  S   -   5        U R                  U R                  -   nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                  S   U R                  R                  -   5        U R                  UR                  U R                  S   U R                  R                  -   5        U R                  UR                  U R                  S   U R                  R                  -   5        U R                  U R                  -   nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                  S   U R                  R                  -   5        U R                  UR                  U R                  S   U R                  R                  -   5        U R                  UR                  U R                  S   U R                  R                  -   5        g Nr   r   rc   rH   rK   r  r  r   r/   rT   rU   r  rI   rJ   rE   rG   r  s     r   r!  Vector3TypeTest.testAdd  J   WWtww
2tDGG}56twwyy4779945twwyy4779945twwyy4779945WWtww
2tDGG}56twwyy4771:56twwyy4771:56twwyy4771:56WWtww
2tDGG}56twwyy4771:56twwyy4771:56twwyy4771:56WWtww
2tDGG}56twwqzDGGII56twwqzDGGII56twwqzDGGII56WWtww
2tDGG}56twwqzDGGII56twwqzDGGII56twwqzDGGII56r"   c                 t
   U R                   U R                  -
  nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                   R                  U R                  R                  -
  5        U R                  UR                  U R                   R                  U R                  R                  -
  5        U R                  UR                  U R                   R                  U R                  R                  -
  5        U R                   U R                  -
  nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                   R                  U R                  S   -
  5        U R                  UR                  U R                   R                  U R                  S   -
  5        U R                  UR                  U R                   R                  U R                  S   -
  5        U R                   U R                  -
  nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                   R                  U R                  S   -
  5        U R                  UR                  U R                   R                  U R                  S   -
  5        U R                  UR                  U R                   R                  U R                  S   -
  5        U R                  U R                  -
  nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                  S   U R                  R                  -
  5        U R                  UR                  U R                  S   U R                  R                  -
  5        U R                  UR                  U R                  S   U R                  R                  -
  5        U R                  U R                  -
  nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                  S   U R                  R                  -
  5        U R                  UR                  U R                  S   U R                  R                  -
  5        U R                  UR                  U R                  S   U R                  R                  -
  5        g r  r  r  s     r   r%  Vector3TypeTest.testSub  r  r"   c                    U R                   U R                  -  nU R                  [        U[	        U R                  5      5      5        U R                  UR                  U R                   U R                  R                  -  5        U R                  UR                  U R                   U R                  R                  -  5        U R                  UR                  U R                   U R                  R                  -  5        U R                  U R                  -  nU R                  UR                  U R                  R                  U R                  -  5        U R                  UR                  U R                  R                  U R                  -  5        U R                  UR                  U R                  R                  U R                  -  5        g r   )
rL   rH   r  r  r   r/   rT   rU   r  rM   rV   s     r   r(  (Vector3TypeTest.testScalarMultiplication  s   GGdgg
1d477m45dgg		12dgg		12dgg		12GGdggdggii$''12dggii$''12dggii$''12r"   c                    U R                   U R                  -  nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                   R                  U R                  -  5        U R                  UR                  U R                   R                  U R                  -  5        U R                  UR                  U R                   R                  U R                  -  5        U R                   U R                  -  nU R                  [        U[	        U R                   5      5      5        U R                  UR                  U R                   R                  U R                  -  5        U R                  UR                  U R                   R                  U R                  -  5        U R                  UR                  U R                   R                  U R                  -  5        g r   )rH   rL   r  r  r   r   rT   rU   r  rM   r/   rV   s     r   r+  "Vector3TypeTest.testScalarDivision  s:   GGdgg
1d477m45qssDGGII$78qssDGGII$78qssDGGII$78GGtww
1d477m45dggii47723dggii47723dggii47723r"   c                    U R                  [        U R                  5      S5        U R                  [        U R                  5      S5        U R	                  U R                  (       + 5        U R	                  U R                  5        g r.  r/  rN   s    r   r1  Vector3TypeTest.testBool  r3  r"   c                    U R                   7nU R                  [        U[        U R                   5      5      5        U R	                  UR
                  U R                   R
                  5        U R	                  UR                  U R                   R                  5        U R	                  UR                  U R                   R                  5        U R                  [        U5      [        U R                   5      5        U R                   * nU R                  [        U[        U R                   5      5      5        U R	                  UR
                  U R                   R
                  * 5        U R	                  UR                  U R                   R                  * 5        U R	                  UR                  U R                   R                  * 5        U R                  [        U5      [        U R                   5      5        g r   )
rH   r  r  r   r/   rT   rU   r  r5  r6  rV   s     r   r7  Vector3TypeTest.testUnary  s4   WWH
1d477m45dggii(dggii(dggii(BqE2dgg;/WWH
1d477m45twwyyj)twwyyj)twwyyj)BqE2dgg;/r"   c                 R   [        SSS5      n[        SSS5      n[        SSS5      nU R                  X:H  S5        U R                  X:g  S	5        U R                  X:g  S5        U R                  X#:H  S	5        U R                  US
:H  S5        U R                  US
:g  S	5        U R                  USS/:g  S5        U R                  USS/:H  S	5        U R                  US:g  S5        U R                  US:H  S	5        U R                  U/ SQ:g  S5        U R                  U/ SQ:H  S	5        g )Nr&   r      r:  r;  g      *@r   TF)r&   r   r  r$   )r&   r   r   r   r   r/   r<  s       r   r@  Vector3TypeTest.testCompare  s&   !R$#tT*1a#+T2+U3,d3,e4K/6K/7QF*D1QF*E2At,Au-M148M159r"   c                 T    [        SSS5      nU R                  [        U5      S5        g )Nr>   r?   r@   z[1.2, 3.4, 5.6])r   r/   r   rV   s     r   rC  Vector3TypeTest.testStr  s%    Cc"Q!23r"   c                     [        SSS5      nU R                  UR                  5       S5        U R                  U[        UR                  5       5      5        g )Nr>   r?   r  z<Vector3(1.2, 3.4, -9.6)>)r   r/   rF  rV   s     r   rG  Vector3TypeTest.testRepr  sB    Cd#'BCGAJJL12r"   c                   ^ U R                   R                  5       nUR                  mU R                  T" 5       U R                   S   5        U R                  T" 5       U R                   S   5        U R                  T" 5       U R                   S   5        U R	                  [
        U4S j5        U R                   R                  5       nU R                   R                  5       nU R                  [        U5      [        U5      5        U R                  [        U5      [        UR                  5       5      5        U R                  [        U5      [        U5      5        U R                  [        U R                   R                  5       5      U R                  5        SnU R                    H&  nU R                  XPR                   U   5        US-  nM(     g )Nr   r   rc   c                     > T " 5       $ r   r2   rK  s   r   r   *Vector3TypeTest.testIter.<locals>.<lambda>  rN  r"   rO  rS  s         @r   rY  Vector3TypeTest.testIter  sG   WW$''!*-$''!*-$''!*--9gg gg BsGRW-C"S\\^"45cDI.dgg..01477;77CS''#,/1HC r"   c                 N   U R                  [        [        R                  " SSS5      5      [        R                  " SSS5      5        U R                  [	        [        [        R                  " SSS5      5      5      [        R                  5        U R                  [        [        R                  " SSS5      5      [        [        R                  " SSS5      5      5        U R                  [        [        R                  " SSS5      5      [        [        R                  " SSS5      5      5        U R                  [        [        R                  " SSS5      5      [        R                  " SSS5      5        U R                  [        [        R                  " SSS5      5      [        R                  " SSS5      5        U R                  [        [        R                  " SSS5      5      [        R                  " SSS5      5        U R                  [        [        R                  " SSS5      5      [        R                  " SSS5      5        U R                  [        [        R                  " SSS5      5      [        R                  " SSS5      5        U R                  [        [        R                  " S	S	S	5      5      [        R                  " S	S	S	5      5        U R                  [        [        R                  " S
S
S
5      5      [        R                  " SSS5      5        U R                  [        [        R                  " SSS5      5      [        R                  " SSS5      5        U R                  [        [        R                  " SSS5      5      [        R                  " SSS5      5        U R                  [        [        R                  " SSS5      5      [        R                  " SSS5      5        U R                  [        [        R                  " SSS5      5      [        R                  " SSS5      5        U R                  [        [        R                  " SSS5      5      [        R                  " SSS5      5        U R                  [        [        R                  " SSS5      5      [        R                  " SSS5      5        U R                  [        [        R                  " SSS5      5      [        R                  " SSS5      5        U R                  [        [        R                  " SSS5      5      [        R                  " SSS5      5        U R                  [        [        R                  " SSS5      5      [        R                  " SSS5      5        U R                  [        [        R                  " SSS5      5      [        R                  " SSS5      5        U R                  [        [        R                  " SSS5      5      [        R                  " SSS5      5        U R                  [        [        R                  " SSS5      5      [        R                  " SSS5      5        U R                  [        [        R                  " SSS5      S5      [        R                  " SSS5      5        U R                  [	        [        [        R                  " SSS5      S5      5      [        R                  5        U R                  [	        [        [        R                  " SSS5      S5      5      [        R                  5        U R                  [	        [        [        R                  " SSS5      S5      5      [        R                  5        U R                  [        [        R                  " SSS5      5      [        R                  " SSS5      5        U R                  [        [        R                  " SSS5      5      [        R                  " SSS5      5        U R                  [        [        R                  " SSS5      5      [        R                  " S S S 5      5        U R                  [        [        R                  " S!S!S!5      5      [        R                  " S"S"S"5      5        U R                  [        [        R                  " S#S#S#5      5      [        R                  " S$S$S$5      5        U R                  [        [        R                  " S%S%S%5      5      [        R                  " S"S"S"5      5        U R                  [        [        [        R                  " SSS5      S&5        U R                  [        [        [        R                  " SSS5      S'5        g r   )r/   r   r   r   r   r   r   rN   s    r   r   $Vector3TypeTest.test___round___basic  s   &..c3/0&..c32O	
 	eFNN3S$ABCV^^T&..c3/0%sCQT8U2V	
 	&..tT23&..tT23	
 	&..|\JKNN<|D	
 	&..tT23V^^D$PT5U	
 	&..tT23V^^D$PT5U	
 	&..u56NN5%/	
 	&..}MNNN=-G	
 	&..u56NN5%/	

 	&..c3/0&..c32O	
 	&..c3/0&..c32O	
 	&..tT23V^^D$PT5U	
 	&..|\JKNN<|D	

 	&..tT23V^^D$PT5U	
 	&..u56NN5%/	
 	&..}MNNN=-G	

 	&..c3/0&..c32O	
 	&..c3/0&..tT2R	
 	&..k;GHNN<|D	

 	&..tT23V^^D$PT5U	
 	&..tT23V^^E5RW5X	
 	&..|\JKNN=-G	

 	&..tT2B7NN5%/	
 	v~~dD$7<=v~~	
 	v~~dD$7;<fnn	
 	v~~dD$7;<fnn	

 	v~~c3<=v~~aQRTU?VW&..c3/0&..c32O	
 	&..c3/0&..c32O	
 	&..tT23V^^BB5O	
 	&..tT23V^^BB5O	
 	&..tT23V^^BB5O	
 	)UFNN3S,I3O)UFNN3S,I3Or"   c           
      0   [        SSS5      n[        SSS5      nUR                  SU5      nUR                  SU5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        [        SSS5      nUR                  SU5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        UR                  SU5      nU R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        UR                  SU5      nU R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        U R                  [        SSS5      R                  S[        SSS5      5      [        SSS5      5        g )	Nr   r   r\  r]  r   r^  r_  g(v@)r   r`  r/   rT   rU   r  )r   rH   axisrK   r   s        r   rb  Vector3TypeTest.test_rotate  sD   Q1q!QYYr4 YYx&q!q!q!q!q!r"rtt$rtt$rtt$RR YYsD!q!r"r"YYsD!rtt$rtt$rtt$YYq$rtt$rtt$rtt$Aq!##KAq1ABGAqRSDT	
r"   c                    [        SSS5      nS[        R                  4S[        R                  S-  4S[        R                  * S-  4S[        R                  S-  44nU H\  u  p4[        U5      R                  XA5      nU R	                  U[        R
                  " U5      [        R                  " U5      S45        M^     g Nr   r   r   r   r   rc   rg  )r   r   rh  ri  r/   rj  rk  r   r"  rl  rm  rn  r   s         r   ro  Vector3TypeTest.test_rotate_rad  s    q!Q !$1%!$	
 $)J*%00?CS488G#4dhhw6G"KL $)r"   c                 
   [        SSS5      n[        SSS5      nU R                  UR                  SU5      S 5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        [        SSS5      nUR                  SU5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        g rr  )r   r/   rs  rT   rU   r  )r   rW   r"  s      r   rt  Vector3TypeTest.test_rotate_ip  s    Aq!q!QR.5a a b!BA	Cb!b!b!r"   c                    [        SSS5      nS[        R                  4S[        R                  S-  4S[        R                  * S-  4S[        R                  S-  44nU H^  u  p4[        U5      nUR                  XA5        U R	                  U[        R
                  " U5      [        R                  " U5      S45        M`     g r%  )r   r   rh  rw  r/   rj  rk  r'  s         r   rx  "Vector3TypeTest.test_rotate_rad_ip  s    q!Q !$1%!$	
 $)J*%Cg,S488G#4dhhw6G"KL $)r"   c                    [        SSS5      nUR                  S5      nUR                  S5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        [        SSS5      nUR                  S5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        UR                  S5      nU R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        UR                  S5      nU R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        g Nr   r   r\  r]  r   r^  r_  )r   rotate_xr/   rT   rU   r  r   ra  s       r   test_rotate_xVector3TypeTest.test_rotate_x  s   Q1[[_[["q!q!q!q!q!q!rtt$rtt$rtt$RR [[r"rttR(rttQ'[[rttRTT*rttRTT*rttRTT*[[^rtt$rttRTT*rttRTT*r"   c                     [        SSS5      nUR                  [        R                  S-  5      nU R	                  US5        g Nr   r   rc   )r   r   r   )r   rotate_x_radr   rh  r/   r   r   r   s      r   test_rotate_x_rad!Vector3TypeTest.test_rotate_x_rad  8    aA!!$''A+.+r"   c                    [        SSS5      nU R                  UR                  S5      S 5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        [        SSS5      nUR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        g rr  )r   r/   rotate_x_iprT   rU   r  r   rV   s     r   test_rotate_x_ip Vector3TypeTest.test_rotate_x_ip  s    Aq!r*D1a a a BA	cb!qssA&qssA&r"   c                     [        SSS5      nUR                  [        R                  S-  5        U R	                  US5        g r3  )r   rotate_x_rad_ipr   rh  r/   r   r   s     r   test_rotate_x_rad_ip$Vector3TypeTest.test_rotate_x_rad_ip  6    aADGGaK(i(r"   c                    [        SSS5      nUR                  S5      nUR                  S5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        [        SSS5      nUR                  S5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        UR                  S5      nU R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        UR                  S5      nU R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        g r.  )r   rotate_yr/   rT   rU   r  r   ra  s       r   test_rotate_yVector3TypeTest.test_rotate_y  s   Q1[[_[["q!q!q!rttQ'q!rttR(rttRTT*rtt$rttRTT*RR [[rttQ'r"rttR([[rttRTT*rtt$rttRTT*[[^rtt$rtt$rtt$r"   c                     [        SSS5      nUR                  [        R                  S-  5      nU R	                  US5        g Nr   r   rc   r   r   r   )r   rotate_y_radr   rh  r/   r5  s      r   test_rotate_y_rad!Vector3TypeTest.test_rotate_y_rad  s8    aA!!$''A+.,r"   c                    [        SSS5      nU R                  UR                  S5      S 5        U R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  S5        [        SSS5      nUR                  S5        U R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  S5        g rr  )r   r/   rotate_y_ipr   rT   rU   r  rV   s     r   test_rotate_y_ip Vector3TypeTest.test_rotate_y_ip  s    Aq!r*D1qssA&a qssB'BA	cqssB'b!qssB'r"   c                     [        SSS5      nUR                  [        R                  S-  5        U R	                  US5        g rH  )r   rotate_y_rad_ipr   rh  r/   r?  s     r   test_rotate_y_rad_ip$Vector3TypeTest.test_rotate_y_rad_ip+  s6    aADGGaK(j)r"   c                    [        SSS5      nUR                  S5      nUR                  S5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        [        SSS5      nUR                  S5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        UR                  S5      nU R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        UR                  S5      nU R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        g r.  )r   rotate_zr/   rT   rU   r  r   ra  s       r   test_rotate_zVector3TypeTest.test_rotate_z0  s   Q1[[_[["q!q!q!rttQ'rttQ'q!rttRTT*rttRTT*rtt$RR [[rttR(rttQ'r"[[rttRTT*rttRTT*rtt$[[^rttRTT*rttRTT*rtt$r"   c                     [        SSS5      nUR                  [        R                  S-  5      nU R	                  US5        g Nr   r   rc   r   r   r   )r   rotate_z_radr   rh  r/   r5  s      r   test_rotate_z_rad!Vector3TypeTest.test_rotate_z_radK  r8  r"   c                    [        SSS5      nU R                  UR                  S5      S 5        U R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  S5        [        SSS5      nUR                  S5        U R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  S5        g rr  )r   r/   rotate_z_ipr   rT   rU   r  rV   s     r   test_rotate_z_ip Vector3TypeTest.test_rotate_z_ipP  s    Aq!r*D1qssA&qssA&a BA	cqssB'qssA&a r"   c                     [        SSS5      nUR                  [        R                  S-  5        U R	                  US5        g rZ  )r   rotate_z_rad_ipr   rh  r/   r?  s     r   test_rotate_z_rad_ip$Vector3TypeTest.test_rotate_z_rad_ip\  rB  r"   c                 >  ^  T R                   R                  5       nT R                  UR                  UR                  -  UR                  UR                  -  -   UR
                  UR
                  -  -   S5        T R                  T R                   R                  T R                  S   5        T R                  T R                   R                  T R                  S   5        T R                  T R                   R
                  T R                  S   5        T R                   R                  UR
                  -  T R                   R
                  UR                  -  -
  S-  T R                   R
                  UR                  -  T R                   R                  UR
                  -  -
  S-  -   T R                   R                  UR                  -  T R                   R                  UR                  -  -
  S-  -   nT R                  US5        T R                  [        U 4S j5        g )Nr   r   r   rc   r   c                  8   > T R                   R                  5       $ r   r|  rN   s   r   r   0Vector3TypeTest.test_normalize.<locals>.<lambda>p  r  r"   )
rH   r}  r   rT   rU   r  r/   rG   r   r   r   rW   r  s   `  r   r  Vector3TypeTest.test_normalizea  sn   GGqssQSSy13394qssQSSy@#FDGGAJ/DGGAJ/DGGAJ/ WWYY_twwyy133.14wwyy133QSS0Q67wwyy133QSS0Q67 	
 	uc**&FGr"   c                   ^  T R                   7nT R                  UR                  UR                  -  UR                  UR                  -  -   UR                  UR                  -  -   S5        T R                  UR                  5       S 5        T R                  UR                  UR                  -  UR                  UR                  -  -   UR                  UR                  -  -   S5        T R                   R                  UR                  -  T R                   R                  UR                  -  -
  S-  T R                   R                  UR                  -  T R                   R                  UR                  -  -
  S-  -   T R                   R                  UR                  -  T R                   R                  UR                  -  -
  S-  -   nT R                  US5        T R                  [        U 4S j5        g )Nr   rc   r   c                  8   > T R                   R                  5       $ r   r  rN   s   r   r   3Vector3TypeTest.test_normalize_ip.<locals>.<lambda>  r  r"   )
rH   r5  rT   rU   r  r/   r  r   r   r   rj  s   `  r   r  !Vector3TypeTest.test_normalize_ipr  s\   WWHACC!##Iacc	1ACC!##I=sC)40qssQSSy13394qssQSSy@#F WWYY_twwyy133.14wwyy133QSS0Q67wwyy133QSS0Q67 	
 	uc**&IJr"   c                 t   U R                  U R                  R                  5       S5        U R                  R                  5       nU R                  UR                  5       S5        U R                  U R                  R                  5       S5        U R                  U R
                  R                  5       S5        g r.  r  rV   s     r   r  "Vector3TypeTest.test_is_normalized  r  r"   c                    S nU R                  U R                  R                  U R                  5      U" U R                  U R                  5      5        U R                  U R                  R                  U R                  5      U" U R                  U R                  5      5        U R                  U R                  R                  U R
                  5      U" U R                  U R
                  5      5        U R                  U R                  R                  U R                  5      U R                  R                  U R                  5      * 5        U R                  U R                  R                  U R                  5      U R                  5        g )Nc                     [        U S   US   -  U S   US   -  -
  U S   US   -  U S   US   -  -
  U S   US   -  U S   US   -  -
  5      $ Nr   rc   r   r  )r   r  s     r   r  )Vector3TypeTest.test_cross.<locals>.cross  so    !qtadQqTk)!qtadQqTk)!qtadQqTk) r"   )r/   rH   r  rK   rJ   rI   rB   )r   r  s     r   r  Vector3TypeTest.test_cross  s    	 	tww/tww1HItww/tww1HItww/tww1HItww/$''--2H1HItww/>r"   c                 `   U R                  U R                  R                  U R                  5      U R                  R                  U R                  R                  -  U R                  R
                  U R                  R
                  -  -   U R                  R                  U R                  R                  -  -   5        U R                  U R                  R                  U R                  5      U R                  R                  U R                  S   -  U R                  R
                  U R                  S   -  -   U R                  R                  U R                  S   -  -   5        U R                  U R                  R                  U R                  5      U R                  R                  U R                  S   -  U R                  R
                  U R                  S   -  -   U R                  R                  U R                  S   -  -   5        U R                  U R                  R                  U R                  5      U R                  R                  U R                  5      5        U R                  U R                  R                  U R                  5      U R                  U R                  -  5        g r  )	r   rH   r  rK   rT   rU   r  rJ   rI   rN   s    r   r  Vector3TypeTest.test_dot  s   GGKK GGII		!DGGII		$99DGGII		<QQ	
 	GGKK GGII
"TWWYY%;;dggii$''RS*>TT	
 	GGKK GGII
"TWWYY%;;dggii$''RS*>TT	
 	tww{{4773TWW[[5IJtww{{4773TWWtww5FGr"   c           	         U R                  [        SSS5      R                  S5      S5        U R                  [        SSS5      R                  S5      S5        U R                  [        SSS5      R                  S5      S5        U R                  [        [        SSS5      R                  S5      5      S	5        U R                  U R                  R                  U R                  R                  U R                  5      U R                  R                  U R                  5      5      R                  5       U R                  R                  5       5        g )
Nr   r   )r   r   r   r\  rI  )r   r   r   r  )r   r   r   r  )	r/   r   r  r  rH   r`  rK   r  r}  rN   s    r   r  Vector3TypeTest.test_angle_to  s    Aq)22:>CAq)22:>CAq)22:>DWQ1-66{CDcJ 	GGNN  )477==+AikGG		
r"   c                 X  ^  [        SSS5      nUR                  S5        T R                  U[        SSS5      [        R                  " S5      -  5        T R                  [        U 4S j5        T R                  UR                  S5      S 5        T R                  UT R                  5        g )Nr   r*   r&   c                  :   > T R                   R                  S5      $ r   r  rN   s   r   r   6Vector3TypeTest.test_scale_to_length.<locals>.<lambda>  r  r"   r   )r   r  r/   r   r  r   r   rB   rV   s   ` r   r  $Vector3TypeTest.test_scale_to_length  s    Aq!	#GCc2TYYq\AB*&MN**1-t4DLL)r"   c                 T   U R                  [        SSS5      R                  5       [        R                  " S5      5        U R                  [        SSS5      R                  5       [        R                  " S5      5        U R                  U R
                  R                  5       S5        g Nr&   rg  r$   2   r   r   )r/   r   r  r   r  rB   rN   s    r   r  Vector3TypeTest.test_length  sw    Aq)002DII>S4TUQ*113TYY?V5WX,,.2r"   c                    U R                  [        SSS5      R                  5       S5        U R                  [        SSS5      R                  5       S5        U R                  U R                  R                  5       S5        g r  )r/   r   r  rB   rN   s    r   r  #Vector3TypeTest.test_length_squared  se    Aq)88:<QRQ*99;=TU446:r"   c                 v  ^ ^ [        SSS5      m[        SSS5      nT R                  TR                  U5      [        SSS5      5        T R                  TR                  SU-  5      TR                  U5      5        T R                  TR                  T* 5      T* 5        T R                  [        U U4S j5        g )Nr   r   r   r&   c                  :   > TR                  T R                  5      $ r   r  rV   s   r   r   .Vector3TypeTest.test_reflect.<locals>.<lambda>  r  r"   )r   r/   r  r   r   r  s   ` @r   r  Vector3TypeTest.test_reflect  s    Ar1Aq!1wq!Q'781q5)199Q<8A2+*&EFr"   c                   ^ ^ [        SSS5      n[        U5      m[        SSS5      nT R                  TR                  U5      S 5        T R                  T[        SSS5      5        [        U5      mTR                  SU-  5        T R                  TUR                  U5      5        [        U5      mTR                  U* 5        T R                  TU* 5        T R	                  [
        U U4S j5        g )Nr   r   r   r&   c                  :   > TR                  T R                  5      $ r   )r  rB   )r   rK   s   r   r   1Vector3TypeTest.test_reflect_ip.<locals>.<lambda>  s    bmmDLL.Ir"   )r   r/   r  r  r   r   r  s   `  @r   r  Vector3TypeTest.test_reflect_ip  s    QAR[Aq!q)40WQ1-.R[
a!eRZZ]+R[
rcbS!*&IJr"   c                    U R                   U R                  -
  nU R                  U R                  R	                  U R
                  5      [        R                  " S5      5        U R                  U R                  R	                  S5      [        R                  " S5      5        U R                  U R                  R	                  / SQ5      [        R                  " S5      5        U R                  U R                   R	                  U R                  5      [        R                  " UR                  UR                  -  UR                  UR                  -  -   UR                  UR                  -  -   5      5        U R                  U R                   R	                  U R                  5      [        R                  " UR                  UR                  -  UR                  UR                  -  -   UR                  UR                  -  -   5      5        U R                  U R                   R	                  U R                  5      [        R                  " UR                  UR                  -  UR                  UR                  -  -   UR                  UR                  -  -   5      5        U R                  U R                   R	                  U R                   5      S5        U R                  U R                   R	                  U R                  5      S5        U R                  U R                   R	                  U R                  5      S5        U R                  U R                   R	                  U R                  5      U R                  R	                  U R                   5      5        U R                  U R                   R	                  U R                  5      U R                  R	                  U R                  5      5        U R                  U R                   R	                  U R                  5      U R                  R	                  U R                  5      5        g Nrc   r[  r   )rH   rK   r/   rC   r  rD   r   r  rT   rU   r  rI   rJ   rE   rG   r  s     r   r   Vector3TypeTest.test_distance_to  s   ww ,,TWW5tyy|D,,Y71F,,Y71FGG(IIdfftvvo7$&&466/IJ	
 	GG(IIdfftvvo7$&&466/IJ	
 	GG(IIdfftvvo7$&&466/IJ	
 	,,TWW5q9,,TWW5q9,,TWW5q9,,TWW5tww7J7J4777ST,,TWW5tww7J7J4777ST,,TWW5tww7J7J4777STr"   c                 4   [        SS5      n[        SSS5      nU R                  [        UR                  U5        U R                  [        UR                  U5        U R                  [        UR                  S5        U R                  [        UR                  S5        U R                  [        UR                  S5        U R                  [        UR                  / SQ5        U R                  [        UR                  / SQ5        U R                  [        UR                  S/5        U R                  [        UR                  S5        U R                  [        UR                  S5        U R                  [        UR                  S5        U R                  [        UR                  SS/5        U R                  [        UR                  S/5        U R                  [
        UR                  S5        U R                  [
        UR                  / / 45        U R                  [
        UR                  S5        U R                  [
        UR                  5        U R                  [
        UR                  SS	5        U R                  [
        UR                  SS	S5        g 
Nr   r   r   r   r   )r   r   r   rO  r  )r   r+   )r   )r+   r  )r   r   r   r   r  r   )r   rK   r   s      r   test_distance_to_exceptions+Vector3TypeTest.test_distance_to_exceptions  s   R_Q1 	*bnnb9*bnnb9 	*bnni@*bnni@*bnnd;*bnni@*bnni@NN	
 	*bnni@*bnnf=*bnnd;*bnnq!f=NN	
 	)R^^\B)R^^b"X>)R^^_E 	)R^^4)R^^VVD)R^^VVQGr"   c                    [        SS5      n[        SSS5      nUR                  nUR                  nU R                  [        X25        U R                  [        XA5        U R                  [        US5        U R                  [        US5        U R                  [        US5        U R                  [        U/ SQ5        U R                  [        U/ SQ5        U R                  [        US/5        U R                  [        US5        U R                  [        US5        U R                  [        US5        U R                  [        USS/5        U R                  [        US/5        U R                  [
        US5        U R                  [
        U/ / 45        U R                  [
        US5        U R                  [
        U5        U R                  [
        USS	5        U R                  [
        USS	S5        g r  )r   r   r  r   r   r   )r   rK   r   dist_tdist_t3s        r   #test_distance_squared_to_exceptions3Vector3TypeTest.test_distance_squared_to_exceptions"  s   R_Q1''((*f1*g2 	*fi8*fi8*fd3*fi8*fi8	
 	*fi8*gv6*gt4*g1v6	
 	)V\:)Vb"X6)V_= 	)V,)VVV<)VVVQ?r"   c                    U R                   U R                  -
  nU R                  U R                  R	                  U R
                  5      S5        U R                  U R                  R	                  S5      S5        U R                  U R                  R	                  / SQ5      S5        U R                  U R                   R	                  U R                  5      UR                  UR                  -  UR                  UR                  -  -   UR                  UR                  -  -   5        U R                  U R                   R	                  U R                  5      UR                  UR                  -  UR                  UR                  -  -   UR                  UR                  -  -   5        U R                  U R                   R	                  U R                  5      UR                  UR                  -  UR                  UR                  -  -   UR                  UR                  -  -   5        U R                  U R                   R	                  U R                   5      S5        U R                  U R                   R	                  U R                  5      S5        U R                  U R                   R	                  U R                  5      S5        U R                  U R                   R	                  U R                  5      U R                  R	                  U R                   5      5        U R                  U R                   R	                  U R                  5      U R                  R	                  U R                  5      5        U R                  U R                   R	                  U R                  5      U R                  R	                  U R                  5      5        g r  )rH   rK   r/   rC   r  rD   r   rT   rU   r  rI   rJ   rE   rG   r  s     r   r  (Vector3TypeTest.test_distance_squared_toO  s   ww 44TWW=qA44Y?C44Y?CGG''0FFTVVOdfftvvo-?	
 	GG''0FFTVVOdfftvvo-?	
 	GG''0FFTVVOdfftvvo-?	
 	44TWW=qA44TWW=qA44TWW=qAGG''0$''2M2Mdgg2V	
 	GG''0$''2M2Mdgg2V	
 	GG''0$''2M2Mdgg2V	
r"   c                    U R                  U R                  R                  U R                  R                  U R                  R                  U R                  R
                  45        U R                  U R                  R                  U R                  R                  U R                  R                  U R                  R                  U R                  R                  U R                  R
                  U R                  R
                  U R                  R                  U R                  R                  U R                  R
                  4	5        U R                  U R                  l        U R                  U R                  U R                  5        U R                  U R                  l	        U R                  U R                  U R                  S   U R                  S   U R                  S   45        U R                  S S U R                  l
        U R                  U R                  U R                  S   U R                  S   U R                  S   45        U R                  [        U R                  5      [        5        g rt  )r/   rH   yxzrU   rT   r  	xxyyzzxyzrI   xyzzxyyzr   r   rN   s    r   r  Vector3TypeTest.test_swizzlem  s   twwyy$''))TWWYY&GHGG																		
	
 gg$''*gg4771:twwqz4771:"FGWWRa[
4771:twwqz4771:"FGdgg0r"   zknown pypy failurec                     S nS nS nS nU R                  [        U5        U R                  [        U5        U R                  [        U5        U R                  [        U5        S nU R                  [        U5        g )Nc                  "    S[        5       l        g r  )r   r  r2   r"   r   r  =Vector3TypeTest.test_invalid_swizzle.<locals>.invalidSwizzleX  r  r"   c                  "    S[        5       l        g r  )r   r  r2   r"   r   r  =Vector3TypeTest.test_invalid_swizzle.<locals>.invalidSwizzleY  r  r"   c                  "    S[        5       l        g r  )r   zzr2   r"   r   invalidSwizzleZ=Vector3TypeTest.test_invalid_swizzle.<locals>.invalidSwizzleZ  r  r"   c                  "    S[        5       l        g r  )r   wwr2   r"   r   invalidSwizzleW=Vector3TypeTest.test_invalid_swizzle.<locals>.invalidSwizzleW  r  r"   c                  "    S[        5       l        g r  )r   r  r2   r"   r   r  ?Vector3TypeTest.test_invalid_swizzle.<locals>.invalidAssignment  r  r"   )r   r  r   )r   r  r  r  r  r  s         r   test_invalid_swizzle$Vector3TypeTest.test_invalid_swizzle  sp    	"	"	"	" 	./:./:./:./:	 	)%67r"   c                    U R                  [        U R                  R                  5      [        5        U R                  [        U R                  R
                  5      [        5        U R                  [        U R                  R                  5      [        5        U R                  [        U R                  R                  5      [        5        U R                  [        U R                  R                  5      [        5        g r   )r/   r   rH   rT   r  r  r   r  r   r  r   r  rN   s    r   r  )Vector3TypeTest.test_swizzle_return_types  r  r"   c           	          1 SknU R                  UR                  [        [        U R                  5      5      5      5        g )N>   rT   rU   r   r  r  r}  r  )r  issubsetsetdirrH   )r   
attributess     r   test_dir_worksVector3TypeTest.test_dir_works  s+    X

++CDGG,=>?r"   c                 D[  ^  T R                  T R                  R                  5       T R                  -   T R                  R                  T R                  -   T R                  R
                  T R                  -   T R                  R                  T R                  -   45        T R                  T R                  R                  5       T R                  -
  T R                  R                  T R                  -
  T R                  R
                  T R                  -
  T R                  R                  T R                  -
  45        T R                  T R                  R                  5       T R                  -  T R                  R                  T R                  -  T R                  R
                  T R                  -  T R                  R                  T R                  -  45        T R                  T R                  R                  5       T R                  -  T R                  R                  T R                  -  T R                  R
                  T R                  -  T R                  R                  T R                  -  45        T R                  T R                  R                  5       T R                  -  T R                  R                  T R                  -  T R                  R
                  T R                  -  T R                  R                  T R                  -  45        T R                  T R                  R                  5       T R                  -  T R                  R                  T R                  -  T R                  R
                  T R                  -  T R                  R                  T R                  -  45        T R                  T R                  R                  5       T R                  -  T R                  R                  T R                  -  T R                  R
                  T R                  -  T R                  R                  T R                  -  45        T R                  T R                  R                  5       T R                  :  T R                  R                  T R                  :  =(       aM    T R                  R
                  T R                  :  =(       a#    T R                  R                  T R                  :  5        T R                  T R                  R                  5       T R                  :  T R                  R                  T R                  :  =(       aM    T R                  R
                  T R                  :  =(       a#    T R                  R                  T R                  :  5        T R                  T R                  R                  5       T R                  :H  T R                  R                  T R                  :H  =(       aM    T R                  R
                  T R                  :H  =(       a#    T R                  R                  T R                  :H  5        T R                  T R                  R                  5       T R                  :g  T R                  R                  T R                  :g  =(       aM    T R                  R
                  T R                  :g  =(       a#    T R                  R                  T R                  :g  5        T R                  T R                  R                  5       T R                  :  T R                  R                  T R                  :  =(       aM    T R                  R
                  T R                  :  =(       a#    T R                  R                  T R                  :  5        T R                  T R                  R                  5       T R                  :*  T R                  R                  T R                  :*  =(       aM    T R                  R
                  T R                  :*  =(       a#    T R                  R                  T R                  :*  5        T R                  ST R                  R                  5       -   [        SSS5      T R                  -   5        T R                  ST R                  R                  5       -
  [        SSS5      T R                  -
  5        T R                  ST R                  R                  5       -  ST R                  -  5        T R                  ST R                  R                  5       -  ST R                  R                  -  ST R                  R
                  -  ST R                  R                  -  45        T R                  ST R                  R                  5       -  ST R                  R                  -  ST R                  R
                  -  ST R                  R                  -  45        T R                  ST R                  R                  5       -  * ST R                  R                  -  * ST R                  R
                  -  * ST R                  R                  -  * 45        T R                  ST R                  R                  5       -  ST R                  R                  -  ST R                  R
                  -  ST R                  R                  -  45        T R                  ST R                  R                  5       :  ST R                  R                  :  =(       a9    ST R                  R
                  :  =(       a    ST R                  R                  :  5        T R                  ST R                  R                  5       :  ST R                  R                  :  =(       a9    ST R                  R
                  :  =(       a    ST R                  R                  :  5        T R                  ST R                  R                  5       :H  ST R                  R                  :H  =(       a9    ST R                  R
                  :H  =(       a    ST R                  R                  :H  5        T R                  ST R                  R                  5       :g  ST R                  R                  :g  =(       a9    ST R                  R
                  :g  =(       a    ST R                  R                  :g  5        T R                  ST R                  R                  5       :*  ST R                  R                  :*  =(       a9    ST R                  R
                  :*  =(       a    ST R                  R                  :*  5        T R                  ST R                  R                  5       :  ST R                  R                  :  =(       a9    ST R                  R
                  :  =(       a    ST R                  R                  :  5        T R                  ST R                  R                  5       :g  ST R                  R                  :g  =(       a9    ST R                  R
                  :g  =(       a    ST R                  R                  :g  5        T R                  [        T R                  R                  5       T R                  -  5      [        T R                  5      5        T R                  T R                  R                  5       T R                  -   T R                  T R                  -   5        T R                  T R                  R                  5       T R                  -   T R                  T R                  -   5        T R                  T R                  R                  5       T R                  -
  T R                  T R                  -
  5        T R                  T R                  R                  5       T R                  -  T R                  R                  T R                  R                  -  T R                  R
                  T R                  R
                  -  T R                  R                  T R                  R                  -  45        T R                  T R                  R                  5       T R                  -  T R                  R                  T R                  R                  -  T R                  R
                  T R                  R
                  -  T R                  R                  T R                  R                  -  45        T R                  T R                  R                  5       T R                  -  T R                  R                  T R                  R                  -  T R                  R
                  T R                  R
                  -  T R                  R                  T R                  R                  -  45        T R                  T R                  R                  5       T R                  -  T R                  R                  T R                  R                  -  T R                  R
                  T R                  R
                  -  T R                  R                  T R                  R                  -  45        T R                  T R                  R                  5       T R                  -  T R                  R                  T R                  R                  -  T R                  R
                  T R                  R
                  -  T R                  R                  T R                  R                  -  45        T R                  T R                  R                  5       T R                  :  T R                  R                  T R                  R                  :  =(       aa    T R                  R
                  T R                  R
                  :  =(       a-    T R                  R                  T R                  R                  :  5        T R                  T R                  R                  5       T R                  :  T R                  R                  T R                  R                  :  =(       aa    T R                  R
                  T R                  R
                  :  =(       a-    T R                  R                  T R                  R                  :  5        T R                  T R                  R                  5       T R                  :  T R                  R                  T R                  R                  :  =(       aa    T R                  R
                  T R                  R
                  :  =(       a-    T R                  R                  T R                  R                  :  5        T R                  T R                  R                  5       T R                  :*  T R                  R                  T R                  R                  :*  =(       aa    T R                  R
                  T R                  R
                  :*  =(       a-    T R                  R                  T R                  R                  :*  5        T R                  T R                  R                  5       T R                  :H  T R                  R                  T R                  R                  :H  =(       aa    T R                  R
                  T R                  R
                  :H  =(       a-    T R                  R                  T R                  R                  :H  5        T R                  T R                  R                  5       T R                  :g  T R                  R                  T R                  R                  :g  =(       aa    T R                  R
                  T R                  R
                  :g  =(       a-    T R                  R                  T R                  R                  :g  5        T R                  T R                  T R                  R                  5       -   T R                  T R                  -   5        T R                  T R                  T R                  R                  5       -
  T R                  T R                  -
  5        T R                  T R                  T R                  R                  5       -  T R                  R                  T R                  R                  -  T R                  R
                  T R                  R
                  -  T R                  R                  T R                  R                  -  45        T R                  T R                  T R                  R                  5       -  T R                  R                  T R                  R                  -  T R                  R
                  T R                  R
                  -  T R                  R                  T R                  R                  -  45        T R                  T R                  T R                  R                  5       -  T R                  R                  T R                  R                  -  T R                  R
                  T R                  R
                  -  T R                  R                  T R                  R                  -  45        T R                  T R                  T R                  R                  5       -  T R                  R                  T R                  R                  -  T R                  R
                  T R                  R
                  -  T R                  R                  T R                  R                  -  45        T R                  T R                  T R                  R                  5       -  T R                  R                  T R                  R                  -  T R                  R
                  T R                  R
                  -  T R                  R                  T R                  R                  -  45        T R                  T R                  T R                  R                  5       :  T R                  R                  T R                  R                  :  =(       aa    T R                  R
                  T R                  R
                  :  =(       a-    T R                  R                  T R                  R                  :  5        T R                  T R                  T R                  R                  5       :  T R                  R                  T R                  R                  :  =(       aa    T R                  R
                  T R                  R
                  :  =(       a-    T R                  R                  T R                  R                  :  5        T R                  T R                  T R                  R                  5       :*  T R                  R                  T R                  R                  :*  =(       aa    T R                  R
                  T R                  R
                  :*  =(       a-    T R                  R                  T R                  R                  :*  5        T R                  T R                  T R                  R                  5       :  T R                  R                  T R                  R                  :  =(       aa    T R                  R
                  T R                  R
                  :  =(       a-    T R                  R                  T R                  R                  :  5        T R                  T R                  T R                  R                  5       :H  T R                  R                  T R                  R                  :H  =(       aa    T R                  R
                  T R                  R
                  :H  =(       a-    T R                  R                  T R                  R                  :H  5        T R                  T R                  T R                  R                  5       :g  T R                  R                  T R                  R                  :g  =(       aa    T R                  R
                  T R                  R
                  :g  =(       a-    T R                  R                  T R                  R                  :g  5        T R                  T R                  R                  5       T R                  R                  5       -   T R                  T R                  -   5        T R                  T R                  R                  5       T R                  R                  5       -
  T R                  T R                  -
  5        T R                  T R                  R                  5       T R                  R                  5       -  T R                  R                  T R                  R                  -  T R                  R
                  T R                  R
                  -  T R                  R                  T R                  R                  -  45        T R                  T R                  R                  5       T R                  R                  5       -  T R                  R                  T R                  R                  -  T R                  R
                  T R                  R
                  -  T R                  R                  T R                  R                  -  45        T R                  T R                  R                  5       T R                  R                  5       -  T R                  R                  T R                  R                  -  T R                  R
                  T R                  R
                  -  T R                  R                  T R                  R                  -  45        T R                  T R                  R                  5       T R                  R                  5       -  T R                  R                  T R                  R                  -  T R                  R
                  T R                  R
                  -  T R                  R                  T R                  R                  -  45        T R                  T R                  R                  5       T R                  R                  5       -  T R                  R                  T R                  R                  -  T R                  R
                  T R                  R
                  -  T R                  R                  T R                  R                  -  45        T R                  T R                  R                  5       T R                  R                  5       :  T R                  R                  T R                  R                  :  =(       aa    T R                  R
                  T R                  R
                  :  =(       a-    T R                  R                  T R                  R                  :  5        T R                  T R                  R                  5       T R                  R                  5       :  T R                  R                  T R                  R                  :  =(       aa    T R                  R
                  T R                  R
                  :  =(       a-    T R                  R                  T R                  R                  :  5        T R                  T R                  R                  5       T R                  R                  5       :*  T R                  R                  T R                  R                  :*  =(       aa    T R                  R
                  T R                  R
                  :*  =(       a-    T R                  R                  T R                  R                  :*  5        T R                  T R                  R                  5       T R                  R                  5       :  T R                  R                  T R                  R                  :  =(       aa    T R                  R
                  T R                  R
                  :  =(       a-    T R                  R                  T R                  R                  :  5        T R                  T R                  R                  5       T R                  R                  5       :H  T R                  R                  T R                  R                  :H  =(       aa    T R                  R
                  T R                  R
                  :H  =(       a-    T R                  R                  T R                  R                  :H  5        T R                  T R                  R                  5       T R                  R                  5       :g  T R                  R                  T R                  R                  :g  =(       aa    T R                  R
                  T R                  R
                  :g  =(       a-    T R                  R                  T R                  R                  :g  5        T R                  [        T R                  R                  5       5      [        T R                  R                  5      [        T R                  R
                  5      [        T R                  R                  5      45        T R                  T R                  R                  5       * T R                  * 5        T R                  T R                  R                  5       7T R                  75        T R                  [        T R                  R                  5       5      [        T R                  5      5        T R                  [        [        5       R                  5       5      [        [        5       5      5        T R                  T R                  R                  5       S	-  S
5        T R                  [        S 5        T R                  [         U 4S j5        T R                  [         S 5        T R                  [         S 5        T R                  [         S 5        T R                  [         U 4S j5        T R                  [         U 4S j5        T R                  [         U 4S j5        T R                  [         U 4S j5        T R                  [         U 4S j5        T R                  [         U 4S j5        g )Nr$   g      @g      @g      r&   rc   r   ir   r  c                  L    [        [        SSS5      R                  5       S5      $ r  )r  r   r  r2   r"   r   r   2Vector3TypeTest.test_elementwise.<locals>.<lambda>	  s    c'"a2C2O2O2QSV.Wr"   c                  >   > T R                   R                  5       S-  $ r  r  rN   s   r   r   r  	  r  r"   c                  >    [        SSS5      R                  5       S-  $ r  r   r  r2   r"   r   r   r  	      WQ15E5Q5Q5SVW5Wr"   c                  >    [        SSS5      R                  5       S-  $ r  r  r2   r"   r   r   r  	  s    wq!Q'7'C'C'E'Jr"   c                  >    [        SSS5      R                  5       S-  $ r  r  r2   r"   r   r   r  	  r  r"   c                  T   > [        SSS5      R                  5       T R                  -  $ r   r   r  rB   rN   s   r   r   r  	       wq!Q'7'C'C'E'Tr"   c                  T   > [        SSS5      R                  5       T R                  -  $ r   r  rN   s   r   r   r  	  s     wq!Q'7'C'C'E'Ur"   c                  T   > [        SSS5      R                  5       T R                  -  $ r   r  rN   s   r   r   r  	  r  r"   c                  >   > ST R                   R                  5       -  $ r   r  rN   s   r   r   r  	  r  r"   c                  >   > ST R                   R                  5       -  $ r   r  rN   s   r   r   r  	  r  r"   c                  >   > ST R                   R                  5       -  $ r   r  rN   s   r   r   r  	  r  r"   )r/   rH   r  rL   rT   rU   r  rM   r   r   rK   r  r0  rB   r   r   r  rN   s   `r   r   Vector3TypeTest.test_elementwise  s   GG!DGG+WWYY $''))dgg"5twwyy4777JK	
 	GG!DGG+WWYY $''))dgg"5twwyy4777JK	
 	GG!DGG+WWYY $''))dgg"5twwyy4777JK	
 	GG!DGG+WWYY $''))dgg"5twwyy4777JK	
 	GG!TWW,WWYY$''!47799#7dgg9MN	
 	GG!TWW,WWYYDGG!3TWWYY5GH	
 	GG!DGG+WWYY $''))dgg"5twwyy4777JK	
 	GG!DGG+GGIIODGGII$7ODGGII<O	
 	GG!DGG+GGIIODGGII$7ODGGII<O	
 	GG!TWW,GGII RTWWYY$''%9Rdggii477>R	
 	GG!TWW,GGII RTWWYY$''%9Rdggii477>R	
 	GG!TWW,GGII RTWWYY$''%9Rdggii477>R	
 	GG!TWW,GGII RTWWYY$''%9Rdggii477>R	

 	TWW0022GAq!4Dtww4NOtww2244gc36Ltww6VWtww2244cDGGmD477&&((DGGIItdggii/		1AB	
 	DGG''))TWWYY		 14477993DE	
 	TWW((**+DGGII~#twwyy. 1S$''))^3DE	
 	##%%DGGIIq47799}a$''))m'T	
 	##%%q47799}'XTWWYY'X1twwyy=	
 	##%%q47799}'XTWWYY'X1twwyy=	
 	$$&&N@qDGGII~@!twwyy.	
 	$$&&N@qDGGII~@!twwyy.	
 	$$&&N@qDGGII~@!twwyy.	
 	$''%%''$''))OCdggiiCB$''))O	
 	$''%%''$''))OCdggiiCB$''))O	
 	dgg113dgg=>TWWN,,.8$''DGG:KL,,.8$''DGG:KL,,.8$''DGG:KLGG!DGG+WWYY"DGGII		$947799twwyy;PQ	
 	GG!DGG+WWYY"DGGII		$947799twwyy;PQ	
 	GG!TWW,WWYY$''))#TWWYY$''))%;TWWYY$''))=ST	
 	GG!TWW,WWYY		!47799dggii#7DGGII9MN	
 	GG!DGG+WWYY"DGGII		$947799twwyy;PQ	
 	GG!DGG+GGII		!Udggii$''))&;U		DGGII@U	
 	GG!DGG+GGII		!Udggii$''))&;U		DGGII@U	
 	GG!TWW,GGII" '		TWWYY&'		TWWYY&		
 	GG!TWW,GGII" '		TWWYY&'		TWWYY&		
 	GG!TWW,GGII" '		TWWYY&'		TWWYY&		
 	GG!TWW,GGII" '		TWWYY&'		TWWYY&		
 	477#6#6#88$''DGG:KL477#6#6#88$''DGG:KLGGdgg))++WWYY"DGGII		$947799twwyy;PQ	
 	GGdgg))++WWYY"DGGII		$947799twwyy;PQ	
 	GGtww**,,WWYY$''))#TWWYY$''))%;TWWYY$''))=ST	
 	GGtww**,,WWYY		!47799dggii#7DGGII9MN	
 	GGdgg))++WWYY"DGGII		$947799twwyy;PQ	
 	GGdgg))++GGII		!Udggii$''))&;U		DGGII@U	
 	GGdgg))++GGII		!Udggii$''))&;U		DGGII@U	
 	GGtww**,,GGII" '		TWWYY&'		TWWYY&		
 	GGtww**,,GGII" '		TWWYY&'		TWWYY&		
 	GGtww**,,GGII" '		TWWYY&'		TWWYY&		
 	GGtww**,,GGII" '		TWWYY&'		TWWYY&		
 	GG!DGG$7$7$99477TWW;L	
 	GG!DGG$7$7$99477TWW;L	
 	GG!DGG$7$7$99WWYY"DGGII		$947799twwyy;PQ	
 	GG!DGG$7$7$99WWYY"DGGII		$947799twwyy;PQ	
 	GG!TWW%8%8%::WWYY$''))#TWWYY$''))%;TWWYY$''))=ST	
 	GG!TWW%8%8%::WWYY		!47799dggii#7DGGII9MN	
 	GG!DGG$7$7$99WWYY"DGGII		$947799twwyy;PQ	
 	GG!DGG$7$7$99GGII		!Udggii$''))&;U		DGGII@U	
 	GG!DGG$7$7$99GGII		!Udggii$''))&;U		DGGII@U	
 	GG!TWW%8%8%::GGII" '		TWWYY&'		TWWYY&		
 	GG!TWW%8%8%::GGII" '		TWWYY&'		TWWYY&		
 	GG!TWW%8%8%::GGII" '		TWWYY&'		TWWYY&		
 	GG!TWW%8%8%::GGII" '		TWWYY&'		TWWYY&		
 	##%&TWWYYTWWYYTWWYY(X	
 	$''--//$'':$''--//$'':dgg1134d477mDgi3356WYH113q8)D*&WX+-UV+-WXJ	
 	+-WXT	
 	U	
 	T	
 	+-ST+-TU+-STr"   c                 l  ^ ^^^ T R                  [        U 4S j5        T R                  [        U 4S j5        T R                  [        U 4S j5        SmT R                  R                  T R                  5      T-  nU U4S j[        TS-   5       5        HR  u  p#T R                  UR                  5       S5        T R                  T R                  R                  U5      X!-  5        MT     T R                  WT R                  5        [        SSS5      m[        SSS	5      mTR                  5       TR                  5       -  nUUU4S
 j[        TS-   5       5        Hd  u  p#T R                  UR                  5       TR                  5       TR                  5       -
  [        U5      T-  -  TR                  5       -   5        Mf     T R                  UT5        T R                  TR                  TS5      T5        T R                  TR                  TS5      T5        T R                  [        U4S j5        g )Nc                  P   > T R                   R                  T R                  S5      $ r  r  rN   s   r   r   ,Vector3TypeTest.test_slerp.<locals>.<lambda>	  r  r"   c                  P   > T R                   R                  T R                  S5      $ r  r  rN   s   r   r   r  	  r  r"   c                  P   > T R                   R                  T R                   S5      $ r  r  rN   s   r   r   r  	  r  r"   r   c           	   3      >#    U  H8  oTR                   R                  TR                  U[        T5      -  5      4v   M:     g 7fr   )rC   r  rD   r  )r#  r$  r   r%  s     r   r&  -Vector3TypeTest.test_slerp.<locals>.<genexpr>	  s4      
CSadggq5<'789CSs   A Ar   r   r   r  c           	   3   d   >#    U  H%  oTR                  TU* [        T5      -  5      4v   M'     g 7fr   r!  r"  s     r   r&  r  	  r)  r*  r   c                  *   > T R                  T * S5      $ r  r,  r-  s   r   r   r  	  r.  r"   )r   r   rC   r  rD   r/  r   r  r/   r   r  r  r0  s   `    @@@r   r4  Vector3TypeTest.test_slerp	  s   *&NO*&NO*&STWW%%dgg.6

CHQRCS
DA ""188:q1""477#3#3A#6G	

 	DGG$S!QQA		biik1T5QRCSTDA""
ryy{*uQx%/?@299;N U
 	B"c*B/"c*B/*&@Ar"   c                 .  ^^ [        SSS5      m[        SSS5      mU R                  TR                  TS5      S5        U R                  [        UU4S j5        [        SSS5      m[        SSS5      mU R                  TR                  TS5      S	5        g )
Nr   r   r   )r$   r$   r$   c                  (   > T R                  TS5      $ r8  r9  r:  s   r   r   +Vector3TypeTest.test_lerp.<locals>.<lambda>	  r<  r"   r%   r   )r   r*   r  )r   r/   r   r   r   r=  s    @@r   r    Vector3TypeTest.test_lerp	  s    Q1RR S)95*&>?S"c"RS!S)=9r"   c                   ^ [        5       mTR                  U R                  R                  5       5        U R	                  U R                  T5        U R	                  U R                  [         R                  " U R                  R                  5       5      5        U R	                  U R
                  R                  5       S5        U R	                  U R                  R                  5       S5        U R	                  U R                  R                  5       S5        U R	                  SU R                  -  R                  5       S5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S	 j5        U R                  [        U4S
 j5        U R                  [        U4S j5        U R                  [        S 5        U R                  [        S 5        U R                  [        S 5        U R                  [        S 5        U R                  [        S 5        U R                  [        S 5        TR                  S5        U R	                  TSU R                  -  5        U R	                  [         R                  " S5      SU R                  -  5        U R	                  [         R                  " S5      T5        g )N)r   r\  r   )r   r\  r\  r&  rc   )rc   r\  r\  c                  &   > T R                  S5      $ Nr  from_sphericalr{   s   r   r   0Vector3TypeTest.test_spherical.<locals>.<lambda>
  s    Q-=-=>P-Qr"   c                  &   > T R                  S5      $ Nabcr  r{   s   r   r   r  
  s    Q-=-=e-Dr"   c                  &   > T R                  S5      $ NrQ  r  r{   s   r   r   r  
      Q-=-=l-Kr"   c                  &   > T R                  S5      $ r  r  r{   s   r   r   r  	
  r  r"   c                  &   > T R                  S5      $ r  r  r{   s   r   r   r  

  s    Q-=-=f-Er"   c                  *   > T R                  SSS5      $ Nr   rc   r&   r  r{   s   r   r   r  
  s    Q-=-=aA-Fr"   c                  .    [         R                  " S5      $ r  r   r  r2   r"   r   r   r  
  s    W-C-CDV-Wr"   c                  .    [         R                  " S5      $ r  r  r2   r"   r   r   r  
  s    W-C-CE-Jr"   c                  .    [         R                  " S5      $ r  r  r2   r"   r   r   r  
      W-C-CL-Qr"   c                  .    [         R                  " S5      $ r  r  r2   r"   r   r   r  
  r  r"   c                  .    [         R                  " S5      $ r  r  r2   r"   r   r   r  
  s    W-C-CF-Kr"   c                  2    [         R                  " SSS5      $ r  r  r2   r"   r   r   r  
  s    W-C-CAq!-Lr"   )r   r\  r\  r   )
r   r  rH   as_sphericalr/   rC   rD   r  r   r   rV   s    @r   test_sphericalVector3TypeTest.test_spherical	  s   I	--/0!$'"8"89M9M9O"PQ--/<--/=--/;!dgg+335{C)%QR)%DE)%KL)%KL)%EF)%FG)%WX)%JK)%QR)%QR)%KL)%LM	'C$''M*//>dggN//>Br"   c                 $   [        SSS5      nUS-  nU R                  US5        [        SSS5      nUS-  nU R                  US5        [        SSS5      nUS-  nU R                  US5        [        SSS5      nUS-  nU R                  US5        g )Nr   rc   )re   re   re   rg  r:  r        @r  r  r  rV   s     r   test_inplace_operators&Vector3TypeTest.test_inplace_operators
  s    Aq!	QO,Aq!	QO,Cc"	YO,Cc"	YO,r"   c                     SS K n[        SS5      n[        SSS5      nU R                  UR	                  UR                  U5      5      U5        U R                  UR	                  UR                  U5      5      U5        g )Nr   r   rc   r&   )pickler   r   r/   loadsdumps)r   r  rK   r   s       r   test_pickleVector3TypeTest.test_pickle(
  sb    Q]Q1fll2&67<fll2&67<r"   c                      " S S[         R                  R                  5      nU" SSS5      nUS-  nU R                  US5        g )Nc                       \ rS rSrSrg)7Vector3TypeTest.test_subclass_operation.<locals>.Vectori1
  r2   Nra  r2   r"   r   rb  r  1
  rc  r"   rb  re   rc   r  )r   r   r   r/   )r   rb  rW   s      r   rg  'Vector3TypeTest.test_subclass_operation0
  sA    	V[[(( 	 3S!	QO,r"   c                 T    [        SS5      nU R                  UR                  S5        g)z*We can get constant values from a swizzle.r  r   )      @r   r   N)r   r/   xy1rV   s     r   test_swizzle_constants&Vector3TypeTest.test_swizzle_constants8
  s%    AqMEE	
r"   c                 T    [        SS5      nU R                  UR                  S5        g)z,We can get 4 constant values from a swizzle.r  r   )r	  r   r   r   N)r   r/   xy01rV   s     r   test_swizzle_four_constants+Vector3TypeTest.test_swizzle_four_constants@
  s%    AqMFF 	
r"   c                     [        SS5      nU R                  [        5         UR                    SSS5        g! , (       d  f       g= f)z2An out-of-bounds swizzle raises an AttributeError.r  r   N)r   r   r  r  rV   s     r   test_swizzle_oob Vector3TypeTest.test_swizzle_oobH
  s.    AqM~.EE /..s	   8
Ac                     [        SS5      nU R                  [        5         SUl        SSS5        g! , (       d  f       g= f)z6An out-of-bounds swizzle set raises an AttributeError.r  r   r  N)r   r   r  xzrV   s     r   test_swizzle_set_oob$Vector3TypeTest.test_swizzle_set_oobN
  s0     AqM~.AD /..s	   3
Ac                    [        SSS5      n[        SSS5      nUR                  U5      nU R                  UR                  UR                  5        U R                  SUR                  5        U R                  SUR
                  5        g)rj  rc   r&   rg  r   r   Nr   rl  r/   rT   rU   r  rm  s       r   test_project_v3_onto_x_axis+Vector3TypeTest.test_project_v3_onto_x_axisU
  sr     Aq!Q" 6" 	fhh'FHH%FHH%r"   c                    [        SSS5      n[        SSS5      nUR                  U5      nU R                  SUR                  5        U R                  UR                  UR                  5        U R                  SUR
                  5        g)rs  rc   r&   rg  r   r   Nr  rt  s       r   test_project_v3_onto_y_axis+Vector3TypeTest.test_project_v3_onto_y_axisc
  sr     Aq!C# 6" 	FHH%fhh'FHH%r"   c                    [        SSS5      n[        SSS5      nUR                  U5      nU R                  SUR                  5        U R                  SUR                  5        U R                  UR
                  UR
                  5        g)zMProject onto z-axis, e.g. get the component pointing in the z-axis direction.rc   r&   rg  r   M   Nr  rt  s       r   test_project_v3_onto_z_axis+Vector3TypeTest.test_project_v3_onto_z_axisq
  sr     Aq!Ar" 6" 	FHH%FHH%fhh'r"   c                    [        SSS5      n[        SSS5      nUR                  U5      nUR                  U5      UR                  U5      -  U-  nU R                  UR                  UR                  5        U R                  UR
                  UR
                  5        U R                  UR                  UR                  5        g)ry  rc   r&   rg  r$   r  N)r   rl  r  r   rT   rU   r  rz  s        r   test_project_v3_onto_other*Vector3TypeTest.test_project_v3_onto_other
  s     Aq!1a  5! 55<%))E"22U:xzz6884xzz6884xzz6884r"   c                    [        SSS5      n[        SSS5      nUR                  [        U5      5      nUR                  U5      UR                  U5      -  U-  nU R	                  UR
                  UR
                  5        U R	                  UR                  UR                  5        U R	                  UR                  UR                  5        g)r  rc   r&   rg  r$   r  N)r   rl  r   r  r   rT   rU   r  rz  s        r   #test_project_v3_onto_other_as_tuple3Vector3TypeTest.test_project_v3_onto_other_as_tuple
  s     Aq!1a  5<( 55<%))E"22U:xzz6884xzz6884xzz6884r"   c                    [        SSS5      n[        SSS5      nUR                  [        U5      5      nUR                  U5      UR                  U5      -  U-  nU R	                  UR
                  UR
                  5        U R	                  UR                  UR                  5        U R	                  UR                  UR                  5        g)r  rc   r&   rg  r$   r  N)r   rl  rF   r  r   rT   rU   r  rz  s        r   "test_project_v3_onto_other_as_list2Vector3TypeTest.test_project_v3_onto_other_as_list
  s     Aq!1a  4;' 55<%))E"22U:xzz6884xzz6884xzz6884r"   c                 z    [        SSS5      n[        SSS5      nU R                  [        UR                  U5        g)r  rc   r&   rg  r   N)r   r   r   rl  r  s      r   /test_project_v3_raises_if_other_has_zero_length?Vector3TypeTest.test_project_v3_raises_if_other_has_zero_length
  s8     Aq!1a  	*aii7r"   c                 d    [        SSS5      nSnU R                  [        UR                  U5        g)r  rc   r&   rg  r   N)r   r   r   rl  r  s      r   /test_project_v3_raises_if_other_is_not_iterable?Vector3TypeTest.test_project_v3_raises_if_other_is_not_iterable
  s/     Aq! 	)QYY6r"   c                     [        SSS5      nU R                  [        U[        5      5        U R	                  [        U[
        5      5        g )Nr&   rg  r$   )r   r  r  r   r  r   rV   s     r   r  #Vector3TypeTest.test_collection_abc
  s8    Aq!
1j12Ax01r"   c                 L   [        SSS5      nUR                  S5      nUR                  SS5      nU R                  X#5        UR                  S5        U R                  X5        UR                  SS5        U R                  X5        [        SSS5      nU R                  XB5        g )Nr  rc   r$   r   g;Y@giAH1?)r   r  r/   r  r  s        r   test_clamp_mag_v3_max%Vector3TypeTest.test_clamp_mag_v3_max
  s    Q1"1% 
a  
a# /1CEWX)r"   c                     [        SSS5      nUR                  SS5      nUR                  SS5        [        SSS5      nU R                  X15        U R                  X25        g )	Nr&   r   rc   r$   r   g!
!	@g4-a?g4-a@)r   r  r  r/   r  s       r   test_clamp_mag_v3_min%Vector3TypeTest.test_clamp_mag_v3_min
  s_    Q12&
a$/1CEWX))r"   c           
         [        SSS5      nS Hg  nU R                  US9   UR                  " U6 nUR                  " U6   U R	                  X5        U R	                  U[        SSS5      5        S S S 5        Mi     g ! , (       d  f       M{  = f)Nr   rc   r&   )r  )r'   g333333@)r  gRQ@r  r  )r   r  r  r  r/   r  s       r   test_clamp_mag_v3_no_change+Vector3TypeTest.test_clamp_mag_v3_no_change
  s    Q1
D 4(''.%%t,  (  WQ1%56	 )(
 )(s   AA<<
B	c                 d   [        SSS5      nUR                  SS5      nUR                  SS5        U R                  X5        U R	                  UR                  5       S5        UR                  S5      nUR                  SS5        U R                  X5        U R                  U[        5       5        g r  )r   r  r  r/   r   r  r=  s      r   test_clamp_mag_v3_edge_cases,Vector3TypeTest.test_clamp_mag_v3_edge_cases
  s    Q11%
a# ryy{A."
a# WY'r"   c                    [        SSS5      nS H_  nU R                  US9   U R                  " [        UR                  /UQ76   U R                  " [        UR
                  /UQ76   S S S 5        Ma     S H_  nU R                  US9   U R                  " [        UR                  /UQ76   U R                  " [        UR
                  /UQ76   S S S 5        Ma     [        5       nU R                  [        UR                  S5        U R                  [        UR
                  S5        g ! , (       d  f       GM%  = f! , (       d  f       M  = fr  )r   r  r   r   r  r  r   r  s       r   test_clamp_mag_v3_errors(Vector3TypeTest.test_clamp_mag_v3_errors
  s   Q1
L
 <8!!)R-?-?O,O!!)R-B-BR\R 98

L <8!!*b.@.@P<P!!*b.C.CSlS 98
 Y*b&8&8!<*b&;&;Q?# 98 98s   AD%AD8%
D5	8
E	c           	         [        SSS5      n " S S[         5      nU" SSS5      nU R                  UR                  5       S5        U R                  [	        U5      U5        U R                  [	        U5      [	        UR                  5       5      5        U R                  U[	        UR                  U5      5      5        U R                  U[	        UR                  US5      5      5        U R                  U[	        UR                  US5      5      5        U R                  U[	        UR                  SU5      5      5        U R                  U[	        UR                  SU5      5      5        U R                  U[	        UR                  U5      5      5        U R                  U[	        UR                  US5      5      5        U R                  U[	        UR                  S5      5      5        U R                  U[	        UR                  SS5      5      5        U R                  U[	        UR                  5       U-   5      5        U" SSS5      nU R                  [	        X4-   5      U5        U R                  [	        X4-
  5      U5        U R                  [	        US	-  5      U5        U R                  [	        US	-  5      U5        U R                  [	        UR                  5       S	-  5      U5        g
)z Check if Vector3 is subclassablerg  rc   r   c                       \ rS rSrS rSrg)7Vector3TypeTest.test_subclassing_v3.<locals>.TestVectori  c                     gr  r2   rN   s    r   r  LVector3TypeTest.test_subclassing_v3.<locals>.TestVector.supermariobrosiscool  r  r"   r2   Nr  r2   r"   r   r  rE    r  r"   r  r   r  r$   r&   N)r   r/   r  r5  r   r   r  r   r  r`  ri  rl  r   r  r  r  s        r   test_subclassing_v3#Vector3TypeTest.test_subclassing_v3  sL   Aq!	 	 1a#335s;DGZ0DGT%**,%78T%--*:%;<T%**Q*:%;<T%++a*;%<=T%,,q!*<%=>T%*:*:1a*@%ABT%--*:%;<T%*<*<Q*B%CDT%*?*?*B%CDT%*?*?1*E%FGT%*;*;*=*E%FGAq!$en-z:en-z:eai*5eai*5e//1Q67Dr"   c                     [        SSS5      n[        SSS5      n[        SSS	5      nUR                  5       nUR                  US
5      nUR                  US
5        U R	                  XQ5        U R	                  XA5        g )Ngxvk@g]Y@g%I fE@r   r   gq=
ףE@r   r   gK@r&   r   r   r   r   r/   r   s         r   r   'Vector3TypeTest.test_move_towards_basic.  su    :}kBvu--KKM	$$VQ/!!&!,*-r"   c                     [        SSS5      n[        SSS5      nUR                  5       nUR                  US5      nUR                  US5        U R	                  XA5        U R	                  X15        g )Nr   r   g     @E@r   r   g     1@r   rK  )r   r   r   r   r   s        r   r   .Vector3TypeTest.test_move_towards_max_distance:  sg    5$-vt,KKM	$$Xs3!!(C0*-r"   c                     [        SSS5      n[        SSS5      nUR                  5       nUR                  US5      nUR                  US5        U R	                  XA5        U R	                  X15        g )Nr   r   g     8@r   r   g	@r   rK  )r   r   r   r   r   s        r   r   !Vector3TypeTest.test_move_nowhereE  sg    vt,,KKM	$$VQ/!!&!,(+r"   c                     [        SSS5      n[        SSS5      n[        SSS	5      nUR                  5       nUR                  US
5      nUR                  US
5        U R	                  XQ5        U R	                  XA5        g )Ng,@gI@gH@r   r   gJ@r   r   g)\S@r   rK  r   s         r   r   Vector3TypeTest.test_move_awayP  su    :}kBvt,.KKM	$$VR0!!&"-*-r"   c                     [        SSS5      nUR                  5       nS HF  nU R                  UR                  X#5      U5        UR	                  X5        U R                  X5        MH     g )Nr   r   g)\^r   )r   r   r/   r   r   r   s       r   r   &Vector3TypeTest.test_move_towards_self\  s\    dGW-xxz-DS--d93?  +S' .r"   c                    [        SSS5      n[        SSS5      nU R                  [        UR                  USS5        U R                  [        UR                  USS5        U R                  [        UR                  US	5        U R                  [        UR                  US
5        U R                  [        UR                  SS5        U R                  [        UR                  SS5        g )Nr   r   gffffff@r   r   g     Xzr&   rc   r   r  r  d)r   r   r   r   r   )r   r   r   s      r   r   (Vector3TypeTest.test_move_towards_errorsd  s    vs+/)V%8%8&!QG)V%;%;VQJ)V%8%8&#F)V%;%;VSI)V%8%8#qA)V%;%;S!Dr"   )rC   rD   r  rG   rJ   rL   rM   rE   rI   rH   rK   rB   N)er3   r4   r5   r6   rO   rX   r  rm   rp   r  r\   r`   rf   r  r   r   r   r	  r  r!  r%  r(  r+  r1  r7  r@  rC  rG  rY  r   rb  ro  rt  rx  r0  r6  r;  r@  rE  rK  rO  rS  rW  r]  ra  re  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  unittestskipIfIS_PYPYr  r  r  r  r4  r    r  r  r  rg  r  r  r  r  r  r  r!  r$  r'  r*  r-  r0  r  r5  r8  r;  r>  rA  rH  r   r   r   r   r   r   r8   r2   r"   r   r  r    s%   ###$$###96./-6^#1J:7676	3
4!0:"43
$vPp
@
M"M+6,

')
%6-

(*
%6,

!)
H"K">?H 
*3
;
GKU0*HX+@Z
<10 __W238 48.5@lU\	B4:C4-"=-

 __W23 4&&(555872
**7
(@4E@
.	.	,
.(	Er"   r  __main__)r   platformrX  collections.abcr   r   pygame.mathr   r   r   python_implementationrZ  TestCaser	   r:   r  r3   mainr2   r"   r   <module>rb     s       0  (
H224
4@OX&& @OFnEh'' nEb#mEh'' mE`5 zMMO r"   