o
    *ήc[                     @   s6  d dl Z d dlZd dlZd dlmZ d dl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mZmZ d dlmZmZmZmZmZmZmZmZmZmZ d d	lm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& d d
l'm(Z( d dl)m*Z* d dl+m,Z, d dl-m.Z.m/Z/m0Z0m1Z1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m:Z: d dlm;Z; d dlm<Z< d dl=m>Z> e>dZ?h dZ@g dfddZAdd ZBdd ZCdd ZDd d! ZEd"d# ZFd$d% ZGd&d' ZHd(d) ZId*d+ ZJd,d- ZKd.d/ ZLed0d1 ZMd2d3 ZNd4d5 ZOd6d7 ZPd d8lQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZumvZvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZmZmZmZmZmZmZmZmZmZmZmZmZmZ d9d: Zd d;lmZ d d<lmZ d d=lmZmZ d d>lmZmZmZmZ d d?lmZmZmZ d@dA Zd dBlmZ dCdD Zd dElmZ dFdG Zd dHlmZmZ dIdJ Zd dKlmZ dLdM Zd dNlmZ d dOlmZ dPdQ ZedRdS ZedTdU Zd dVlmZ d dWlmZ d dXlmZ d dYlmZ dZd[ Zd\d] Zed^d_ Zd`da Zdbdc Zddde Zdfdg Zdhdi Zdjdk Zdldm Zd dnlmZ d dolmZmZ d dplmZ d dqlmZmZ d drlmZ d dslmZ dtdu Zedvdw Zedxdy Zedzd{ Zd d|lmZ d d}lmZ d~d Zd dlmZ d dlmZ dd Zdd Zdd Zdd ZdS )    N)meter)XFAILraises)AtomBasic)	BasicMeta)SingletonRegistry)StrDummySymbolWild)
EIpioozoonanIntegerRationalFloatAlgebraicNumber)EqualityGreaterThanLessThan
RelationalStrictGreaterThanStrictLessThan
Unequality)Add)Mul)Pow)
DerivativeFunctionFunctionClassLambdaWildFunction)Interval)	vectorize)HAS_GMPY)SymPyDeprecationWarning)S)symbols)import_modulecloudpickle>   _mat_smat_mhashis_EmptySet_assumptionsexpr_free_symbolsTc                    s   t  trdD ]tt fdd qdtjtjddg}tr%|tg |D ]T|v r.q'tr=t  t	r8q' }nt
rK }n	tt }t }t|}t|t|ksfJ |siq'fdd}| || || | q'd	S )
z2 Check that pickling and copying round-trips.
    )r      c                      s   t  S N)pickledumps aprotocolr8   J/tmp/pip-target-vg8gfxp4/lib/python/sympy/utilities/tests/test_pickling.py<lambda>2   s    zcheck.<locals>.<lambda>         c                    sp   |D ]3}|t v r	qt| |sqt| |}t|ds5t||s"J |t|||ks5J dt||| f qd S )N__call__z%s != %s, protocol: %s)excluded_attrshasattrgetattr)r:   bdiattr)r;   r8   r<   cM   s   


&zcheck.<locals>.cN)
isinstancer   r   NotImplementedErrorcopydeepcopyr-   extendcallabler   inspectismoduleloadsr7   r6   dirset)r:   exclude
check_attr	protocolsrE   d1d2rI   r8   r9   r<   check,   s2   



rZ   c                  C   s&   t t  tt ttfD ]} t|  q
d S r5   )r   r   r   r*   rZ   rI   r8   r8   r<   test_core_basic`   s   
r\   c                   C   s   t td d S Nx)rZ   r	   r8   r8   r8   r<   test_core_Strh   s   r_   c                  C   s6   t t dddttdddttdfD ]} t|  qd S )Nr^   F)commutative_issue_3130)r
   r   r   rZ   r[   r8   r8   r<   test_core_symbolk   s
   
rb   c                  C   sL   t dtddtdfD ]} t|  qtttdfD ]} t| dd qd S )Nr>   r?   z1.2FrV   )r   r   r   rZ   r   sqrtr[   r8   r8   r<   test_core_numberst   s
   
re   c                  C   s   t dd } t|  d S )Nr^   g      ?)r   rZ   )yr8   r8   r<   test_core_float_copy{   s   rg   c                  C   sl   t d} t d}tt| |tt| |tt| |tt| |tt| |tt| |tt| |fD ]}t| q-d S )Nr^   rf   )	r   r   r   r   r   r   r   r   rZ   )r^   rf   rI   r8   r8   r<   test_core_relational   s   
rh   c                  C   (   t d} tt| dfD ]}t| qd S Nr^   r@   )r   r   rZ   r^   rI   r8   r8   r<   test_core_add      
rl   c                  C   ri   rj   )r   r   rZ   rk   r8   r8   r<   test_core_mul   rm   rn   c                  C   ri   rj   )r   r    rZ   rk   r8   r8   r<   test_core_power   rm   ro   c                  C   s.   t d} tt| ttttfD ]}t| qd S r]   )r   r!   r"   r#   r$   r%   rZ   )r^   fr8   r8   r<   test_core_function   s   
rq   c                  C   s.   t d} ttd}|t t| |d d S )Nrp      rU   )r"   listrangeappendr-   rZ   )rp   rU   r8   r8   r<   test_core_undefinedfunctions   s   
rw   c                  C   s   t d} t|  d S )Nrp   )r"   rZ   )rp   r8   r8   r<   !test_core_undefinedfunctions_fail   s   rx   c                  C   s    t t ddfD ]} t|  qd S )Nr   r>   )r&   rZ   r[   r8   r8   r<   test_core_interval   s   
ry   c                  C      t t dfD ]} t|  qd S )Nr   )r'   rZ   r[   r8   r8   r<   test_core_multidimensional      
r{   c                  C   s   g d} t j t jg}|dd | D 7 }tr|dd g7 }tdtdtdtdd	ttttt t	t
tjtjtjtjtjtjfD ]}|D ]
}|||u sMJ qCq?d S )
N)r   r4   r>   r?   r@   c                    s   g | ]  fd dqS )c                    s   t t |  S r5   )r6   rR   r7   r^   protor8   r<   r=      s    z,test_Singletons.<locals>.<listcomp>.<lambda>r8   ).0r8   r~   r<   
<listcomp>   s    z#test_Singletons.<locals>.<listcomp>c                 S   s   t t | S r5   )r-   rR   r7   r}   r8   r8   r<   r=      s    z!test_Singletons.<locals>.<lambda>r   r4   r>   )rL   rM   r-   r   r   r   r   r   r   r   r   r*   GoldenRatioTribonacciConstant
EulerGammaCatalanEmptySetIdentityFunction)rW   copiersobjfuncr8   r8   r<   test_Singletons   s    r   );	Piecewise
lowergammaacosh
chebyshevu
chebyshevtlnchebyshevt_rootlegendre	Heaviside	bernoullicothtanhassoc_legendresignargasin
DiracDeltarerfAbs
uppergammabinomialsinhcoscotacosacotgammabellhermiteharmonicLambertWzetalog	factorialasinhacothcoshdirichlet_etaEijkloggammaerfceilingim	fibonacci
tribonacci	conjugatetanchebyshevu_rootflooratanhrd   sinatanfflucasatan2	polygammaexpc                  C   sp  g t ttttttttt	t
ttttttttttttttttttttttt t!t"t#t$t%t&t't(t)R } t*t+t,t-t.t/t0t1t2t3t4f}t5d\}}}t6t7t8|||t9d|dk f|d |dkf|d dft:f}| D ]}t;| ||}t;| q|D ]}t;| |||}t;| q|D ]}t;| qd S )Nx,y,zr   r   r>   r4   r?   T)<r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r+   r   r   r   r   r   rZ   )one_vartwo_varr^   rf   zothersclsrI   r8   r8   r<   test_functions   s   
&



r   )GeometryEntity)Point)CircleEllipse)LineLinearEntityRaySegment)PolygonRegularPolygonTrianglec                  C   s   t dd} t dd}t dd}t dd}tt t | tt| dtt| ddtt| |tt| |tt| |tt| |tt| |||t	t	| ddt
t
| ||fD ]}t|dd qMd S )	Nr4   r>   r?   r   r@   rr   Frc   )r   r   r   r   r   r   r   r   r   r   r   rZ   )p1p2p3p4rI   r8   r8   r<   test_geometry   s   



r   )Integralc                  C   s&   t d} tt| fD ]}t| q
d S r]   )r   r   rZ   rk   r8   r8   r<   test_integrals  s   
r   )Logicc                  C   rz   Nr4   )r   rZ   r[   r8   r8   r<   
test_logic  r|   r   )MatrixSparseMatrixc                  C   s6   t t g dttddgddggfD ]} t|  qd S )Nr4   r>   r?   r4   r>   r?   r@   )r   r   rZ   r[   r8   r8   r<   test_matrices  s   (
r   )Sievec                  C   s   t t  fD ]} t|  qd S r5   )r   rZ   r[   r8   r8   r<   test_ntheory!  s   
r   )Pauli)Unitc                  C   s"   t tttdfD ]} t|  qd S r   )r   r   r   rZ   r[   r8   r8   r<   test_physics*  s   
r   c                  C   s  ddl m} m} ddlm} ddlm}m} ddlm	}m
}m}m} ddlm}	 ddlm}
 ddlm} dd	lm} dd
lm} ddlm}m}m}m}m}m}m}m} ddl m!} ddl"m#} ddl$m%} | | dd||||||||||	|
||||||||||||||fD ]}t&| qd S )Nr   )ColorGradientColorScheme)ManagedWindow)Plot
ScreenShot)PlotAxesPlotAxesBasePlotAxesFramePlotAxesOrdinate)
PlotCamera)PlotController)	PlotCurve)PlotInterval)PlotMode)Cartesian2DCartesian3DCylindricalParametricCurve2DParametricCurve3DParametricSurfacePolar	Spherical)
PlotObject)PlotSurface)
PlotWindowg?g?)'&sympy.plotting.pygletplot.color_schemer   r   (sympy.plotting.pygletplot.managed_windowr   sympy.plotting.plotr   r   #sympy.plotting.pygletplot.plot_axesr   r   r   r   %sympy.plotting.pygletplot.plot_camerar   )sympy.plotting.pygletplot.plot_controllerr   $sympy.plotting.pygletplot.plot_curver   'sympy.plotting.pygletplot.plot_intervalr   #sympy.plotting.pygletplot.plot_moder   $sympy.plotting.pygletplot.plot_modesr   r   r   r   r   r   r   r  %sympy.plotting.pygletplot.plot_objectr  &sympy.plotting.pygletplot.plot_surfacer  %sympy.plotting.pygletplot.plot_windowr  rZ   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  rI   r8   r8   r<   test_plotting2  s.   (



r  c                  C   sN   ddl m}  ddlm} ddlm} t| d t|ddd t|  d S )	Nr   )r   )r   )r   rainbowr4   F)visible)r  r   r  r   r  r   rZ   )r   r   r   r8   r8   r<   test_plotting2M  s   r  )ZZ)QQ)lex)Polyc                  C   sN   ddl m}  td}tt||fD ]}t| q| | |fD ]}t| qd S )Nr   )PurePolyr^   )sympy.polys.polytoolsr  r   r  rZ   )r  r^   rI   r8   r8   r<   test_pickling_polys_polytoolsj  s   

r  c                  C   s   ddl m} m}m} | | tdgtdgtdggtfD ]}t| q||tdtdgtdtdgftfD ]}t| q9||tdtdgtdtdtdgtfD ]}t| qWd S )Nr   )DMPDMFANPr4   r>   r?   )sympy.polys.polyclassesr  r  r  r  rZ   r  )r  r  r  rI   r8   r8   r<   test_pickling_polys_polyclassesy  s   *
.
2
r!  c                  C   s^   ddl m}  | dtt}| |fD ]
}t|ddgd q|j|jfD ]}t|ddgdd q!d S )Nr   )PolyRingr   r4   rs   F)rU   rV   )sympy.polys.ringsr"  r  r  rZ   dtypeone)r"  ringrI   r8   r8   r<   test_pickling_polys_rings  s   r'  c                   C   s   d S r5   r8   r8   r8   r8   r<   test_pickling_polys_fields  s   r(  c                  C   s,   ddl m}  | | ddfD ]}t| qd S )Nr   )PythonRationalr4      )"sympy.polys.domains.pythonrationalr)  rZ   )r)  rI   r8   r8   r<   test_pickling_polys_elements  s   
r,  c                  C   s   ddl m}  ddlm} | |  fD ]}t|dd q|| fD ]}t|dd qtrRddlm} ddlm	} || fD ]}t|dd q;|| fD ]}t|dd qIddl
m} dd	lm} ||ttd
fD ]}t|dd qg|| fD ]}t|dd qud S )Nr   )PythonIntegerRing)PythonRationalFieldFrc   )GMPYIntegerRing)GMPYRationalField)AlgebraicField)ExpressionDomainr?   )%sympy.polys.domains.pythonintegerringr-  'sympy.polys.domains.pythonrationalfieldr.  rZ   r(   #sympy.polys.domains.gmpyintegerringr/  %sympy.polys.domains.gmpyrationalfieldr0  "sympy.polys.domains.algebraicfieldr1  $sympy.polys.domains.expressiondomainr2  r  rd   )r-  r.  rI   r/  r0  r1  r2  r8   r8   r<   test_pickling_polys_domains  s(   

r9  c                  C   s   ddl m} m}m}m} | |  fD ]}t| q|| fD ]}t| q|| fD ]}t| q)|||  fD ]}t| q7d S )Nr   )LexOrderGradedLexOrderReversedGradedLexOrderInverseOrder)sympy.polys.orderingsr:  r;  r<  r=  rZ   )r:  r;  r<  r=  rI   r8   r8   r<   test_pickling_polys_orderings  s   


	
r?  c                  C   s^   ddl m} m} td\}}}| | dfD ]}t| q||d|||ffD ]}t| q&d S )Nr   )MonomialOpsMonomialr   r?   r   )sympy.polys.monomialsr@  rA  r+   rZ   )r@  rA  r^   rf   r   rI   r8   r8   r<   test_pickling_polys_monomials  s   

rC  c                  C   s"  ddl m} m}m}m}m}m}m}m}m	}m
}	m}
m}m}m}m}m}m}m}m} | |  fD ]}t| q/|| fD ]}t| q;|| fD ]}t| qG|| fD ]}t| qS|| fD ]}t| q_|| fD ]}t| qk|| fD ]}t| qw|| fD ]}t| q|| fD ]}t| q|	|	 fD ]}t| q|
|
 fD ]}t| q|| fD ]}t| q|| fD ]}t| q|| fD ]}t| q|| fD ]}t| q|| fD ]}t| q|| fD ]}t| q|| fD ]}t| q|| fD ]}t| qd S )Nr   )HeuristicGCDFailedHomomorphismFailedIsomorphismFailedExtraneousFactorsEvaluationFailedRefinementFailedCoercionFailedNotInvertibleNotReversibleNotAlgebraicDomainErrorPolynomialErrorUnificationFailedGeneratorsErrorGeneratorsNeededUnivariatePolynomialErrorMultivariatePolynomialErrorOptionError	FlagError)sympy.polys.polyerrorsrD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rU  rV  rZ   )rD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rU  rV  rI   r8   r8   r<   test_pickling_polys_errors  sP   T

















rX  c                  C   sd   ddl m} m} td}|d | d }| | |dfD ]}t| q|||tfD ]}t| q)d S )Nr   )CRootOfRootSumr^   r?   )sympy.polys.rootoftoolsrY  rZ  r   rZ   r   )rY  rZ  r^   rp   rI   r8   r8   r<   test_pickling_polys_rootoftoolsz  s   

r\  )LatexPrinter)MathMLContentPrinterMathMLPresentationPrinter)PrettyPrinter)
prettyForm
stringPict)Printer)PythonPrinterc                  C   s8   t t  ttttttdtt tt fD ]} t|  qd S )Nr:   )	r]  r^  r_  r`  ra  rb  rc  rd  rZ   r[   r8   r8   r<   test_printing  s   
re  c                   C      t t  d S r5   )rZ   r^  r8   r8   r8   r<   test_printing1     rg  c                   C   rf  r5   )rZ   r_  r8   r8   r8   r<   test_printing2  rh  ri  c                   C   rf  r5   )rZ   r`  r8   r8   r8   r<   test_printing3  rh  rj  )Limit)Orderc                  C   s:   t d} t d}tt| |dtt| fD ]}t| qd S )Ner^   r4   )r   rk  rl  rZ   )rm  r^   rI   r8   r8   r<   test_series  s
   
rn  )Product)Sumc                  C   s>   t d} tt| | ddftt| | ddffD ]}t| qd S )Nr^   r>   r@   )r   ro  rp  rZ   rk   r8   r8   r<   test_concrete  s   (
rq  c                  C   s   t dddd} t|  d S )Nmessagez1.0zactive-deprecations)deprecated_since_versionactive_deprecations_target)r)   rZ   )wr8   r8   r<   test_deprecation_warning  s   rv  c                   C   s   t t tjdksJ d S )Ng      ?)r6   rR   r7   r*   Halfr8   r8   r8   r<   test_issue_18438  s   rx  c                  C   s   d} t | tdksJ d S )Nsi   ^       sympy.core.powerPowsympy.core.numbersIntegerKR}bhHalf)R}bR}b.r>   )r6   rR   rd   )datar8   r8   r<   !test_unpickle_from_older_versions  s   rz  )rP   rL   r6   sympy.physics.unitsr   sympy.testing.pytestr   r   sympy.core.basicr   r   sympy.core.corer   sympy.core.singletonr   sympy.core.symbolr	   r
   r   r   sympy.core.numbersr   r   r   r   r   r   r   r   r   r   sympy.core.relationalr   r   r   r   r   r   r   sympy.core.addr   sympy.core.mulr   sympy.core.powerr    sympy.core.functionr!   r"   r#   r$   r%   sympy.sets.setsr&   sympy.core.multidimensionalr'   sympy.external.gmpyr(   sympy.utilities.exceptionsr)   r*   r+   sympy.externalr,   r-   rB   rZ   r\   r_   rb   re   rg   rh   rl   rn   ro   rq   rw   rx   ry   r{   r   sympy.functionsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rd   r   r   r   r   r   r   r   r   sympy.geometry.entityr   sympy.geometry.pointr   sympy.geometry.ellipser   r   sympy.geometry.liner   r   r   r   sympy.geometry.polygonr   r   r   r   sympy.integrals.integralsr   r   sympy.core.logicr   r   sympy.matricesr   r   r   sympy.ntheory.generater   r   sympy.physics.paulialgebrar   r   r   r  r  sympy.polys.domains.integerringr  !sympy.polys.domains.rationalfieldr  r>  r  r  r  r  r!  r'  r(  r,  r9  r?  rC  rX  r\  sympy.printing.latexr]  sympy.printing.mathmlr^  r_  sympy.printing.pretty.prettyr`   sympy.printing.pretty.stringpictra  rb  sympy.printing.printerrc  sympy.printing.pythonrd  re  rg  ri  rj  sympy.series.limitsrk  sympy.series.orderrl  rn  sympy.concrete.productsro  sympy.concrete.summationsrp  rq  rv  rx  rz  r8   r8   r8   r<   <module>   s    0$
4	
	





<
a


