
    ]j@                     H    d dl Z d dlmZ d dlT  G d de j                  ZdS )    N)random)*c                   h    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd ZdS )TestElementPointc                     t          d          }|                     |d           |                     |d           |                     |ddg           |                     |d           d S )Nz(0,24))r      y              8@r   r   PointassertEqualselfps     J/home/agentuser/manim-venv/lib/python3.11/site-packages/test/test_point.pytest_point_init_stringz'TestElementPoint.test_point_init_string	   so    (OOG$$$G$$$QG$$$H%%%%%    c                    t          d          D ]}t          t                      dz  t                      dz            }t                      t          z  t          dz  z
  }t                      dz  }t                              |||          }|                     t                              ||          |           d S )Ni  2      )ranger
   r   taupolarassertAlmostEqualangle)r   ir   arms         r   test_polar_anglez!TestElementPoint.test_polar_angle   s    t 	9 	9AfhhmVXX]33A3q(A2AAq!$$A""5;;q!#4#4a8888	9 	9r   c                 N    |                      t          dd          d           d S )Nr   z"string that doesn't parse to point)assertNotEqualr
   r   s    r   test_not_equal_unparsedz(TestElementPoint.test_not_equal_unparsed   s'    E!QKK)MNNNNNr   c                    t          d          }|dz  }|                     |d           |t          dd          z  }|                     |d           |dz  }|                     |d            G d d          }| |            z  }|                     |d	           |t          d
          z  }|                     |d           |dz  }|                     |d           |                     t          d           d S )Nr      r   r%   r   r%         ?       @   r)   c                       e Zd Zd ZdS ),TestElementPoint.test_dunder_iadd.<locals>.cc                 "    d| _         d| _        d S Nr%   xyr!   s    r   __init__z5TestElementPoint.test_dunder_iadd.<locals>.c.__init__%       r   N__name__
__module____qualname__r1    r   r   cr+   $   #            r   r8      r;   -4,-4r   r   zp += "hello"r
   r   assertRaises	TypeErrorr   r   r8   s      r   test_dunder_iaddz!TestElementPoint.test_dunder_iadd   s#   !HH	VF###	U1a[[F###	VF###	 	 	 	 	 	 	 	
 	
QQSSF###	U7^^F###	QF###)^44444r   c                 4   t          d          }|dz  }|                     |d           |t          dd          z  }|                     |d           |dz  }|                     |d            G d d	          }| |            z  }|                     |d
           |t          d          z  }|                     |d           |dz  }|                     |d           |dz
  }|                     |d           |                     t          d           d S )Nr   r$   r   r%   rE   r'   rI   c                       e Zd Zd ZdS ),TestElementPoint.test_dunder_isub.<locals>.cc                 "    d| _         d| _        d S r-   r.   r!   s    r   r1   z5TestElementPoint.test_dunder_isub.<locals>.c.__init__;   r2   r   Nr3   r7   r   r   r8   rK   :   r9   r   r8   rN   r<   r=   )rG   r   zp -= "hello"r>   r   r   r8   r   s       r   test_dunder_isubz!TestElementPoint.test_dunder_isub1   sB   !HH	VG$$$	U1a[[H%%%	VH%%%	 	 	 	 	 	 	 	
 	
QQSSH%%%	U7^^F###	QG$$$EG$$$)^44444r   c                    t          d          }|dz   }|                     |d           |t          dd          z   }|                     |d           |dz   dz   }|                     |d            G d d          }| |            z   }|                     |d	           |t          d
          z   }|                     |d           |dz   }|                     |d           |                     t          d           d S )Nr   r$   r%   r&   y               @r(   c                       e Zd Zd ZdS )+TestElementPoint.test_dunder_add.<locals>.cc                 "    d| _         d| _        d S r-   r.   r!   s    r   r1   z4TestElementPoint.test_dunder_add.<locals>.c.__init__S   r2   r   Nr3   r7   r   r   r8   rS   R   r9   r   r8   r:   r<   r=   zp = p + "hello"r>   rA   s      r   test_dunder_addz TestElementPoint.test_dunder_addI   s'   !HHJF###aOF###EBJF###	 	 	 	 	 	 	 	
 GF###gF###EF###)%677777r   c                    t          d          }|dz
  }|                     |d           |t          dd          z
  }|                     |d           |dz
  }|                     |d            G d d	          }| |            z
  }|                     |d
           |t          d          z
  }|                     |d           |dz
  }|                     |d           |                     t          d           d S )Nr   r$   rD   r%   rF   r'   rH   c                       e Zd Zd ZdS )+TestElementPoint.test_dunder_sub.<locals>.cc                 "    d| _         d| _        d S r-   r.   r!   s    r   r1   z4TestElementPoint.test_dunder_sub.<locals>.c.__init__i   r2   r   Nr3   r7   r   r   r8   rX   h   r9   r   r8   rM   r<   r=   zp = p - "hello"r>   rA   s      r   test_dunder_subz TestElementPoint.test_dunder_sub_   s#   !HHJG$$$aOH%%%LH%%%	 	 	 	 	 	 	 	
 GH%%%gF###EG$$$)%677777r   c                    t          d          }d|z
  }|                     |d           t          dd          |z
  }|                     |d           d|z
  }|                     |d            G d d          } |            |z
  }|                     |d	           t          d
          |z
  }|                     |d           d|z
  }|                     |d           |                     t          d           d S )Nr   r$   r%   )r   r%   r'   )r%   r%   c                       e Zd Zd ZdS ),TestElementPoint.test_dunder_rsub.<locals>.cc                 "    d| _         d| _        d S r-   r.   r!   s    r   r1   z5TestElementPoint.test_dunder_rsub.<locals>.c.__init__   r2   r   Nr3   r7   r   r   r8   r]   ~   r9   r   r8   r=   r<   rM   )   r;   zp = "hello" - pr>   rA   s      r   test_dunder_rsubz!TestElementPoint.test_dunder_rsubu   s#   !HHQJF###!QKK!OF###qLF###	 	 	 	 	 	 	 	
 ACC!GF###'NNQH%%%EF###)%677777r   c                 6   t          dd          }|dz  }|                     |d           |t          dd          z  }|                     |d           |dz  }|                     |d            G d d	          }| |            z  }|                     |d
           |t          d          z  }|                     |d           |dz  }|                     |d           |dz  }|                     |d           |dz  }|                     |d           dS )z
        For backwards compatibility multiplication of points works like multiplication of complex variables.

        :return:
        r   r$   )r   r   r%   )r   r;   r'   )ir;   c                       e Zd Zd ZdS ),TestElementPoint.test_dunder_mult.<locals>.cc                 "    d| _         d| _        d S r-   r.   r!   s    r   r1   z5TestElementPoint.test_dunder_mult.<locals>.c.__init__   r2   r   Nr3   r7   r   r   r8   rc      r9   r   r8   )irN   r<   )    @   z
scale(0.1))g	@g@Nr	   rO   s       r   test_dunder_multz!TestElementPoint.test_dunder_mult   sP    !QKK	VF###	U1a[[F###	VG$$$	 	 	 	 	 	 	 	
 	
QQSSI&&&	U7^^H%%%	QH%%%EH%%%	\J'''''r   c                     t          dd          }t          d          }|                    |           |                     |d           d S )Nr;   zscale(4))   ri   )r
   Matrixmatrix_transformr   r   r   r   s      r   test_dunder_transformz&TestElementPoint.test_dunder_transform   sL    !QKK:	1H%%%%%r   c                 ~    t          dd          }|                    dd           |                     |d           d S )Nr;      rp   g      ?)r_   r_   )r
   move_towardsr   r   s     r   test_move_towardsz"TestElementPoint.test_move_towards   s?    !QKK	vs###F#####r   c                     t          dd          }|                    d          }|                     |dt          d          z             |                    d          }|                     |d           d S )Nr;   ro   r   )r
   distance_tor   sqrtrl   s      r   test_distance_toz!TestElementPoint.test_distance_to   sm    !QKKMM&!!AQK(((MM!Ar   c                    t          d          }|                    d          }|                     |t                              d                     |                    d          }|                     |t                              d                     |                    d          }|                     |t                              d                     d S )Nr   r(   45deg)r   r)   z0.25turn)rI   r   200grad)r
   angle_tor   Angleparse)r   r   r   s      r   test_angle_tozTestElementPoint.test_angle_to   s    !HHJJvEKK00111JJvEKK
33444JJwEKK	2233333r   c                     t          d          }|                    t                              d          d          }|                     |t          d          dz  dz  t          d          dz  dz  f           d S )Nr   rx   
   r   )r
   polar_tor{   r|   r   ru   )r   r   qs      r   
test_polarzTestElementPoint.test_polar   si    !HHJJu{{7++R00T!WWQY^T!WWQY^<=====r   c                 z    t          d          }|                    d          }|                     |d           d S )Nr   )r   r   )   r   )r
   reflected_acrossr   )r   r   r   s      r   test_reflected_acrossz&TestElementPoint.test_reflected_across   s<    !HHw''G$$$$$r   N)r4   r5   r6   r   r   r"   rB   rP   rU   rZ   r`   rg   rm   rr   rv   r}   r   r   r7   r   r   r   r      s        & & &9 9 9O O O5 5 5,5 5 508 8 8,8 8 8,8 8 8,( ( (<& & &$ $ $
  4 4 4> > >
% % % % %r   r   )unittestr   svgelementsTestCaser   r7   r   r   <module>r      sm              E% E% E% E% E%x( E% E% E% E% E%r   