
    sg                        d dl mZmZ d dlmZ d dlmZmZ d dlm	Z	 d dl
mZ d dlmZmZmZ d dlmZmZ d dlmZ d d	lmZ d d
lmZmZ d dlmZmZmZ d dlmZ d dl m!Z! d dl"Z" e        ddZ#ddddZ$d Z%ed        Z&d Z'd Z(d Z)y)    )Ipi)Eq)Symbolsymbols)re)exp)cossintan)AndOr)plot_implicit)
unset_show)NamedTemporaryFilemkdtemp)skipwarnsXFAIL)import_module)TmpFileManagerN c                 2    t        d| d      j                  S )Nz.pngF)suffixdirdelete)r   namer   r   s     Z/var/www/html/venv/lib/python3.12/site-packages/sympy/plotting/tests/test_plot_implicit.pytmp_filer       s    s5**.$/    r   r   c                    t        | g|i |}|j                  t        ||             |j                  j	                          y )Nr   )r   saver    _backendclose)exprr   r   argskwargsps         r   plot_and_saver+      s9    d,T,V,AFF8$'(JJr!   c                    t               }t        j                  |       t        d      }t        d      }t	        t        |t        |            |ddf|ddf| |       t	        t        |dz  |dz  |z
        |ddf|d	d
f| |       t	        |d|z  kD  |ddf|ddf| |       t	        |dt        |      z  k  |ddf|ddf| |       t	        |dt        |      z  t        |      z  k\  |ddf|ddf| |       t	        ||dz  k  |ddf|ddf| |       t	        t        |dz  |dz  |z
        |       t	        t        |dz  |dz  |z
        d|       t	        t        |dz  |dz  |z
        dd|       t	        ||kD  |ddf|       t	        t        |t        |      kD  ||dz   kD        |       t	        t        ||kD  || kD        |       t	        |dz  dz
  |ddf|       t	        |dz  dz
  |       t	        ||kD  d|       t	        ||kD  d|       t	        |t        |      kD  d|       t	        |t        |      k  d|       t	        t        |t        |      kD  t        ||kD  t        ||                  |       t	        |t        t        |z        z
  |       t	        |dz  dz
  d|       y )Nxy      r"            )r   F)adaptiver   i  )r9   nr   )depthr   zAn implicit plot)titler   )r   r   
tmp_folderr   r+   r   r
   r   r   r   r	   r   r   )r   temp_dirr-   r.   s       r   plot_implicit_testsr?      s   yHh'sAsA"QA-!RaQZdQ"QT1a4!8$q"ajAJTx1!a!e)aQZAJTx1!a#a&j.1b!*AJTx1!q3q6zCF**QAJAJTx1!q!t)aQZAJTx1 "QT1a4!8$(3"QT1a4!8$u(C"QT1a4!8$uJ!a%!R2#a#a&j!a!e),(;"QUAF#2!Q$(QAJH5!Q$()!a%rx0!a%qh/!c!f*u(;!c!f*u(;#a#a&j"QUBq!H"56HE!c"q&k/x0!Q$("4(Cr!   c                     t        ddt        f      } | r	 t               }t        j                  |       t        d      }t        d      }t        t        d      5  t        t        |t        t        |      t        t        |      z  z               d|	       d d d        t        j                          y t        d
       y # 1 sw Y   *xY w# t        j                          w xY w)N
matplotlib1.1.0min_module_versioncatchr-   r.   z%Adaptive meshing could not be applied)matchtestr"   "Matplotlib not the default backend)r   RuntimeErrorr   r   r=   r   r   UserWarningr+   r   r   r
   r   r   cleanupr   )rA   r>   r-   r.   s       r   test_no_adaptive_meshingrL   B   s    |P\_J	%yH%%h/sAsA {*QR WbBs1v#a&'8$9:XVW ""$12W W ""$s$   AC >CC C	C C&c                      t        d      \  } }t        | dz  |dz  z   dz
  dd      }|j                  d   j                  dk(  sJ t        | dz  |dz  z   dz
  dd      }|j                  d   j                  dk(  sJ y )	Nzx, yr2   r6   greenF)
line_colorshowr   r)r   r   _seriesrO   )r-   r.   r*   s      r   test_line_colorrS   V   s    6?DAqadQTkAo'FA99Q<""g---adQTkAo#EBA99Q<""c)))r!   c                      t        ddt        f      } | r+	 t        d       t                t	        j
                          y t        d       y # t	        j
                          w xY w)NrA   rB   rC   rG   rH   )r   rI   r?   rS   r   rK   r   )rA   s    r   test_matplotlibrU   ]   sN    |P\_J	%'""$12 ""$s   A A#c                     t        ddt        f      } | st        d       ddlm} t
        j                  j                  t
        j                  j                  t                    }	 t               }t        j                  |       t        d      \  }}|dz
  d	z  |d	z  z   d	k  }|dz   d	z  |d	z  z   d	k  }t        |d
      }t
        j                  j                  |d      }	t!        ||z  ||      }
|
j#                  |        ||	|d       t        |d      }t
        j                  j                  |d      }	t!        ||z  ||      }
|
j#                  |        ||	|d       t        |d      }t
        j                  j                  |d      }	t!        | ||      }
|
j#                  |        ||	|d       t        |d      }t
        j                  j                  |d      }	t!        ||z  ||      }
|
j#                  |        ||	|d       t        j$                          y # t        j$                          w xY w)NrA   rB   rC   rH   r   )compare_imageszx yr6   r2   test_region_andr   ztest_region_and.pngg{Gzt?test_region_orztest_region_or.pngtest_region_notztest_region_not.pngtest_region_xorztest_region_xor.png)r   rI   r   matplotlib.testing.comparerW   ospathdirnameabspath__file__r   r   r=   r   r    joinr   r$   rK   )rA   rW   test_directoryr>   r-   r.   r1r2test_filenamecmp_filenamer*   s              r   rX   rX   i   s   |P\_J129WW__RWW__X%>?N!!9!!(+u~1!eaZ!Q$"!eaZ!Q$" X4EFww||N4IJ"r'1a(	}|]E: X4DEww||N4HI"r'1a(	}|]E: X4EFww||N4IJ2#q!$	}|]E: X4EFww||N4IJ"r'1a(	}|]E:  s   (F-H* *I )Nr   )*sympy.core.numbersr   r   sympy.core.relationalr   sympy.core.symbolr   r   $sympy.functions.elementary.complexesr   &sympy.functions.elementary.exponentialr	   (sympy.functions.elementary.trigonometricr
   r   r   sympy.logic.boolalgr   r   sympy.plotting.plot_implicitr   sympy.plotting.plotr   tempfiler   r   sympy.testing.pytestr   r   r   sympy.externalr   sympy.testing.tmpfilesr   r]   r    r+   r?   rL   rS   rU   rX    r!   r   <module>rv      sw    & $ / 3 6 D D ) 6 * 0 3 3 ( 1 	 / %'D "DH 3 3&*	3)!r!   