
    ]j5                         d dl Z d dlT  G d de j                  Z G d de j                  Z G d de j                  ZdS )	    N)*c                       e Zd Zd ZdS )TestElementLinearc                     t          dd          }|                    d          }|                     |d           |                    d          }|                     |d           d S )Nr   r      r   )   r      r   )r   r   )Lineclosest_segment_pointassertEqualselfliners      R/home/agentuser/manim-venv/lib/python3.11/site-packages/test/test_path_segments.pytest_linear_nearestz%TestElementLinear.test_linear_nearest   si    E%  &&v..E"""&&v..F#####    N)__name__
__module____qualname__r    r   r   r   r      s#        $ $ $ $ $r   r   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestBoundingBoxc                 z    t          dd          }|                                }|                     |d           d S )Nr   r   )r   r   r	   r   )r   bboxr   r   s      r   test_linear_bboxz TestBoundingBox.test_linear_bbox   s:    E5!!IIKKL)))))r   c                 |    t          ddd          }|                                }|                     |d           d S )Nr   r   r   )r   r   r	      )QuadraticBezierr   r   r   s      r   test_qbezier_bboxz!TestBoundingBox.test_qbezier_bbox   s<    ueU33IIKKL)))))r   c                     t          dddd          }|                                }t          |d          D ]} | j        |  d S )Nr   r   )r   r   )        g3Ey      @g3Ey?)CubicBezierr   zipassertAlmostEqualr   r   r   zs       r   test_cbezier_bboxz!TestBoundingBox.test_cbezier_bbox   sY    5%77IIKKQKLL 	' 	'A"D"A&&&	' 	'r   c                     t          ddd          }|                                }t          |d          D ]} | j        |  d S )Nr   r   )      @r/   )control)r&   r   r'   r/   )Arcr   r)   r*   r+   s       r   test_arc_bboxzTestBoundingBox.test_arc_bbox"   sZ    5%444IIKKQ*++ 	' 	'A"D"A&&&	' 	'r   c                 p    |                      t          d                                          d           d S )NzM0,0A0,0 0 0 0 0,0z)r   r   r   r   )r   Pathr   )r   s    r   test_null_arc_bboxz"TestBoundingBox.test_null_arc_bbox(   s3    34499;;YGGGGGr   N)r   r   r   r   r#   r-   r2   r5   r   r   r   r   r      sd        * * *
* * *
' ' '' ' 'H H H H Hr   r   c                       e Zd Zd Zd ZdS )TestArcControlPointsc                 `    t          ddd          }|                     |j        d           dS )zX
        Tests the creation of a control point with a coincident start and end.
        r   2   r   startr0   end   N)r1   r*   rx)r   arcs     r   test_coincident_end_arcz,TestArcControlPoints.test_coincident_end_arc.   s6     v5999svr*****r   c                 N    t          ddd          }t          ddd          }dS )z:
        Colinear Arcs should raise value errors.
        r   )r>   r   r9   r;   )r   r>   )r   r:   N)r1   )r   arc_verticalarc_horizontals      r   test_linear_arcz$TestArcControlPoints.test_linear_arc5   s0     gFFF67HHHr   N)r   r   r   rA   rE   r   r   r   r7   r7   ,   s7        + + +I I I I Ir   r7   )unittestsvgelementsTestCaser   r   r7   r   r   r   <module>rI      s        $ $ $ $ $) $ $ $H H H H Hh' H H H8I I I I I8, I I I I Ir   