
    ]j.                     D    d dl Z d dlZd dlT  G d de j                  ZdS )    N)*c                   b    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S )TestElementBboxc                     dddddddd}t          |          }|                     |                                d	           |d
z  }|                     |                                d           d S Nrect4250512010)tagrxryxywidthheight2   3   F   =   translate(2)4   r   H   r   RectassertEqualbboxselfvalueses      I/home/agentuser/manim-venv/lib/python3.11/site-packages/test/test_bbox.pytest_bbox_rectzTestElementBbox.test_bbox_rect	   s}    
 
 LL=111	^#344444    c           
         ddddddddd	d
	}t          |          }|                     |                                d           |                     |                    d          d           |dz  }|                     |                                d           |                     |                    d          d           |dz  }|                     |                                d           |                     |                    d          d           |                     |                    d          d           |                     |                    dd          d           d S Nr   r	   r
   r   r   r   r   5red	r   r   r   r   r   r   r   stroke-widthstroker   Twith_strokeg     G@     @H@g      R@     O@r   r   g     H@r4   g     R@r5   scale(2)h   f      z   g     X@g     @X@g     b@g     _@Ftransformedr?   r2   r   r#   s      r'   test_bbox_rect_strokez%TestElementBbox.test_bbox_rect_stroke   s   

 

 LL#3444D11 4
 	 	 	 	
^#3444D11 4
 	 	 	 	
Z#CDDDD11 4
 	 	 	 	E224DEEEEtDD G
 	 	 	 	 	r)   c                     dddddddd}t          t          |                    }|                     |                                d	           |d
z  }|                     |                                d           d S r   Pathr    r!   r"   r#   s      r'   test_bbox_pathzTestElementBbox.test_bbox_pathD   s    
 
 f=111	^#344444r)   c           
          ddddddddd	d
	}t          t          |                    }|                     |                                d           |                     |                    d          d           |dz  }|                     |                                d           |                     |                    d          d           |dz  }|                     |                                d           |                     |                    d          d           |                     |                    d          d           |                     |                    dd          d           d S r+   rC   r#   s      r'   test_bbox_path_strokez%TestElementBbox.test_bbox_path_strokeS   s   

 

 f#3444D11 4
 	 	 	 	
^#3444D11 4
 	 	 	 	
Z#CDDDD11 4
 	 	 	 	E224DEEEEtDD G
 	 	 	 	 	r)   c           
          ddddddddd	d
	}t          t          |                    }|                     |                                d           |                     |                    d          d           |dz  }|                     |                                d           |                     |                    d          d           |dz  }|                     |                                d           |                     |                    d          d           |                     |                    d          d           |                     |                    dd          d           dS )zi
        Same as test_bbox_path_stroke but stroke is set to none, so the bbox should not change.
        r   r	   r
   r   r   r   r   r,   noner.   r   Tr1   r   r   r7   r8   Fr>   r@   NrC   r#   s      r'   test_bbox_path_stroke_nonez*TestElementBbox.test_bbox_path_stroke_none   s   
 

 

 f#3444D11 4
 	 	 	 	
^#3444D11 4
 	 	 	 	
Z#CDDDD11 4
 	 	 	 	E224DEEEEtDD G
 	 	 	 	 	r)   c           	         ddddddddd	}t          t          |                    }|                     |                                d
           |                     |                    d          d
           |dz  }|                     |                                d           |                     |                    d          d           |dz  }|                     |                                d           |                     |                    d          d           |                     |                    d          d
           |                     |                    dd          d
           dS )z
        Same as test_bbox_path_stroke but the stroke is unset and thus shouldn't contribute to the bbox even if
        with_stroke is set.
        r   r	   r
   r   r   r   r   r,   )r   r   r   r   r   r   r   r/   r   Tr1   r   r   r7   r8   Fr>   r@   NrC   r#   s      r'   test_bbox_path_stroke_unsetz+TestElementBbox.test_bbox_path_stroke_unset   s    	
 	
 f#3444D11 4
 	 	 	 	
^#3444D11 4
 	 	 	 	
Z#CDDDD11 4
 	 	 	 	E224DEEEEtDD G
 	 	 	 	 	r)   c                     t          d          }|                    d          }|                     |                                d           |dz  }|                     |                                d           d S )Nz3M 10,100 H 20 V 80 H 10 Z m 10,-90 H 60 V 70 H 20 Z   )   
   <   r   ztranslate(5))   rP   A   r   rD   subpathr!   r"   r$   pr&   s      r'   test_bbox_subpathz!TestElementBbox.test_bbox_subpath   sm    FGGIIaLL#3444	^#344444r)   c                     t          d          }|                    d          }|                     |                                d           d S )Nz#M 0,0 Z m 100,100 h 20 v 20 h -20 ZrN   )d   rZ   x   r[   rT   rV   s      r'   test_bbox_move_subpath2z'TestElementBbox.test_bbox_move_subpath2   sD    677IIaLL#788888r)   c           
      *   ddddddddd	d
	}t          t          |                    }|                    d          }|                     |                                d           |                     |                    d          d           |dz  }|                     |                                d           |                     |                    d          d           |dz  }|                     |                                d           |                     |                    d          d           |                     |                    d          d           |                     |                    dd          d           d S )Nr   r	   r
   r   r   r   r   r,   r-   r.   r   r   Tr1   r3   r   r   r6   r7   r8   r=   Fr>   r@   )rD   r    rU   r!   r"   )r$   r%   rW   r&   s       r'   test_bbox_subpath_strokez(TestElementBbox.test_bbox_subpath_stroke   s   

 

 fIIaLL#3444D11 4
 	 	 	 	
^#3444D11 4
 	 	 	 	
Z#CDDDD11 4
 	 	 	 	E224DEEEEtDD G
 	 	 	 	 	r)   c                    t          dddd          }|                                \  }}}}|                     d|           |                     d|           |                     d|           |                     d|           d S )Nr   rN   z
rotate(45)cxcyr	transformCircler"   assertAlmostEqualr$   cxminyminxmaxymaxs         r'   test_bbox_rotated_circlez(TestElementBbox.test_bbox_rotated_circle  s    aAl;;;#$6688 tT4r4(((r4(((4(((4(((((r)   c                 D   t          j        d          }t                              |          }|                                \  }}}}|                     d|           |                     d|           |                     d|           |                     d|           d S )Nz<?xml version="1.0" encoding="utf-8" ?>
            <svg>
              <circle cx="0" cy="0" r="1" transform="rotate(45)"/>
            </svg>
            re   rN   ioStringIOSVGparser"   rh   r$   qsvgrk   rl   rm   rn   s          r'   !test_bbox_svg_with_rotated_circlez1TestElementBbox.test_bbox_svg_with_rotated_circle  s    K
 
 iill#&88:: tT4r4(((r4(((4(((4(((((r)   c                    t          dddd          }|                                \  }}}}|                     d|           |                     d|           |                     d|           |                     d|           d S )Nr   rN   ztranslate(-1,-1)r`   rf   ri   s         r'   test_bbox_translated_circlez+TestElementBbox.test_bbox_translated_circle/  s    aA.@AAA#$6688 tT4r4(((r4(((4(((4(((((r)   c                 D   t          j        d          }t                              |          }|                                \  }}}}|                     d|           |                     d|           |                     d|           |                     d|           d S )Nz<?xml version="1.0" encoding="utf-8" ?>
            <svg>
              <g transform="translate(-1,-1)">
                <circle cx="0" cy="0" r="1"/>
              </g>
            </svg>
            r{   r   rq   rv   s          r'   /test_bbox_svg_with_translated_group_with_circlez?TestElementBbox.test_bbox_svg_with_translated_group_with_circle7  s    K
 
 iill#&88:: tT4r4(((r4(((4(((4(((((r)   c                    t          dddd          }|dz  }|                     |                                t          |                                                     t	          ddd          }|dz  }|                     |                                t          |                                                     t          d          }|dz  }|                     |                                t          |                                                     t          d          }|dz  }|                     |                                t          |                                                     t          d          }|dz  }|                     |                                t          |                                                     t          j        d          }t          	                    |d	          }|d
         }t          |          }|                     ||           |                     |                                |                                           dS )zTesting Issue 104 rotated bboxrP   zrotate(45deg)   zM0 0 100,100zM0 0q100,100 200,200zzM0 20c0,128 94,94 200,200za^  <?xml version="1.0" encoding="utf-8" ?>
                        <svg>
                        <path d="M0 36c0 128.082 96 214 251 214c153.639 0 293 -37 293 -264c0 -220 -158.05 -325.976 -254 -391c-121 -82 -200.248 -117.634 -339 -171c-5.93907 -2.28437 -11.3166 -3.27496 -15.9795 -3.27496c-11.9348 0 -19.1871 6.48977 -19.1871 14.3854 c0 7.04844 5.77949 15.2172 19.1666 20.8896c118 50 225 86 316 200c91 113 125 205.913 125 350c0 135 -33 224 -145 224c-46.615 0 -77.452 -12.593 -112 -44c-8.09234 -7.35667 -11.3121 -13.0296 -11.3121 -17.4022c0 -13.4585 30.5027 -14.5978 43.3121 -14.5978 c69 0 123 -64.8867 123 -136c0 -75 -48 -132 -139 -132c-79.1582 0 -135 74 -135 150zM572 128c0 35 29 64 64 64s63 -29 63 -64s-28 -63 -63 -63s-64 28 -64 63zM572 -131c0 35 29 64 64 64s63 -29 63 -64s-28 -63 -63 -63s-64 28 -64 63z" transform="rotate(45deg)"/>
                        </svg>F)reifyr   N)
r    r!   r"   absrg   rD   rr   rs   rt   ru   )r$   r   circpathrw   mp0p1s           r'   test_issue_104zTestElementBbox.test_issue_104J  s   Br"R  c$iinn&6&6777a"~~c$iinn&6&6777N##c$iinn&6&6777+,,c$iinn&6&6777011c$iinn&6&6777K " # # IIauI%%qTWWR   BGGII.....r)   N)__name__
__module____qualname__r(   rA   rE   rG   rJ   rL   rX   r\   r^   ro   ry   r|   r~   r    r)   r'   r   r      s        5 5 5* * *X5 5 5* * *X- - -^- - -^5 5 59 9 9
+ + +Z) ) )) ) ) ) ) )) ) )&/ / / / /r)   r   )unittestrr   svgelementsTestCaser   r   r)   r'   <module>r      sd     				    a/ a/ a/ a/ a/h' a/ a/ a/ a/ a/r)   