
    ]jo                     D    d dl Z d dlZd dlT  G d dej                  ZdS )    N)*c                   f    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 )TestElementLengthz.Tests the functionality of the Length Element.c                    |                      t          d          t          d                     |                     t          d          d           |                     t          d          d           |                     t          d          d           |                     t          d          d           |                     t          d          d           |                     t          d	          d           |                     t          d
                              d          d           |                     t          d                              d          d           d S )N10cm100mm1mmr   1cm1in1px1pc1ptz1%d   )relative_length50%g      I@)assertAlmostEqualLengthassertNotEqualvalueassertEqualselfs    K/home/agentuser/manim-venv/lib/python3.11/site-packages/test/test_length.pytest_length_parsingz%TestElementLength.test_length_parsing
   s,   vf~~wAAAF5MM1---F5MM1---F5MM1---F5MM1---F5MM1---F5MM1---F4LL..s.CCQGGG,,S,AA4HHHHH    c           
         t          dddd          }|                     t          dddddd	          |           t          d          }|                    ddd           |                     t          dddddd	          |           d S )
NzTranslate(20mm,50%)  iX  i   )ppiwidthheight   r   gK7@i  )Matrixr   render)r   ms     r   test_distance_matrixz&TestElementLength.test_distance_matrix   s    (d#cJJJ1aGS991===())	TS1111aGS991=====r   c                 J   t          dddd          }|                    dt                     |                     |t	          d                     t          dddd          }|                    dt                     |                     |t	          d                     d S )Nz0%z100%r	   r   r   z#M 0,0 H 3.7795296 V 3.7795296 H 0 zr   zM 0,0 H 96 V 96 H 0 z)Rectr#   DEFAULT_PPIr   Path)r   rects     r   test_rect_distance_percentz,TestElementLength.test_rect_distance_percent   s    D$//E{;;;t$IJJKKKD$//E{;;;t$;<<=====r   c                     t          ddd          }|                    dt                     t          |                                           |                     |t          d                     d S )Nr   r   r   r'   zKM48,0A48,48 0 0,1 0,48A48,48 0 0,1-48,0A48,48 0 0,1 0,-48A48,48 0 0,1 48,0Z)Circler#   r)   printdr   r*   )r   shapes     r   test_circle_distance_percentz.TestElementLength.test_circle_distance_percent$   sp    q!U##U<<<eggii^__	
 	
 	
 	
 	
r   c                 j   |                      t          d          t          d          z  d           |                      t          d          t          d          z  d           |                      t          d          dz  d           |                      t          d          dz  d           d S )Nr	   g      ?r   r
   g      $@)r   r   r   s    r   test_length_divisionz&TestElementLength.test_length_division-   s    &--7===6<<<.444.55555r   c                 t   |                      t          d          t          d          k                |                      t          d          dk                |                     t          d          dk                |                      t          d          dk               |                      t          d          dk               |                      t          d          dk               |                      t          d          dk               |                     t          d          dk               |                     t          d          dk               |                      t          d          d	k               |                     t          d
            |                     t          d            |                     t          d            |                     t          d            |                     t          t          d          t          d                    d           d S )Nr   z2.6cmz2.5cm10mmr
   11mmz1.1cm20%z10%c                  (    t          d          dk    S )Nr8   r   r    r   r   <lambda>z7TestElementLength.test_length_compare.<locals>.<lambda>>   s    fUmme.C r   c                  (    t          d          dk    S )N20pxr   r:   r;   r   r   r<   z7TestElementLength.test_length_compare.<locals>.<lambda>?       fVnnu.D r   c                  (    t          d          dk    S )N20pcr   r:   r;   r   r   r<   z7TestElementLength.test_length_compare.<locals>.<lambda>@   r?   r   c                  (    t          d          dk    S )N20emr   r:   r;   r   r   r<   z7TestElementLength.test_length_compare.<locals>.<lambda>A   r?   r   )
assertTruer   assertFalseassertRaises
ValueErrorr   maxr   s    r   test_length_comparez%TestElementLength.test_length_compare3   s   uw7888u/0000111v%/000v%/000v%/000v'12225011172333u-...*&C&CDDD*&D&DEEE*&D&DEEE*&D&DEEEVE]]F7OO<<eDDDDDr   c                    t          j        d          }t                              |d          }t	          |                                          }|                     |d         j        d           |                     |d         j        d           |                     |d         j	        d           |                     |d         j
        d           d S )Nz<?xml version="1.0" encoding="utf-8" ?>
                        <svg>
                        <rect x="1in" y="1in" width="10in" height="10in"/>
                        </svg>      X@r   r!   i  ioStringIOSVGparselistelementsr   xyr   r    r   qr$   s      r   test_length_parsedz$TestElementLength.test_length_parsedD   s    K " # # IIaTI""1&&&1&&&1S)))1c*****r   c                    t          j        d          }t                              |dd          }t	          |                                          }|                     |d         j        d           |                     |d         j        d           |                     |d         j	        d           |                     |d         j
        d           d S )Nz<?xml version="1.0" encoding="utf-8" ?>
                        <svg>
                        <rect x="25%" y="25%" width="50%" height="50%"/>
                        </svg>r   r   r    r!        rM   rV   s      r   test_length_parsed_percentz,TestElementLength.test_length_parsed_percentP   s    K " # # IIatDI111%%%1%%%1S)))1c*****r   c                    t          j        d          }t                              |dd          }t	          |                                          }|                     |d         j        d           |                     |d         j        d           |                     |d         j	        d           |                     |d         j
        d           d S )Nz<?xml version="1.0" encoding="utf-8" ?>

                        <svg width="1in" height="1in">
                        <rect x="25%" y="25%" width="50%" height="50%"/>
                        </svg>r   rZ   r!      0   rM   rV   s      r   test_length_parsed_percent2z-TestElementLength.test_length_parsed_percent2\   s    K " # # IIatDI111$$$1$$$1R(((1b)))))r   c                    t          j        d          }t                              |dd          }t	          |                                          }|                     |d         j        d           |                     |d         j        d           |                     |d         j	        d           |                     |d         j
        d           d S )Nz<?xml version="1.0" encoding="utf-8" ?>
                        <svg width="1in" height="1in">
                        <rect x="25%" y="25%" width="50%" height="50%"/>
                        </svg>r\   rZ   r!   r_   r`   rM   rV   s      r   test_length_parsed_percent3z-TestElementLength.test_length_parsed_percent3h   s    K " # # IIas3I//1$$$1$$$1R(((1b)))))r   c                    t          j        d          }t                              |dd          }t	          |                                          }|                     |d         j        d           |                     |d         j        d           |                     |d         j	        d           |                     |d         j
        d           d S )Nz<?xml version="1.0" encoding="utf-8" ?>
                        <svg viewbox="0 0 960 960" width="1in" height="1in">
                        <rect x="25%" y="25%" width="50%" height="50%"/>
                        </svg>garbager\   rZ   r!   r_   r`   rM   rV   s      r   test_length_parsed_percent4z-TestElementLength.test_length_parsed_percent4t   s    K " # # IIayI551$$$1$$$1R(((1b)))))r   c                    t          j        d          }t                              |dd          }t	          |                                          }|                     |d         j        d           |                     |d         j        d           |                     |d         j	        d           |                     |d         j
        d           |                     |d         j        d           |                     |d         j        d           |                     |d         j	        d	           |                     |d         j
        d	           d S )
Na  <?xml version="1.0" encoding="utf-8" ?>
                        <svg viewbox="0 0 960 960">
                        <rect x="25%" y="25%" width="50%" height="50%"/>
                        <rect x="240" y="240" width="480" height="480"/>
                        </svg>r   rZ   r!   r_   r`         i  rM   rV   s      r   test_length_parsed_percent5z-TestElementLength.test_length_parsed_percent5   s,   K " # #
 IIauUI331$$$1$$$1R(((1b)))1%%%1%%%1S)))1c*****r   c                    t          j        d          }t                              |dd          }t	          |                                          }|                     |d         j        |d         j        d           |                     |d         j        |d         j        d           |                     |d         j	        |d	         j	        d           |                     |d	         j	        |d
         j	        d           d S )Na  <svg version="1.1" baseProfile="basic" id="svg-root"
                        width="100%" height="100%" viewBox="0 0 480 360"
                        xmlns="http://www.w3.org/2000/svg">
                        <g transform="translate(5, 50) scale(4)">
                        <circle cx="7.5" cy="7.5" r="2.5" fill="black"/>
                        <circle cx="1.563%" cy="2.083%" r=".3535%" fill="fuchsia"/>
                        </g>
                        <g transform="translate(30, 260)  skewX(45) scale(4)">
                        <circle cx="0" cy="0" r="3.536" fill="black"/>
                        <circle cx="10" cy="0" r="3.536px" fill="fuchsia"/>
                        <circle cx="20" cy="0" r=".8334%" fill="green"/>
                        </g>
                        </svg>10000rZ   rh      r!   )delta         )
rN   rO   rP   rQ   rR   rS   r   cxcyrxrV   s      r   test_length_parsed_percent6z-TestElementLength.test_length_parsed_percent6   s    K " # # IIawwI77qtw!q999qtw!q999qtw!q999qtw!q99999r   c                 ,   t          j        d          }t                              |d          }t	          |                                          }|                     |d         j        d           |                     |d         j        d           d S )Na7  <svg width="100vw" height="100vh" 
        viewBox="0 0 750 950" style="background-color:hsl(100, 0%, 100%);"
         xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" inkscape:version="1.1.1 (c3084ef, 2021-09-22)"
          xmlns="http://www.w3.org/2000/svg"><path d="M 0 0 M 750 950"></path></svg>rK   rL   r   i  i  )	rN   rO   rP   rQ   rR   rS   r   r   r    rV   s      r   test_length_viewboxz%TestElementLength.test_length_viewbox   s    K X Y Y IIaTI""1S)))1c*****r   N)__name__
__module____qualname____doc__r   r%   r,   r2   r4   rI   rX   r]   ra   rc   rf   rj   ru   rw   r;   r   r   r   r      s        88	I 	I 	I> > >> > >
 
 
6 6 6E E E"
+ 
+ 
+
+ 
+ 
+
* 
* 
*
* 
* 
*
* 
* 
*+ + +": : :*+ + + + +r   r   )rN   unittestsvgelementsTestCaser   r;   r   r   <module>r      sd    				     g+ g+ g+ g+ g+) g+ g+ g+ g+ g+r   