
    g                     "   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)dS )    )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                 0    t          d| d          j        S )Nz.pngF)suffixdirdelete)r   namer   r   s     c/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/plotting/tests/test_plot_implicit.pytmp_filer       s#    s5* * **./    r   r   c                    t          | g|R i |}|                    t          ||                     |j                                         d S )Nr   )r   saver    _backendclose)exprr   r   argskwargsps         r   plot_and_saver+      sX    d,T,,,V,,AFF8$'''(((J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  k    |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	          ||k    |ddf|           t	          t          |t          |          k    ||dz   k              |           t	          t          ||k    || k              |           t	          |dz  dz
  |ddf|           t	          |dz  dz
  |           t	          ||k    d|           t	          ||k    d|           t	          |t          |          k    d|           t	          |t          |          k     d|           t	          t          |t          |          k    t          ||k    t          ||                              |           t	          |t          t          |z            z
  |           t	          |dz  dz
  d|           d S )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   yyHh'''sAsA"QA--!RaQZdQQQQ"QT1a4!8$$q"ajAJTx1 1 1 1!a!e)aQZAJTx1 1 1 1!a#a&&j.1b!*AJTx1 1 1 1!q3q66zCFF**QAJAJTx1 1 1 1!q!t)aQZAJTx1 1 1 1 "QT1a4!8$$(3333"QT1a4!8$$u(CCCC"QT1a4!8$$uJJJJ!a%!R2222#a#a&&j!a!e),,(;;;;"QUAF##2222!Q$(QAJH5555!Q$())))!a%rx0000!a%qh////!c!ff*u(;;;;!c!ff*u(;;;;#a#a&&j"QUBq!HH"5"566HEEEE!c"q&kk/x0000!Q$("4(CCCCCCr!   c                  4   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            n# 1 swxY w Y   t          j                     d S # t          j                     w xY wt          d
           d S )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   sO   |P\___J 3	%yyH%h///sAsA {*QRRR W WbBs1vv#a&&'8$9$9::XVVVVW W W W W W W W W W W W W W W "$$$$$N"$$$$122222s1   AC1 2ACC1 CC1 CC1 1D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 d S )	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'FFFA9Q<"g----adQTkAo#EBBBA9Q<"c))))))r!   c                      t          ddt          f          } | rK	 t          d           t                       t	          j                     d S # t	          j                     w xY wt          d           d S )NrA   rB   rC   rG   rH   )r   rI   r?   rS   r   rK   r   )rA   s    r   test_matplotlibrU   ]   s    |P\___J 3	%'''"$$$$$N"$$$$122222s   A A#c                  "   t          ddt          f          } | st          d           ddlm} t
          j                            t
          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                            |d          }	t!          ||z  ||          }
|
                    |            ||	|d           t          |d          }t
          j                            |d          }	t!          ||z  ||          }
|
                    |            ||	|d           t          |d          }t
          j                            |d          }	t!          | ||          }
|
                    |            ||	|d           t          |d          }t
          j                            |d          }	t!          ||z  ||          }
|
                    |            ||	|d           t          j                     d S # 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 31222999999W__RW__X%>%>??N!!99!(+++u~~1!eaZ!Q$"!eaZ!Q$" X4EFFFw||N4IJJ"r'1a((	}|]E::: X4DEEEw||N4HII"r'1a((	}|]E::: X4EFFFw||N4IJJ2#q!$$	}|]E::: X4EFFFw||N4IJJ"r'1a((	}|]E:::         s   2G2I9 9J)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      s   & & & & & & & & $ $ $ $ $ $ / / / / / / / / 3 3 3 3 3 3 6 6 6 6 6 6 D D D D D D D D D D ) ) ) ) ) ) ) ) 6 6 6 6 6 6 * * * * * * 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 3 3 ( ( ( ( ( ( 1 1 1 1 1 1 				 
/ / / / %'D     "D "D "DH 3 3 3&* * *	3 	3 	3)! )! )! )! )!r!   