U
    ZÊ¹jê ã                
   @   s  d dl mZ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 d dlmZ d dlmZmZ d dlmZ d d	l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 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,m-Z- d dl.m/Z/ d dl0m1Z1m2Z2m3Z3 d dl4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z: d dl;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJ d dlKmLZLmMZMmNZNmOZOmPZPmQZQ d dlRmSZSmTZTmUZU d dlVmWZWmXZX d dlYmZZZm[Z[m\Z\ d dl]m^Z^m_Z_m`Z`maZa d dlbmcZc d dldmeZemfZfmgZgmhZhmiZimjZj d dlkmlZl d dlmmnZnmoZo d dlpmqZqmrZrmsZsmtZt d dlumvZvmwZwmxZxmyZymzZzm{Z{ d dl|m}Z}m~Z~ d d lm€Z€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� d d#l‘m’Z’ d d$l“m”Z”m•Z• d d%l–m—Z—m˜Z˜ d d&l™mšZšm›Z›mœZœm�Z�mžZž d d'lŸ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­ 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½ d d/l¾m¿Z¿ d d0lÀmÁZÁmÂZÂmÃZÃmÄZÄmÅZÅmÆZÆmÇZÇmÈZÈ d d1lÉmÊZÊmËZË d d2lÌmÍZÍ d d3lÎmÏZÏmÐZÐmÑZÑmÒZÒmÓZÓmÔZÔmÕZÕ d d4lÖm×Z× d d5lØmÙZÙ d d6lÚmÛZÛ d d7lÜmÝZÝ d d8lÞmßZßmàZà d d9lámâZâ d d:lã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ï d d?lðmñZñ d d@lòmóZómôZômõZõ d dAlöm÷Z÷møZømùZù d dBlúmûZû d dClümýZýmþZþmÿZÿ�m �Z �m�Z�m�Z�m�Z d dD�l�m�Z d dE�l�m�Z d dF�l�m	�Z	�m
�Z
�m�Z�m�Z d dG�l�m�Z�m�Z�m�Z�m�Z�m�Z d dH�l�m�Z�m�Z d dI�l�m�Z�m�Z�m�Z d dJ�l�m�Z d dK�l�m�Z�m�Z�m�Z�m �Z �m!�Z!�m"�Z"�m#�Z# d dL�l$�m%�Z%�m&�Z&�m'�Z'�m(�Z( d dM�l)�m*�Z*�m+�Z+�m,�Z,�m-�Z-�m.�Z.�m/�Z/�m0�Z0 d dNl �Z1d dO�l2�m3�Z3�m4�Z4 G dPdQ„ dQ�e1�j5ƒ�Z5e3dRƒ\
�Z6�Z7�Z8�Z9�Z:�Z;�Z<�Z=�Z>�Z?e3dSdTdU�\�Z@�ZA�ZBdVdW„ �ZCdXdY„ �ZDdZd[„ �ZEd\d]„ �ZFd^d_„ �ZGd`da„ �ZHdbdc„ �ZIddde„ �ZJdfdg„ �ZK�e%dhdi„ ƒ�ZL�e'djdk„ ƒ�ZMdldm„ �ZNdndo„ �ZOdpdq„ �ZPdrds„ �ZQdtdu„ �ZRdvdw„ �ZSdxdy„ �ZTdzd{„ �ZUd|d}„ �ZVd~d„ �ZWd€d�„ �ZXd‚dƒ„ �ZYd„d…„ �ZZd†d‡„ �Z[dˆd‰„ �Z\dŠd‹„ �Z]dŒd�„ �Z^dŽd�„ �Z_d�d‘„ �Z`d’d“„ �Zad”d•„ �Zbd–d—„ �Zcd˜d™„ �Zddšd›„ �Zedœd�„ �ZfdždŸ„ �Zgd d¡„ �Zhd¢d£„ �Zid¤d¥„ �Zjd¦d§„ �Zkd¨d©„ �Zldªd«„ �Zmd¬d­„ �Znd®d¯„ �Zod°d±„ �Zpd²d³„ �Zqd´dµ„ �Zrd¶d·„ �Zsd¸d¹„ �Ztdºd»„ �Zud¼d½„ �Zvd¾d¿„ �ZwdÀdÁ„ �ZxdÂdÃ„ �ZydÄdÅ„ �ZzdÆdÇ„ �Z{dÈdÉ„ �Z|dÊdË„ �Z}dÌdÍ„ �Z~dÎdÏ„ �ZdÐdÑ„ �Z€dÒdÓ„ �Z�dÔdÕ„ �Z‚dÖd×„ �ZƒdØdÙ„ �Z„dÚdÛ„ �Z…dÜdÝ„ �Z†dÞdß„ �Z‡dàdá„ �Zˆdâdã„ �Z‰dädå„ �ZŠdædç„ �Z‹dèdé„ �ZŒdêdë„ �Z�dìdí„ �ZŽdîdï„ �Z�dðdñ„ �Z�dòdó„ �Z‘dôdõ„ �Z’död÷„ �Z“dødù„ �Z”dúdû„ �Z•düdý„ �Z–dþdÿ„ �Z—�d �d„ �Z˜�d�d„ �Z™�d�d„ �Zš�d�d„ �Z›�d�d	„ �Zœ�d
�d„ �Z��d�d„ �Zž�d�d„ �ZŸ�d�d„ �Z �d�d„ �Z¡�d�d„ �Z¢�d�d„ �Z£�d�d„ �Z¤�d�d„ �Z¥�d�d„ �Z¦�d�d„ �Z§�d �d!„ �Z¨�d"�d#„ �Z©�d$�d%„ �Zª�d&�d'„ �Z«�d(�d)„ �Z¬�d*�d+„ �Z­�d,�d-„ �Z®�d.�d/„ �Z¯�d0�d1„ �Z°�d2�d3„ �Z±�d4�d5„ �Z²�d6�d7„ �Z³�d8�d9„ �Z´�d:�d;„ �Zµ�d<�d=„ �Z¶�e%�d>�d?„ ƒ�Z·�d@�dA„ �Z¸�dB�dC„ �Z¹�dD�dE„ �Zº�dF�dG„ �Z»�dH�dI„ �Z¼�dJ�dK„ �Z½�dL�dM„ �Z¾�dN�dO„ �Z¿�dP�dQ„ �ZÀ�dR�dS„ �ZÁ�dT�dU„ �ZÂ�dV�dW„ �ZÃ�dX�dY„ �ZÄ�dZ�d[„ �ZÅ�d\�d]„ �ZÆ�d^�d_„ �ZÇ�d`�da„ �ZÈ�db�dc„ �ZÉ�dd�de„ �ZÊ�df�dg„ �ZË�dh�di„ �ZÌ�dj�dk„ �ZÍ�dl�dm„ �ZÎ�dn�do„ �ZÏ�dp�dq„ �ZÐ�dr�ds„ �ZÑ�dt�du„ �ZÒ�dv�dw„ �ZÓ�dx�dy„ �ZÔ�dz�d{„ �ZÕ�d|�d}„ �ZÖ�d~�d„ �Z×�d€�d�„ �ZØ�d‚�dƒ„ �ZÙ�d„�d…„ �ZÚ�d†�d‡„ �ZÛ�dˆ�d‰„ �ZÜ�dŠ�d‹„ �ZÝ�dŒ�d�„ �ZÞ�dŽ�d�„ �Zß�d��d‘„ �Zà�d’�d“„ �Zá�d”�d•„ �Zâ�d–�d—„ �Zã�d˜�d™„ �Zä�dš�d›„ �Zå�dœ�d�„ �Zæ�dž�dŸ„ �Zç�d �d¡„ �Zè�d¢�d£„ �Zé�d¤�d¥„ �ZêdNS (¦  é    )ÚMatAddÚMatMulÚArray)Ú
Quaternion)ÚAccumBounds)ÚCycleÚPermutationÚAppliedPermutation)ÚProduct)ÚSum)ÚTupleÚDict)ÚUnevaluatedExpr)Ú
DerivativeÚFunctionÚLambdaÚSubsÚdiff)ÚMod)ÚMul)ÚAlgebraicNumberÚFloatÚIÚIntegerÚRationalÚooÚpi©Úevaluate)ÚPow)ÚEqÚNe)ÚS)ÚSymbolÚWildÚsymbols)ÚFallingFactorialÚRisingFactorialÚbinomialÚ	factorialÚ
factorial2Úsubfactorial)Ú	bernoulliÚbellÚcatalanÚeulerÚgenocchiÚlucasÚ	fibonacciÚ
tribonacciÚdivisor_sigmaÚudivisor_sigmaÚmobiusÚprimenuÚ
primeomegaÚtotientÚreduced_totient)ÚAbsÚargÚ	conjugateÚimÚ
polar_liftÚre)ÚLambertWÚexpÚlog)ÚasinhÚcoth)ÚceilingÚfloorÚfrac)ÚMaxÚMinÚrootÚsqrt)Ú	Piecewise)ÚacscÚasinÚcosÚcotÚsinÚtan)Úbeta)Ú
DiracDeltaÚ	Heaviside)Ú
elliptic_eÚ
elliptic_fÚ
elliptic_kÚelliptic_pi)ÚChiÚCiÚEiÚShiÚSiÚexpint)ÚgammaÚ
uppergamma)ÚhyperÚmeijerg)ÚmathieucÚmathieucprimeÚmathieusÚmathieusprime)	Úassoc_laguerreÚassoc_legendreÚ
chebyshevtÚ
chebyshevuÚ
gegenbauerÚhermiteÚjacobiÚlaguerreÚlegendre)ÚSingularityFunction)ÚYnmÚZnm)ÚKroneckerDeltaÚ
LeviCivita)Údirichlet_etaÚlerchphiÚpolylogÚ	stieltjesÚzeta)ÚIntegral)
ÚCosineTransformÚFourierTransformÚInverseCosineTransformÚInverseFourierTransformÚInverseLaplaceTransformÚInverseMellinTransformÚInverseSineTransformÚLaplaceTransformÚMellinTransformÚSineTransform)ÚImplies)ÚAndÚOrÚXorÚ
EquivalentÚfalseÚNotÚtrue)ÚMatrix)ÚKroneckerProduct)ÚMatrixSymbol)ÚPermutationMatrix)ÚMatrixSlice)ÚTransferFunctionÚSeriesÚParallelÚFeedbackÚTransferFunctionMatrixÚ
MIMOSeriesÚMIMOParallelÚMIMOFeedback)Ú
CommutatorÚOperator)ÚTr)ÚmeterÚgibibyteÚgramÚ	microgramÚsecondÚmilliÚmicro)ÚZZ)Úfield)ÚPoly)Úring)ÚRootSumÚrootof)Úfps)Úfourier_series)ÚLimit)ÚOrder)ÚSeqAddÚ
SeqFormulaÚSeqMulÚSeqPer)ÚConditionSet)ÚContains)ÚComplexRegionÚImageSetÚRange)ÚOrdinalÚOrdinalOmegaÚ
OmegaPower)ÚPowerSet)Ú	FiniteSetÚIntervalÚUnionÚIntersectionÚ
ComplementÚSymmetricDifferenceÚ
ProductSet)ÚSetExpr)ÚNormal)Ú
CovarianceÚExpectationÚProbabilityÚVariance)ÚImmutableDenseNDimArrayÚImmutableSparseNDimArrayÚMutableSparseNDimArrayÚMutableDenseNDimArrayÚtensorproduct)ÚArraySymbolÚArrayElement)ÚIdxÚIndexedÚIndexedBase)ÚPartialDerivative)Ú
CoordSys3DÚCrossÚCurlÚDotÚ
DivergenceÚGradientÚ	Laplacian)ÚXFAILÚraisesÚ_both_exp_powÚwarns_deprecated_sympy)ÚlatexÚ	translateÚgreek_letters_setÚtex_greek_dictionaryÚmultiline_latexÚlatex_escapeÚLatexPrinterN)ÚmuÚtauc                   @   s   e Zd ZdS )Ú
lowergammaN©Ú__name__Ú
__module__Ú__qualname__© rî   rî   ú^/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/printing/tests/test_latex.pyré   a   s   ré   zx y z t w a b c s púk m nT©Úintegerc                  C   sL   G dd„ dt ƒ} t| tƒƒdks$t‚G dd„ dt ƒ} t| tƒƒdksHt‚d S )Nc                   @   s   e Zd Zdd„ ZdS )útest_printmethod.<locals>.Rc                 S   s   d|  | jd ¡ S )Nzfoo(%s)r   )Z_printÚargs©ÚselfÚprinterrî   rî   rï   Ú_latexk   s    ú"test_printmethod.<locals>.R._latexN©rë   rì   rí   rø   rî   rî   rî   rï   ÚRj   s   rû   zfoo(x)c                   @   s   e Zd Zdd„ ZdS )ró   c                 S   s   dS )NÚfoorî   rõ   rî   rî   rï   rø   p   s    rù   Nrú   rî   rî   rî   rï   rû   o   s   rü   )r;   rà   ÚxÚAssertionError)rû   rî   rî   rï   Útest_printmethodi   s    rÿ   c                  C   s~  t dt ƒdkst‚t td ƒdks(t‚t tdt  ƒdks@t‚t td t d td  ƒdksdt‚t dt t ƒdks|t‚t dt t d	d
�dks˜t‚t dtd  t dd
�dks¸t‚t ddt  dd
�dksÔt‚t ttjd  ƒdksît‚t ttjtd ddd�ƒdk�st‚t ttjtd ddd�ƒdk�s6t‚t tdddd�ƒdk�sRt‚t tdddd�ƒdk�snt‚t ttjdtjdd�ƒdk�s�t‚t tdtddd�ƒdk�s®t‚t tdtddd�ƒdk�sÌt‚t tttdƒtjt d ƒƒdk�sôt‚t tttdƒt	ddƒt d ƒƒdk�s t‚t tttdƒdt d ƒƒdk�sFt‚t td ddd�ƒd!k�sbt‚t tdd dd�ƒd"k�s~t‚t tdddd�ƒd#k�sšt‚t td$ddd�ƒd%k�s¶t‚t tddddd�ƒd&k�sÔt‚t tdddd�ƒd'k�sðt‚t tdtjdd�ƒd(k�st‚t tddtjdd�ƒd)k�s.t‚t tddddtdd�ƒd*k�sPt‚t tdd$dd�ƒd+k�slt‚t td,dddd ttdd�ƒd-k�s’t‚t td,dddt
 d ttdd�ƒd.k�s¼t‚t tt	ddƒt	dd/ƒdd�ƒd0k�sät‚t dt ƒd1k�sút‚t dt d2d3�d4k�st‚t tdƒ d ƒd5k�s0t‚t tdƒ d d2d3�d6k�sPt‚t dtd  ƒd7k�sjt‚t dtt  d ƒd8k�sˆt‚t td ƒd9k�sžt‚t td d2d3�d:k�s¸t‚t tt dt  ƒd;k�sÖt‚t tt dt  d2d3�d<k�søt‚t tt dt  d d=�d>k�st‚t tt t ƒd?k�s4t‚t tt t dd=�d?k�sRt‚t dtdƒ t d ƒd@k�stt‚t dtdƒ t d dd=�dAk�sšt‚t tttƒƒdBk�s²t‚tdCƒ} tdDƒ}t | d ƒdEk�sØt‚t | d ddF�dGk�sòt‚t t|| ƒ| dƒƒdHk�st‚t t|| ƒ| dƒddF�dIk�s2t‚t dtttƒ d ƒdJk�sRt‚t dtttƒ d d2d3�dKk�svt‚t ttƒƒdLk�sŒt‚t tt	ddƒ ƒdMk�s¨t‚t tt	ddƒ ddN�dOk�sÈt‚t ttƒd ƒdPk�sât‚t ttƒd2dQ�dLk�süt‚t tt	ddƒ d2dQ�dRk�st‚t ttƒd d2dQ�dPk�s:t‚t tt	dd,ƒ ƒdSk�sVt‚t tt	dd,ƒ d2dT�dUk�svt‚t td t	dd,ƒ ƒdVk�s–t‚t td t	dd,ƒ d2dT�dWk�sºt‚t ttdƒƒƒdXk�sÔt‚t ttdƒddYgƒƒdZk�sôt‚t ttdƒd[d\�ƒd]k�st‚t ttdƒddYgd[d\�ƒd^k�s6t‚t tdtdƒd  dddYgd_d\�ƒd`k�sdt‚t d¡}t |j dddd,g¡ƒdak�s�t‚t |j dddd,g¡dbdc�ddk�s¶t‚t | de¡d  ƒdfk�sÒt‚t | de¡d  dbdc�dgk�sòt‚t | d/¡d  ƒdhk�	st‚t dit ƒdjk�	s$t‚t dit d	d
�dkk�	s>t‚t dit dld
�dmk�	sXt‚t dttƒ ƒdnk�	srt‚t ttƒd$ ƒdnk�	sŒt‚t ttƒt	ddƒ ƒdok�	s¬t‚t ttƒt	ddƒ d2dT�dpk�	sÐt‚t t ƒdqk�	sät‚t tt@ ƒdrk�	sút‚t tt@ t
@ ƒdsk�
st‚t ttB ƒdtk�
s*t‚t ttB t
B ƒduk�
sDt‚t tt@ t
B ƒdvk�
s^t‚t tttƒƒdwk�
svt‚t tt ?  ƒdxk�
s�t‚t ttttƒt
ƒƒdyk�
s®t‚t tt
tttƒƒƒdzk�
sÌt‚t tt@  ƒd{k�
sät‚t t td|id}�d~k�s t‚t tt@ td|tdid}�d€k�s"t‚t tt@ t
@ td|tdt
d�id}�d‚k�sLt‚t ttB td|tdid}�dƒk�snt‚t ttB t
B td|tdt
d�id}�d„k�s˜t‚t tt@ t
B td|tdt
d�id}�d…k�sÂt‚t tttƒtd|tdid}�d†k�sæt‚t tt	ddƒd$dd�ƒd‡k�st‚t tt	ddƒdˆdd�ƒd‰k�s*t‚t ttdƒdŠ d$dd�ƒd‹k�sNt‚tdŒd2d��}t t| ƒt|ƒ ƒdŽk�szt‚d S )�Né   úx + 1é   zx^{2}z	x^{x + 1}é   zx^{3} + x^{2} + x + 1z2 x yÚdot©Z
mul_symbolz2 \cdot x \cdot yz\,z3\,x^{2}\,yç      ø?z1.5 \cdot 3^{x}é   z\sqrt[32]{x}éûÿÿÿFr   z!\frac{1}{2} x^{2} \left(-5\right)z\frac{1}{2} x^{2} \cdot 5z\left(-5\right) \left(-5\right)z5 \left(-5\right)z'\frac{1}{2} \left(-5\right) \frac{1}{2}z5 i 5z5 i \left(-5\right)z"x^{2} \left(\frac{x}{2} + 1\right)z$x^{3} \left(\frac{2 x}{3} + 1\right)é   zx^{11} \left(2 x + 1\right)r   z	0 \cdot 1z	1 \cdot 0z	1 \cdot 1éÿÿÿÿz\left(-1\right) 1z1 \cdot 1 \cdot 1z	1 \cdot 2z1 \cdot \frac{1}{2}z1 \cdot 1 \cdot \frac{1}{2}z1 \cdot 1 \cdot 2 \cdot 3 xz1 \left(-1\right)é   z%4 \cdot 3 \cdot 2 \cdot 1 \cdot 0 y xz*4 \cdot 3 \cdot 2 \left(z + 1\right) 0 y xé   z\frac{2}{3} \cdot \frac{5}{7}ú\frac{1}{x}T)Zfold_short_fracz1 / xz- \frac{3}{2}z- 3 / 2z\frac{1}{x^{2}}z\frac{1}{2 \left(x + y\right)}z\frac{x}{2}zx / 2z\frac{x + y}{2 x}z\left(x + y\right) / 2 x)Zlong_frac_ratioz \frac{1}{2 x} \left(x + y\right)z\frac{x + y}{x}z\frac{2 \sqrt{2} x}{3}z\frac{2 x}{3} \sqrt{2}z{\binom{x}{y}}úx^*Úfz\left(x^{*}\right)^{2})Zparenthesize_superz{x^{*}}^{2}z=\frac{d^{2}}{d \left(x^{*}\right)^{2}} f{\left(x^{*} \right)}z2\frac{d^{2}}{d {x^{*}}^{2}} f{\left(x^{*} \right)}z\frac{2 \int x\, dx}{3}z\left(2 \int x\, dx\right) / 3z\sqrt{x}z\sqrt[3]{x})Zroot_notationzx^{\frac{1}{3}}zx^{\frac{3}{2}}©Úitexz\root{3}{x}zx^{\frac{3}{4}})Zfold_frac_powerszx^{3/4}z \left(x + 1\right)^{\frac{3}{4}}z\left(x + 1\right)^{3/4}z\sqrt{2}iùÿÿÿz-7 + 3 \sqrt{2}Úalpha)Úaliasú\alphaz3 \alpha - 7rT   z\beta^{2} + 3 \beta - 7z%\zeta^{3} + 2 \zeta^{2} + 3 \zeta + 4Úold©Úorderz%4 + 3 \zeta + 2 \zeta^{2} + \zeta^{3}é   z(\left(19, \zeta^{2} + 5 \zeta + 1\right)z(\left(19, 1 + 5 \zeta + \zeta^{2}\right)z\left(7\right)g0)ˆVC Dz1.5 \cdot 10^{20} xz1.5 \cdot 10^{20} \cdot xÚtimesz1.5 \times 10^{20} \times xz\frac{1}{\sin{\left(x \right)}}z#\sin^{\frac{3}{2}}{\left(x \right)}z\sin^{3/2}{\left(x \right)}z\neg xz
x \wedge yzx \wedge y \wedge zzx \vee yzx \vee y \vee zzz \vee \left(x \wedge y\right)zx \Rightarrow yzx \not\Rightarrow \neg yz#\left(x \vee y\right) \Rightarrow zz#z \Rightarrow \left(x \vee y\right)z\neg \left(x \wedge y\right)Úx_i©Zsymbol_namesz\neg x_iZy_izx_i \wedge y_iZz_izx_i \wedge y_i \wedge z_izx_i \vee y_izx_i \vee y_i \vee z_iz$z_i \vee \left(x_i \wedge y_i\right)zx_i \Rightarrow y_iz\frac{1}{\frac{1}{3}}éþÿÿÿz\frac{1}{(\frac{1}{3})^{2}}éd   z\frac{1}{\frac{1}{100}}Úp©Úpositiveze^{- p} \log{\left(p \right)})rà   rý   rþ   Úyr"   ÚHalfr   r   r   r   ÚzrL   r(   r#   r   r   r|   r   r¦   Zcyclotomic_fieldÚextZfield_elementZprimes_aboverR   r‡   r‰   r   rB   rC   )Úx_starr  Úkr  rî   rî   rï   Útest_latex_basicu   s<   $ $$"(,&ÿ
ÿ
ÿ
ÿ
ÿ
 ÿ
ÿ
"ÿ
" ÿ
   ÿ
ÿ
 ÿ
"ÿ

ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
"ÿ
ÿ
ÿ
""$r'  c                   C   sT   t dƒdkst‚t dƒdks t‚t d ƒdks0t‚t tƒdks@t‚t tƒdksPt‚d S )NTz\text{True}Fz\text{False}z\text{None})rà   rþ   rŽ   rŒ   rî   rî   rî   rï   Útest_latex_builtins  s
    r(  c                   C   sF  t ttddƒƒdkst‚t ttddƒƒdks0t‚t ttddƒƒdksHt‚t ttttƒƒdks`t‚t ttdd	ƒƒd
ksxt‚t ttddƒƒdks�t‚t ttddƒd ƒdks¬t‚t ttddƒd ƒdksÈt‚t ttddƒd ƒdksät‚t ttttƒd ƒdk�st‚t ttdd	ƒd ƒdk�s t‚t ttddƒd d ƒdk�sBt‚d S )Nr  r  z&{\left\langle x - 4 \right\rangle}^{5}éýÿÿÿz&{\left\langle x + 3 \right\rangle}^{4}r   z"{\left\langle x \right\rangle}^{4}z({\left\langle - a + x \right\rangle}^{n}r  z'{\left\langle x - 4 \right\rangle}^{-2}r
  z'{\left\langle x - 4 \right\rangle}^{-1}r  z.{\left({\langle x - 4 \rangle}^{5}\right)}^{3}z.{\left({\langle x + 3 \rangle}^{4}\right)}^{3}z*{\left({\langle x \rangle}^{4}\right)}^{3}z0{\left({\langle - a + x \rangle}^{n}\right)}^{3}z/{\left({\langle x - 4 \rangle}^{-2}\right)}^{3}z/{\left({\langle x - 4 \rangle}^{-1}\right)}^{9})rà   rr   rý   rþ   ÚaÚnrî   rî   rî   rï   Útest_latex_SingularityFunction  sH    ÿÿÿÿÿÿÿÿÿÿ
ÿ
ÿr,  c                   C   sL   t tdddƒƒdkst‚t tddƒdddƒƒdks6t‚t tƒ ƒdksHt‚d S )	Nr   r  r  ú\left( 1\; 2\; 4\right)r  é   ú*\left( 1\; 2\right)\left( 4\; 5\; 6\right)ú\left( \right))rà   r   rþ   rî   rî   rî   rï   Útest_latex_cycle/  s
    ÿr1  c               	   C   s  t tdddƒƒdkst‚t tddƒdddƒƒdks6t‚t tƒ ƒdksHt‚t tddƒtdƒ ƒd	ksft‚t tdƒƒd
kszt‚t tddƒdd�dks”t‚t tddƒddƒdd�dks´t‚t tƒ dd�dksÊt‚tƒ �4 tj} dt_t tddƒddƒƒdksút‚| t_W 5 Q R X d S )Nr   r  r  r-  r  r.  r/  r0  z"\left( 2\; 4\right)\left( 5\right)z\left( 5\right)r   F)Zperm_cyclicz,\begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}r  z<\begin{pmatrix} 0 & 1 & 2 & 3 \\ 1 & 0 & 3 & 2 \end{pmatrix})rà   r   rþ   rß   Zprint_cyclic)Zold_print_cyclicrî   rî   rï   Útest_latex_permutation6  s2    ÿÿÿÿÿÿr2  c                   C   s´   t tdƒƒdkst‚t tdƒƒdks(t‚t tdƒdd�dks@t‚t tdƒd	d
dd�dks\t‚t tdƒd	d
dd�dksxt‚t tdƒd	d
dd�dks”t‚t tdƒdd
dd�dks°t‚d S )Ng}Ã”%­I²Tz1.0 \cdot 10^{100}g0Žä.ÿ++z1.0 \cdot 10^{-100}r  r  z1.0 \times 10^{-100}z10000.0Fr  r  )Z	full_precÚminÚmaxz1.0 \cdot 10^{4}r  r  z0.099999Tz9.99990000000000 \cdot 10^{-2})rà   r   rþ   rî   rî   rî   rï   Útest_latex_FloatM  s"    ÿÿÿÿÿr5  c                  C   sø  t dƒ} tt| j| j| j d | j ƒƒdks2t‚tt| j| jƒƒdksLt‚ttt| j| jƒ ƒdksjt‚ttt| j | jƒƒdksˆt‚ttd| j | j ƒƒdks¨t‚ttd| j | j | j ƒƒdksÎt‚ttdt | j | j ƒƒd	ksòt‚tttd| j | j ƒ ƒd
k�st‚tt	d| j | j | j ƒƒdk�s@t‚tt	d| j | j ƒƒdk�sbt‚ttt	d| j | j ƒ ƒdk�sˆt‚tt
| j| j| j d | j ƒƒdk�s´t‚tt
| j| jƒƒdk�sÐt‚tt
t| j | jƒƒdk�sðt‚ttt
| j| jƒ ƒdk�st‚tt| jƒƒdk�s(t‚tt| jd| j  ƒƒdk�sJt‚ttt| jƒ ƒdk�sft‚ttt| j ƒƒdk�s‚t‚tt| jƒƒdk�sšt‚tt| jd| j  ƒƒdk�s¼t‚ttt| jƒ ƒdk�sØt‚ttt| j ƒƒdk�sôt‚d S )NÚAr  zs\mathbf{\hat{i}_{A}} \times \left(\left(3 \mathbf{{x}_{A}}\right)\mathbf{\hat{j}_{A}} + \mathbf{\hat{k}_{A}}\right)z0\mathbf{\hat{i}_{A}} \times \mathbf{\hat{j}_{A}}z?x \left(\mathbf{\hat{i}_{A}} \times \mathbf{\hat{j}_{A}}\right)zM- \mathbf{\hat{j}_{A}} \times \left(\left(x\right)\mathbf{\hat{i}_{A}}\right)zM\nabla\times \left(\left(3 \mathbf{{x}_{A}}\right)\mathbf{\hat{j}_{A}}\right)zd\nabla\times \left(\mathbf{\hat{i}_{A}} + \left(3 \mathbf{{x}_{A}}\right)\mathbf{\hat{j}_{A}}\right)zO\nabla\times \left(\left(3 \mathbf{{x}_{A}} x\right)\mathbf{\hat{j}_{A}}\right)z\x \left(\nabla\times \left(\left(3 \mathbf{{x}_{A}}\right)\mathbf{\hat{j}_{A}}\right)\right)zc\nabla\cdot \left(\mathbf{\hat{i}_{A}} + \left(3 \mathbf{{x}_{A}}\right)\mathbf{\hat{j}_{A}}\right)zL\nabla\cdot \left(\left(3 \mathbf{{x}_{A}}\right)\mathbf{\hat{j}_{A}}\right)z[x \left(\nabla\cdot \left(\left(3 \mathbf{{x}_{A}}\right)\mathbf{\hat{j}_{A}}\right)\right)zr\mathbf{\hat{i}_{A}} \cdot \left(\left(3 \mathbf{{x}_{A}}\right)\mathbf{\hat{j}_{A}} + \mathbf{\hat{k}_{A}}\right)z/\mathbf{\hat{i}_{A}} \cdot \mathbf{\hat{j}_{A}}zJ\mathbf{\hat{j}_{A}} \cdot \left(\left(x\right)\mathbf{\hat{i}_{A}}\right)z>x \left(\mathbf{\hat{i}_{A}} \cdot \mathbf{\hat{j}_{A}}\right)z\nabla \mathbf{{x}_{A}}z9\nabla \left(\mathbf{{x}_{A}} + 3 \mathbf{{y}_{A}}\right)z&x \left(\nabla \mathbf{{x}_{A}}\right)z&\nabla \left(\mathbf{{x}_{A}} x\right)z\Delta \mathbf{{x}_{A}}z9\Delta \left(\mathbf{{x}_{A}} + 3 \mathbf{{y}_{A}}\right)z&x \left(\Delta \mathbf{{x}_{A}}\right)z&\Delta \left(\mathbf{{x}_{A}} x\right))rÕ   rà   rÖ   ÚiÚjrý   r&  rþ   r×   rÙ   rØ   rÚ   r!  rÛ   )r6  rî   rî   rï   Útest_latex_vector_expressions\  st     ÿÿÿÿÿÿÿÿ
ÿ
ÿ
ÿ
 ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
r9  c                  C   s¾  t dƒ\} }}t dƒ\}}}}t|ƒdks.t‚t|ƒdks>t‚t|ƒdksNt‚t|ƒdks^t‚dd„ tD ƒ}t|tt ¡ ƒ ƒdksˆt‚t| | ƒdksœt‚t| | ƒd	ks°t‚ttd
ƒƒdksÄt‚ttdƒƒdksØt‚ttdƒƒdksìt‚ttdƒƒdk�st‚ttdƒƒdk�st‚ttdƒƒdk�s.t‚ttdƒƒdk�sDt‚ttdƒƒdk�sZt‚ttdƒƒdk�spt‚ttdƒƒdk�s†t‚ttdƒƒdk�sœt‚ttdƒtd ƒ ƒd!k�sºt‚d S )"NzGamma, lambda, rhoztau, Tau, TAU, taUú\tauú
\mathrm{T}c                 S   s   h | ]}|  ¡ ’qS rî   )Ú
capitalize)Ú.0Úlrî   rî   rï   Ú	<setcomp>•  s     z%test_latex_symbols.<locals>.<setcomp>r   z\Gamma + \lambdaz\Gamma \lambdaÚq1zq_{1}Zq21zq_{21}Zepsilon0z\epsilon_{0}Úomega1ú
\omega_{1}Z91Z	alpha_newz\alpha_{new}zC^origzC^{orig}zx^alphaz
x^{\alpha}z
beta^alphaz\beta^{\alpha}ze^Alphaze^{\mathrm{A}}zomega_alpha^betaz\omega^{\beta}_{\alpha}ÚomegarT   z\omega^{\beta})	r%   rà   rþ   râ   ÚlenÚsetrã   Úkeysr#   )ÚGammaZlmbdaÚrhorè   ÚTauZTAUZtaUZcapitalized_lettersrî   rî   rï   Útest_latex_symbols�  s,    rJ  c                  C   sb   t dƒ\} }}t||  |kƒdks&t‚t|| |  dkƒdksBt‚t|d |d  ƒdks^t‚d S )Nzrho, mass, volumez$\rho \mathrm{volume} = \mathrm{mass}r   z/\rho \mathrm{volume} {\mathrm{mass}}^{(-1)} = 1r  z/{\mathrm{mass}}^{3} \cdot {\mathrm{volume}}^{3}©r%   rà   rþ   )rH  ZmassÚvolumerî   rî   rï   Útest_latex_symbols_failing§  s    
ÿÿÿÿrM  c                  C   s   t ttƒƒdkst‚t tdƒtdƒ ƒdks0t‚tdƒ} t | tƒƒdksLt‚t | ƒdks\t‚tdƒ}t |ttƒƒdkszt‚t |ƒdksŠt‚td	ƒ}t |tttƒƒd
ksªt‚t |ƒd	ksºt‚tdƒ}t |ƒdksÒt‚t |tƒƒdksæt‚tdƒ}t |tttƒƒdk�st‚t tttƒƒdk�s t‚t ttdd�ƒdk�s:t‚t tttƒd ƒdk�sVt‚t |tƒƒdk�slt‚t |ƒdk�s~t‚tdƒ}t |tttƒƒdk�s t‚t |tƒƒdk�s¶t‚t |ƒdk�sÈt‚tdƒ}t |ƒdk�sât‚t |tƒƒdk�søt‚t tdƒƒdk�st‚t tdƒƒdk�s$t‚t td ƒƒd!k�s:t‚t td"ƒƒd#k�sPt‚t td$ƒƒd!k�sft‚t td%ƒƒd#k�s|t‚t td&ƒƒd'k�s’t‚t td(ƒƒd)k�s¨t‚t tdƒtd*ƒƒƒd+k�sÆt‚t td ƒtd*ƒƒƒd,k�sät‚t td"ƒtd*ƒƒƒd-k�st‚t td$ƒtd*ƒƒƒd,k�s t‚t td&ƒtd*ƒƒƒd.k�s>t‚t td(ƒtd*ƒƒƒd/k�s\t‚t tdƒƒ d ƒd0k�sxt‚t td ƒƒ d ƒd1k�s”t‚t td"ƒƒ d ƒd2k�s°t‚t td$ƒƒ d ƒd1k�sÌt‚t td%ƒƒ d ƒd2k�sèt‚t tdƒtd*ƒƒd ƒd3k�s
t‚t td ƒtd*ƒƒd ƒd4k�s,t‚t td"ƒtd*ƒƒd ƒd5k�sNt‚t td$ƒtd*ƒƒd ƒd4k�spt‚t td%ƒtd*ƒƒd ƒd5k�s’t‚t td6ƒƒd6k�s¨t‚t td7ƒƒdk�s¾t‚t td8ƒƒd9k�sÔt‚t tdƒƒdk�sêt‚t td:ƒƒd9k�s t‚t td6ƒƒ ƒd;k�st‚t td7ƒƒ ƒd<k�s0t‚t td8ƒƒ ƒd=k�sHt‚t tdƒƒ ƒd<k�s`t‚t td:ƒƒ ƒd=k�sxt‚t td6ƒƒ d ƒd>k�s”t‚t td7ƒƒ d ƒd?k�s°t‚t td8ƒƒ d ƒd@k�sÌt‚t tdƒƒ d ƒd?k�sèt‚t td:ƒƒ d ƒd@k�st‚t td6ƒtd*ƒƒd ƒdAk�s&t‚t td7ƒtd*ƒƒd ƒdBk�sHt‚t td8ƒtd*ƒƒd ƒdCk�sjt‚t tdƒtd*ƒƒd ƒdBk�sŒt‚t td:ƒtd*ƒƒd ƒdCk�s®t‚t td6ƒƒ dD ƒdEk�sÊt‚t td7ƒƒ dD ƒdFk�sæt‚t td8ƒƒ dD ƒdGk�st‚t tdƒƒ dD ƒdFk�st‚t td:ƒƒ dD ƒdGk�s:t‚t td6ƒtd*ƒƒdD ƒdHk�s\t‚t td7ƒtd*ƒƒdD ƒdIk�s~t‚t td8ƒtd*ƒƒdD ƒdJk�s t‚t tdƒtd*ƒƒdD ƒdIk�sÂt‚t td:ƒtd*ƒƒdD ƒdJk�sät‚t td6ƒƒ t	 ƒdKk�s t‚t td7ƒƒ t	 ƒdLk�st‚t td8ƒƒ t	 ƒdMk�s8t‚t tdƒƒ t	 ƒdLk�sTt‚t td:ƒƒ t	 ƒdMk�spt‚t td6ƒtd*ƒƒt	 ƒdNk�s’t‚t td7ƒtd*ƒƒt	 ƒdOk�s´t‚t td8ƒtd*ƒƒt	 ƒdPk�sÖt‚t tdƒtd*ƒƒt	 ƒdOk�søt‚t td:ƒtd*ƒƒt	 ƒdPk�	st‚tdƒ}t td6ƒƒ | ƒdQk�	s>t‚t td7ƒƒ | ƒdRk�	sZt‚t td8ƒƒ | ƒdSk�	svt‚t tdƒƒ | ƒdRk�	s’t‚t td:ƒƒ | ƒdSk�	s®t‚t td6ƒtd*ƒƒ| ƒdTk�	sÐt‚t td7ƒtd*ƒƒ| ƒdUk�	sòt‚t td8ƒtd*ƒƒ| ƒdVk�
st‚t tdƒtd*ƒƒ| ƒdUk�
s6t‚t td:ƒtd*ƒƒ| ƒdVk�
sXt‚t tdWƒtƒƒdXk�
srt‚t tdWƒtƒ| ƒdYk�
s�t‚t tdZƒtƒƒdXk�
sªt‚t tdZƒtƒ| ƒdYk�
sÈt‚t td[ƒtƒƒd\k�
sât‚td]ƒ}t |ƒd^k�
süt‚t |tƒƒd_k�st‚t t
tƒƒd`k�s(t‚t t
tƒdadb�dck�sBt‚t t
dtd  ƒdadb�ddk�sdt‚t t
td ƒdadb�dek�s‚t‚t ttƒd ƒdfk�sœt‚t ttƒd dgdh�dik�sºt‚t ttƒd djdh�dkk�sØt‚t ttd ƒdjdadl�dmk�søt‚t ttƒdgdh�dnk�st‚t ttƒdgdh�dok�s,t‚t ttƒƒdpk�sBt‚t tt ƒƒdqk�sZt‚t ttƒd ƒdrk�stt‚t ttƒƒdsk�sŠt‚t tt ƒƒdtk�s¢t‚t ttƒd ƒduk�s¼t‚t ttƒƒdvk�sÒt‚t tt ƒƒdwk�sêt‚t ttƒd ƒdxk�st‚t tdtƒƒdyk�st‚t tdtƒd ƒdzk�s8t‚t td{tƒƒd|k�sPt‚t td{tƒƒd}k�sht‚t ttƒƒd~k�s~t‚t ttƒƒdk�s”t‚t ttƒƒd€k�sªt‚t ttƒd ƒd�k�sÄt‚t ttƒd ƒd‚k�sÞt‚t ttƒd ƒdƒk�søt‚t ttdtd{ ƒƒd„k�st‚t tttƒd ƒd…k�s2t‚t ttdtd{ ƒƒd†k�sPt‚t tttƒd ƒd‡k�slt‚t ttƒƒdˆk�s‚t‚t ttƒd ƒd‰k�sœt‚t ttƒƒdŠk�s²t‚t ttt ƒƒd‹k�sÌt‚t ttƒƒdŒk�sât‚t ttƒƒd�k�søt‚t ttƒd ƒdŽk�st‚t ttd ƒƒdŽk�s,t‚t ttƒƒd�k�sBt‚td�ƒ}t t|ƒƒd‘k�s`t‚t t tƒƒd’k�svt‚t t ttƒƒd’k�sŽt‚t t ttd“fƒƒd’k�sªt‚t t ttt!fƒƒd”k�sÆt‚t t tt ttfƒƒd•k�sæt‚t t tttƒƒd–k�s t‚t t tttƒƒd–k�st‚t t ttt!ftt!fƒƒd—k�s<t‚t t"ttƒƒd˜k�sTt‚t t"ttƒd ƒd™k�spt‚t t#ttƒƒdšk�sˆt‚t t#ttƒd ƒd›k�s¤t‚t t$tƒƒdœk�sºt‚t t%tƒƒd�k�sÐt‚t ttƒƒdŠk�sæt‚t ttƒƒdŒk�süt‚t t&ttƒƒdžk�st‚t t'tƒƒdŸk�s*t‚t t(tƒƒd k�s@t‚t t(tƒd ƒd¡k�sZt‚t t(ttƒƒd¢k�srt‚t t(ttƒd ƒd£k�sŽt‚t t)tƒƒd¤k�s¤t‚t t)tƒd ƒd¥k�s¾t‚t t*ttƒƒd¦k�sÖt‚t t*ttƒd ƒd§k�sòt‚t t+ttt,ƒƒd¨k�st‚t t+ttt,ƒd ƒd©k�s*t‚t t-tƒƒdªk�s@t‚t t-tƒd ƒd«k�sZt‚t t-ttƒƒd¬k�srt‚t t-ttƒd ƒd­k�sŽt‚t t.tƒƒd®k�s¤t‚t t.tƒd ƒd¯k�s¾t‚t t/ttƒƒd°k�sÖt‚t t/ttƒd ƒd±k�sòt‚t t0ttƒƒd²k�s
t‚t t0ttƒd ƒd³k�s&t‚t t0tƒƒd´k�s<t‚t t0tƒd ƒdµk�sVt‚t t1tttƒƒd¶k�spt‚t t1tttƒd ƒd·k�sŽt‚t t1ttƒƒd¸k�s¦t‚t t1ttƒd ƒd¹k�sÂt‚t t2tƒƒdºk�sØt‚t t2tƒd ƒd»k�sòt‚t t3ttƒƒd¼k�s
t‚t t3ttƒd ƒd½k�s&t‚t t4tƒd ƒd¾k�s@t‚t t5tƒd ƒd¿k�sZt‚t t6tƒd ƒdÀk�stt‚t t7tƒd ƒdÁk�sŽt‚t t7tƒƒdÂk�s¤t‚t t8t,t	t9tƒƒdÃk�sÀt‚t t8t,t	t9tƒd ƒdÄk�sàt‚t t:t,t	tƒƒdÅk�sút‚t t:t,t	tƒd ƒdÆk�st‚t t;t,tƒƒdÇk�s0t‚t t;t,tƒd ƒdÈk�sLt‚t t<t,tƒƒdÉk�sdt‚t t<t,tƒd ƒdÊk�s€t‚t t=t,tƒƒdËk�s˜t‚t t=t,tƒd ƒdÌk�s´t‚t t>t,t	tƒƒdÍk�sÎt‚t t>t,t	tƒd ƒdÎk�sìt‚t t?t,tƒƒdÏk�st‚t t?t,tƒd ƒdÐk�s t‚t t@t,t	tƒƒdÑk�s:t‚t t@t,t	tƒd ƒdÒk�sXt‚t tAt,tƒƒdÓk�spt‚t tAt,tƒd ƒdÔk�sŒt‚tdÕdadÖ�}	td×dadÖ�}
t tBt,tC|	|
ƒƒdØk�sÀt‚t tBt,tC|	|
ƒd{ ƒdÙk�sàt‚t tDt,tC|	|
ƒƒdÚk�süt‚t tDt,tC|	|
ƒd{ ƒdÛk�st‚t tEd“ƒƒdÜk�s2t‚t tEd“ƒd{ ƒdÝk�sLt‚t tFt,ƒƒdÞk�sbt‚t tFt,ƒd ƒdßk�s|t‚t tGt,ƒƒdàk�s’t‚t tGt,ƒd ƒdák�s¬t‚t tHtƒƒdâk�sÂt‚t tHtƒd ƒdãk�sÜt‚t tHttƒƒdäk�sôt‚t tHttƒd ƒdåk�st‚t tItƒƒdæk�s&t‚t tItƒd ƒdçk�s@t‚t tIttƒƒdèk�sXt‚t tIttƒd ƒdék�stt‚t tJt,ƒƒdêk�sŠt‚t tJt,ƒd ƒdëk�s¤t‚t tKt,ƒƒdìk�sºt‚t tKt,ƒd ƒdík�sÔt‚t tLt,ƒƒdîk�sêt‚t tLt,dïƒƒdðk�st‚t tLt,tƒƒdñk�st‚t tLt,ƒtLt,ƒ ƒdòk�s8t‚t tMtLt,ƒdƒƒdòk�sTt‚t tLt,ƒt ƒdók�snt‚t tLt,tƒtN ƒdôk�sŠt‚t tOtdõƒƒdök�s¢t‚t tOtd dõƒƒd÷k�s¾t‚t tOdõtd ƒƒdøk�sÚt‚t tOdt dõƒƒdùk�söt‚t tOdõdt ƒƒdúk�st‚t tOtdõƒd ƒdûk�s.t‚t dtOtdõƒ ƒdük�sJt‚t tOdõdt ƒt, ƒdýk�sjt‚tdþƒ}t |tƒƒdÿk�sˆt‚t |ƒ�d k�sœt‚d S (  Nze^{x}r   r  z	e + e^{2}r  zf{\left(x \right)}Úgzg{\left(x,y \right)}Úhzh{\left(x,y,z \right)}ÚLiz\operatorname{Li}z"\operatorname{Li}{\left(x \right)}rT   z\beta{\left(x,y,z \right)}z!\operatorname{B}\left(x, y\right)Fr   z!\operatorname{B}\left(x, x\right)z%\operatorname{B}^{2}\left(x, y\right)z\beta{\left(x \right)}ú\betara   z\gamma{\left(x,y,z \right)}z\gamma{\left(x \right)}ú\gammaÚa_1za_{1}za_{1}{\left(x \right)}Úabz\operatorname{ab}Zab1z\operatorname{ab}_{1}Zab12z\operatorname{ab}_{12}Zab_1Zab_12Zab_cz\operatorname{ab}_{c}Zab_cdz\operatorname{ab}_{cd}rý   z"\operatorname{ab}{\left(x \right)}z&\operatorname{ab}_{1}{\left(x \right)}z'\operatorname{ab}_{12}{\left(x \right)}z&\operatorname{ab}_{c}{\left(x \right)}z'\operatorname{ab}_{cd}{\left(x \right)}z%\operatorname{ab}^{2}{\left( \right)}z)\operatorname{ab}_{1}^{2}{\left( \right)}z*\operatorname{ab}_{12}^{2}{\left( \right)}z&\operatorname{ab}^{2}{\left(x \right)}z*\operatorname{ab}_{1}^{2}{\left(x \right)}z+\operatorname{ab}_{12}^{2}{\left(x \right)}r*  Za1Za12za_{12}Za_12za{\left( \right)}za_{1}{\left( \right)}za_{12}{\left( \right)}za^{2}{\left( \right)}za_{1}^{2}{\left( \right)}za_{12}^{2}{\left( \right)}za^{2}{\left(x \right)}za_{1}^{2}{\left(x \right)}za_{12}^{2}{\left(x \right)}é    za^{32}{\left( \right)}za_{1}^{32}{\left( \right)}za_{12}^{32}{\left( \right)}za^{32}{\left(x \right)}za_{1}^{32}{\left(x \right)}za_{12}^{32}{\left(x \right)}za^{a}{\left( \right)}za_{1}^{a}{\left( \right)}za_{12}^{a}{\left( \right)}za^{a}{\left(x \right)}za_{1}^{a}{\left(x \right)}za_{12}^{a}{\left(x \right)}za^{ab}{\left( \right)}za_{1}^{ab}{\left( \right)}za_{12}^{ab}{\left( \right)}za^{ab}{\left(x \right)}za_{1}^{ab}{\left(x \right)}za_{12}^{ab}{\left(x \right)}za^12za^{12}{\left(x \right)}z)\left(a^{12}\right)^{ab}{\left(x \right)}Za__12Za_1__1_2za^{1}_{1 2}{\left(x \right)}rA  rB  z\omega_{1}{\left(x \right)}z\sin{\left(x \right)}T)Úfold_func_bracketsz\sin {x}z\sin {2 x^{2}}z\sin {x^{2}}z(\operatorname{asin}^{2}{\left(x \right)}Úfull)Úinv_trig_stylez\arcsin^{2}{\left(x \right)}Úpowerz\sin^{-1}{\left(x \right)}^{2})rX  rV  z\sin^{-1} {x^{2}}z&\operatorname{arccsc}{\left(x \right)}z&\operatorname{arsinh}{\left(x \right)}zk!z\left(- k\right)!zk!^{2}z!kz!\left(- k\right)z\left(!k\right)^{2}zk!!z\left(- k\right)!!zk!!^{2}z{\binom{2}{k}}z{\binom{2}{k}}^{2}r  z{\left(3\right)}_{k}z{3}^{\left(k\right)}z\left\lfloor{x}\right\rfloorz\left\lceil{x}\right\rceilz#\operatorname{frac}{\left(x\right)}z \left\lfloor{x}\right\rfloor^{2}z\left\lceil{x}\right\rceil^{2}z'\operatorname{frac}{\left(x\right)}^{2}z\min\left(2, x, x^{3}\right)z\min\left(x, y\right)^{2}z\max\left(2, x, x^{3}\right)z\max\left(x, y\right)^{2}ú\left|{x}\right|z\left|{x}\right|^{2}ú!\operatorname{re}{\left(x\right)}zE\operatorname{re}{\left(x\right)} + \operatorname{re}{\left(y\right)}ú!\operatorname{im}{\left(x\right)}z\overline{x}z\overline{x}^{2}z\Gamma\left(x\right)Úwz\Gamma\left(w\right)zO\left(x\right)r   z$O\left(x; x\rightarrow \infty\right)z#O\left(x - y; x\rightarrow y\right)zGO\left(x; \left( x, \  y\right)\rightarrow \left( 0, \  0\right)\right)zQO\left(x; \left( x, \  y\right)\rightarrow \left( \infty, \  \infty\right)\right)z\gamma\left(x, y\right)z\gamma^{2}\left(x, y\right)z\Gamma\left(x, y\right)z\Gamma^{2}\left(x, y\right)z\cot{\left(x \right)}z\coth{\left(x \right)}zx^{\frac{1}{y}}z\arg{\left(x \right)}z\zeta\left(x\right)z\zeta^{2}\left(x\right)z\zeta\left(x, y\right)z\zeta^{2}\left(x, y\right)z\eta\left(x\right)z\eta^{2}\left(x\right)z#\operatorname{Li}_{x}\left(y\right)z'\operatorname{Li}_{x}^{2}\left(y\right)z\Phi\left(x, y, n\right)z\Phi^{2}\left(x, y, n\right)z
\gamma_{x}z\gamma_{x}^{2}z\gamma_{x}\left(y\right)z\gamma_{x}\left(y\right)^{2}zK\left(z\right)zK^{2}\left(z\right)zF\left(x\middle| y\right)zF^{2}\left(x\middle| y\right)zE\left(x\middle| y\right)zE^{2}\left(x\middle| y\right)zE\left(z\right)zE^{2}\left(z\right)z\Pi\left(x; y\middle| z\right)z"\Pi^{2}\left(x; y\middle| z\right)z\Pi\left(x\middle| y\right)z\Pi^{2}\left(x\middle| y\right)z"\operatorname{Ei}{\left(x \right)}z&\operatorname{Ei}^{2}{\left(x \right)}z"\operatorname{E}_{x}\left(y\right)z&\operatorname{E}_{x}^{2}\left(y\right)z'\operatorname{Shi}^{2}{\left(x \right)}z&\operatorname{Si}^{2}{\left(x \right)}z&\operatorname{Ci}^{2}{\left(x \right)}z$\operatorname{Chi}^{2}\left(x\right)z \operatorname{Chi}\left(x\right)z&P_{n}^{\left(a,b\right)}\left(x\right)z7\left(P_{n}^{\left(a,b\right)}\left(x\right)\right)^{2}z$C_{n}^{\left(a\right)}\left(x\right)z5\left(C_{n}^{\left(a\right)}\left(x\right)\right)^{2}úT_{n}\left(x\right)z$\left(T_{n}\left(x\right)\right)^{2}zU_{n}\left(x\right)z$\left(U_{n}\left(x\right)\right)^{2}zP_{n}\left(x\right)z$\left(P_{n}\left(x\right)\right)^{2}z$P_{n}^{\left(a\right)}\left(x\right)z5\left(P_{n}^{\left(a\right)}\left(x\right)\right)^{2}zL_{n}\left(x\right)z$\left(L_{n}\left(x\right)\right)^{2}z$L_{n}^{\left(a\right)}\left(x\right)z5\left(L_{n}^{\left(a\right)}\left(x\right)\right)^{2}zH_{n}\left(x\right)z$\left(H_{n}\left(x\right)\right)^{2}Útheta©ÚrealÚphiz!Y_{n}^{m}\left(\theta,\phi\right)z2\left(Y_{n}^{m}\left(\theta,\phi\right)\right)^{3}z!Z_{n}^{m}\left(\theta,\phi\right)z2\left(Z_{n}^{m}\left(\theta,\phi\right)\right)^{3}z+\operatorname{polar\_lift}{\left(0 \right)}z/\operatorname{polar\_lift}^{3}{\left(0 \right)}z\phi\left(n\right)z#\left(\phi\left(n\right)\right)^{2}z\lambda\left(n\right)z&\left(\lambda\left(n\right)\right)^{2}z\sigma\left(x\right)z\sigma^{2}\left(x\right)z\sigma_y\left(x\right)z\sigma^{2}_y\left(x\right)z\sigma^*\left(x\right)z\sigma^*^{2}\left(x\right)z\sigma^*_y\left(x\right)z\sigma^*^{2}_y\left(x\right)z\nu\left(n\right)z"\left(\nu\left(n\right)\right)^{2}z\Omega\left(n\right)z%\left(\Omega\left(n\right)\right)^{2}zW\left(n\right)r
  zW_{-1}\left(n\right)zW_{k}\left(n\right)zW^{2}\left(n\right)zW^{k}\left(n\right)zW^{p}_{k}\left(n\right)r  z	x \bmod 7z\left(x + 1\right) \bmod 7z7 \bmod \left(x + 1\right)z2 x \bmod 7z7 \bmod 2 xz\left(x \bmod 7\right) + 1z2 \left(x \bmod 7\right)z\left(7 \bmod 2 x\right)^{n}Úfjlkdz%\operatorname{fjlkd}{\left(x \right)}z\operatorname{fjlkd})Prà   rB   rý   rþ   r   r!  r#  rT   r#   r*  rR   rO   rN   rD   r)   r&  r+   r*   r(   r&   r'   rG   rF   rH   rJ   rI   r;   r@   r>   r=   ra   r$   r¯   r   ré   rb   rQ   rE   rK   r<   r{   rw   ry   rx   r+  rz   rY   rX   rW   rZ   r]   r`   r^   r_   r\   r[   ro   Úbrm   rk   rl   rq   rj   rp   ri   rn   rs   Úmrt   r?   r9   r:   r4   r5   r7   r8   rA   r   r  r   )r  rN  rO  rP  ZmybetarS  rT  rA  r]  r_  rb  rc  rî   rî   rï   Útest_latex_functions²  sœ   """"ÿ
""""""""""""""""""""ÿ
ÿ
ÿ
ÿ
ÿþ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ

ÿ
ÿ
ÿ
ÿ
 rf  c                  C   s8   G dd„ dt ƒ} t| ƒdks t‚t| tƒƒdks4t‚d S )Nc                   @   s   e Zd ZdS )z6test_function_subclass_different_name.<locals>.mygammaNrê   rî   rî   rî   rï   Úmygamma"  s   rg  z\operatorname{mygamma}z'\operatorname{mygamma}{\left(x \right)})ra   rà   rþ   rý   )rg  rî   rî   rï   Ú%test_function_subclass_different_name!  s    rh  c               
   C   s¦   ddl m} m} ttttt| ƒtdƒdtdddt ƒ|ƒƒdksDt‚tttƒ tdƒdtƒ |ƒƒd	ksht‚tt| dfd
|ƒƒdks„t‚tttƒ tdƒ|ƒƒdks¢t‚d S )Nr   ©rý   r#  r   )r   r   r  r  zt{G_{4, 5}^{2, 3}\left(\begin{matrix} \pi, \pi, x & 1 \\0, 1 & 1, 2, \frac{3}{\pi} \end{matrix} \middle| {z} \right)})r   zS{G_{1, 1}^{1, 0}\left(\begin{matrix}  & 1 \\0 &  \end{matrix} \middle| {z} \right)})r  zL{{}_{2}F_{1}\left(\begin{matrix} 2, x \\ 3 \end{matrix}\middle| {z} \right)}zH{{}_{0}F_{1}\left(\begin{matrix}  \\ 1 \end{matrix}\middle| {z} \right)})	Ú	sympy.abcrý   r#  rà   rd   r   r   rþ   rc   ri  rî   rî   rï   Útest_hyper_printing(  s"      ÿþÿÿÿrk  c                  C   s0  ddl m} m}m}m}m}m}m}m}m	}m
}	 ddlm}
 t| t|
d ƒt ƒdksZt‚t|t|
ƒƒdkspt‚t|t|
ƒƒdks†t‚t|t|
ƒƒdksœt‚t|t|
d ƒd ƒd	ksºt‚t|t|
ƒƒd
ksÐt‚t|t|
ƒƒdksæt‚t|t|
ƒƒdksüt‚t|t|
ƒƒdk�st‚t|	t|
ƒƒdk�s,t‚d S )Nr   )
ÚbesseljÚbesselyÚbesseliÚbesselkÚhankel1Úhankel2ÚjnÚynÚhn1Úhn2©r#  r  zJ^{k}_{n}\left(z^{2}\right)zY_{n}\left(z\right)zI_{n}\left(z\right)zK_{n}\left(z\right)z.\left(H^{(1)}_{n}\left(z^{2}\right)\right)^{2}zH^{(2)}_{n}\left(z\right)zj_{n}\left(z\right)zy_{n}\left(z\right)zh^{(1)}_{n}\left(z\right)zh^{(2)}_{n}\left(z\right))Zsympy.functions.special.besselrl  rm  rn  ro  rp  rq  rr  rs  rt  ru  rj  r#  rà   r+  r&  rþ   )rl  rm  rn  ro  rp  rq  rr  rs  rt  ru  r#  rî   rî   rï   Útest_latex_bessel9  s    0ÿrw  c                  C   sx   ddl m} m} ddlm} t| |ƒƒdks0t‚t||ƒƒdksDt‚t| |ƒd ƒdks\t‚t||ƒd ƒdkstt‚d S )	Nr   )ÚfresnelsÚfresnelcrv  zS\left(z\right)zC\left(z\right)r  zS^{2}\left(z\right)zC^{2}\left(z\right))Ú'sympy.functions.special.error_functionsrx  ry  rj  r#  rà   rþ   )rx  ry  r#  rî   rî   rï   Útest_latex_fresnelK  s    r{  c                   C   s   t dt ƒdkst‚d S )Nr
  z\left(-1\right)^{x}©rà   rý   rþ   rî   rî   rî   rï   Útest_latex_bracketsT  s    r}  c                  C   sd  t dddd�} tt dddd�ƒ}t| t| ƒ ƒ}t|d t|d ƒ ƒ}|dksTt‚|dks`t‚d	}ttd
t dƒƒƒdks~t‚ttdtdƒƒƒdks˜t‚ttdtdt dƒƒƒƒd| d ksÀt‚ttdtdt dƒd ƒƒƒd| d ksìt‚ttdtdt dƒt dƒfƒƒƒd| d k�st‚ttdƒƒdk�s4t‚ttdƒƒdk�sJt‚ttdƒƒdk�s`t‚d S )NZPsi_0TF)Úcomplexra  ÚPsir   z\Psi_{0} \overline{\Psi_{0}}z \overline{{\Psi}_{0}} {\Psi}_{0}z\mathrel{..}\nobreak Úx1r7  z{x_{1}}_{i}Úx2z{x_{2}}_{i}Zx3ÚNz{x_{3}}_{{i}_{0zN - 1}}r   zN}}Zx4r*  rd  z{x_{4}}_{{i}_{azb}}ra   rR  za bZa_bza_{b})r#   rÓ   rà   r=   rþ   rÒ   rÑ   )Z
Psi_symbolZPsi_indexedZsymbol_latexZindexed_latexÚintervalrî   rî   rï   Útest_latex_indexedX  s    (,2r„  c               	   C   s’  t ttd tdd�ƒdkst‚t tttƒtd  tdd�ƒdksDt‚t ttttƒtd  tdd�dd�ƒdksrt‚t tttttƒtd  tdd�dd�dd�ƒdks¨t‚t tttt ƒtdd�ƒd	ksÊt‚t tttt ƒtd  tdd�ƒd
ksôt‚t ttttt ƒtd  tdd�tdd�ƒdk�s*t‚t tttttt ƒtd  tdd�tdd�tdd�ƒdk�sjt‚tdƒ} t tt| ttƒtdd�tdd�ƒdt | ttƒƒ k�s¬t‚t ttt| ttƒtdd�tdd�tdd�ƒdt | ttƒƒ k�sðt‚t tttd tdd� tdd�ƒdk�st‚t ttttttdd�tdd� tdd�tdd�ƒdk�sXt‚t tttt t ƒtdt	fƒtdd�ƒdk�sŠt‚t tttdd�d ƒdk�sªt‚t t| tƒtƒd ƒdk�sÊt‚t t| tƒtt
fƒƒdk�sêt‚tdƒ}tdƒ}t t| ||ƒ|ƒƒdk�st‚tdƒ}t t| tƒt|fƒƒdk�s@t‚tdƒ}t t| tƒtt||ƒfƒƒdk�snt‚t t| tƒtƒdd�d k�sŽt‚d S )!Nr  Fr   z\frac{d}{d x} x^{3}r  z8\frac{d}{d x} \left(x^{2} + \sin{\left(x \right)}\right)z@\frac{d^{2}}{d x^{2}} \left(x^{2} + \sin{\left(x \right)}\right)z@\frac{d^{3}}{d x^{3}} \left(x^{2} + \sin{\left(x \right)}\right)z3\frac{\partial}{\partial x} \sin{\left(x y \right)}zH\frac{\partial}{\partial x} \left(x^{2} + \sin{\left(x y \right)}\right)zP\frac{\partial^{2}}{\partial x^{2}} \left(x^{2} + \sin{\left(x y \right)}\right)zP\frac{\partial^{3}}{\partial x^{3}} \left(x^{2} + \sin{\left(x y \right)}\right)r  z*\frac{\partial^{2}}{\partial y\partial x} z.\frac{\partial^{3}}{\partial y\partial x^{2}} z0\frac{d}{d x} \left(- \frac{d}{d x} y^{2}\right)z<\frac{d^{2}}{d x^{2}} \left(- \frac{d^{2}}{d x^{2}} y\right)r   z5\frac{d}{d y} \int\limits_{0}^{\infty} e^{- x y}\, dxz \left(\frac{d}{d x} x\right)^{2}z1\left(\frac{d}{d x} f{\left(x \right)}\right)^{2}z(\frac{d^{n}}{d x^{n}} f{\left(x \right)}r€  r�  z<\frac{\partial}{\partial x_{1}} f{\left(x_{1},x_{2} \right)}Ún1z0\frac{d^{n_{1}}}{d x^{n_{1}}} f{\left(x \right)}Ún2z`\frac{d^{\max\left(n_{1}, n_{2}\right)}}{d x^{\max\left(n_{1}, n_{2}\right)}} f{\left(x \right)}Úrd©Zdiff_operatorz2\frac{\mathrm{d}}{\mathrm{d} x} f{\left(x \right)})rà   r   rý   rþ   rR   r!  r   r|   rB   r   r+  r#   rI   )r  r€  r�  r…  r†  rî   rî   rï   Útest_latex_derivativesm  sr    ÿÿ$þ,ÿÿ ÿ*ÿ
4ÿ
 ÿ
*ÿ
,0ÿ
&ÿ
ÿ
ÿ
ÿ
 ÿ
r‰  c                   C   s$   t ttt ttfdƒƒdks t‚d S )N©r   r  z+\left. x y \right|_{\substack{ x=1\\ y=2 }})rà   r   rý   r!  rþ   rî   rî   rî   rï   Útest_latex_subs­  s    r‹  c                	   C   s¢  t tttƒtƒƒdkst‚t ttd tddfƒƒdks:t‚t ttd tddfƒƒdksZt‚t tttd  tddftƒƒd	ks€t‚t tttd  tddftƒd
d�dksªt‚t tttd  tddftƒd
dd�dksÖt‚t tttdfƒƒdksðt‚t ttt ttƒƒdk�st‚t ttt t tttƒƒdk�s2t‚t ttt t t ttttƒƒdk�s\t‚t ttttttttƒƒdk�s~t‚t tttttddfƒƒdk�s t‚t tttd tƒ tƒƒdk�sÄt‚t tttttƒ tƒ tƒƒdk�sìt‚t tttƒd ƒdk�st‚t ttt tƒƒdk�s$t‚t tttd  tƒƒdk�sDt‚t ttt tƒƒdk�s`t‚t tttƒdd�dk�s|t‚t tttddfƒdd�dk�sžt‚d S ) Nz\int \log{\left(x \right)}\, dxr  r   r   z\int\limits_{0}^{1} x^{2}\, dxé
   é   z \int\limits_{10}^{20} x^{2}\, dxz)\int\int\limits_{0}^{1} x^{2} y\, dx\, dyú	equation*©ÚmodezI\begin{equation*}\int\int\limits_{0}^{1} x^{2} y\, dx\, dy\end{equation*}T©r�  r  z&$$\int\int_{0}^{1} x^{2} y\, dx\, dy$$z\int\limits^{0} x\, dxz\iint x y\, dx\, dyz\iiint x y z\, dx\, dy\, dzz#\iiiint t x y z\, dx\, dy\, dz\, dtz8\int\int\int\int\int\int x\, dx\, dx\, dx\, dx\, dx\, dxz,\int\limits_{0}^{1}\int\int x\, dx\, dy\, dzz(\int \left(- \int y^{2}\, dx\right)\, dxz=\int \left(- \int \left(- \int y\, dx\right)\, dx\right)\, dxz\left(\int z\, dz\right)^{2}z\int \left(x + z\right)\, dzz&\int \left(x + \frac{z}{2}\right)\, dzz\int x^{y}\, dzr‡  rˆ  z\int x\, \mathrm{d}xz#\int\limits_{0}^{1} x\, \mathrm{d}x)rà   r|   rC   rý   rþ   r!  r#  Útrî   rî   rî   rï   Útest_latex_integrals±  sT    ÿÿÿ ÿ"ÿ$ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
r“  c                  C   s¾   t tfD ]X} t| tt td gƒƒdks,t‚t| tddƒƒƒdksFt‚t| tddƒƒƒdkst‚qt} t| tt td gŽ ƒdks†t‚t| tddƒŽ ƒdks t‚t| tddƒŽ ƒdksºt‚d S )Nr  z\left\{x^{2}, x y\right\}r   r.  z\left\{1, 2, 3, 4, 5\right\}é   z4\left\{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12\right\})Ú	frozensetrE  rà   rý   r!  rþ   Úranger½   ©Úsrî   rî   rï   Útest_latex_setsÙ  s     ÿ
 ÿr™  c                  C   s&   t ddƒ} t| ƒ}t|ƒdks"t‚d S )Nr   r  z%SetExpr\left(\left[1, 3\right]\right))r¾   rÄ   rà   rþ   )ZivÚserî   rî   rï   Útest_latex_SetExprç  s    
r›  c                  C   sþ  t tddƒƒdkst‚t tddƒƒdks,t‚t tdddƒƒdksDt‚t tdd	dƒƒd
ks\t‚t td	ddƒƒdkstt‚t tdtdƒƒdksŒt‚t ttddƒƒdks¤t‚t tdt dƒƒdks¾t‚t tt tƒƒdksÖt‚t ttt dƒƒdksðt‚tdƒ\} }}t t| ||ƒƒdk�st‚t t| ddƒƒdk�s2t‚t td|dƒƒdk�sLt‚t tdd|ƒƒdk�sft‚tddd�}tdddd�}tdddd �}t t||d ƒƒd!k�sªt‚t tt |dƒƒd"k�sÆt‚t t|tƒƒd#k�sÞt‚t t| | d ƒƒd$k�sút‚d S )%Nr   é3   z\left\{1, 2, \ldots, 50\right\}r  z\left\{1, 2, 3\right\}r   r  z\left\{0, 1, 2\right\}é   z\left\{0, 1, \ldots, 29\right\}r
  z \left\{30, 29, \ldots, 2\right\}r  z\left\{0, 2, \ldots\right\}r  z\left\{\ldots, 2, 0\right\}z\left\{-2, -3, \ldots\right\}z'\left\{\ldots, -1, 0, 1, \ldots\right\}z'\left\{\ldots, 1, 0, -1, \ldots\right\}za:cz \text{Range}\left(a, b, c\right)rŒ  z\text{Range}\left(a, 10\right)z\text{Range}\left(b\right)z!\text{Range}\left(0, 10, c\right)r7  Trñ   r+  )Únegativerò   r  )r   rò   z\left\{i, i + 1, i + 2\right\}z#\left\{\ldots, n - 4, n - 2\right\}z\left\{p, p + 1, \ldots\right\}z!\text{Range}\left(a, a + 3\right))rà   r¸   rþ   r   r%   r#   )r*  rd  Úcr7  r+  r  rî   rî   rï   Útest_latex_Rangeí  s,    r   c            
      C   sØ  t td dtfƒ} tdƒ}d}t| ƒ|ks.t‚d}t|ƒ|ksBt‚t td dƒ}tddƒ}d}t|ƒ|ksnt‚d}t|ƒ|ks‚t‚t td t dfƒ}tdt dfƒ}d	}t|ƒ|ksºt‚d
}t|ƒ|ksÎt‚d}tt| |ƒƒ|ksèt‚d}tt||ƒƒ|k�st‚d}tt||ƒƒ|k�s t‚d}tt| |ƒƒ|k�s<t‚d}tt||ƒƒ|k�sXt‚d}tt||ƒƒ|k�stt‚t td tdtfƒ}d}t|ƒ|k�sžt‚t	dƒ}t |td  tddfƒ}	d}t|	ƒ|k�sÔt‚d S )Nr  r   rŠ  z\left[0, 1, 4, 9, \ldots\right]z\left[1, 2, 1, 2, \ldots\right])r   r  z\left[0, 1, 4\right]z\left[1, 2, 1\right]z\left[\ldots, 9, 4, 1, 0\right]z\left[\ldots, 2, 1, 2, 1\right]z \left[1, 3, 5, 11, \ldots\right]z\left[1, 3, 5\right]z \left[\ldots, 11, 5, 3, 1\right]z \left[0, 2, 4, 18, \ldots\right]z\left[0, 2, 4\right]z \left[\ldots, 18, 4, 2, 0\right]z\left\{a^{2}\right\}_{a=0}^{x}rd  z\left[0, b, 4 b\right])
r±   r*  r   r³   rà   rþ   r°   r²   rý   r#   )
Ús1Ús2Ú	latex_strZs3Zs4Zs5Zs6Zs7rd  Zs8rî   rî   rï   Útest_latex_sequences  sJ    
r¤  c                  C   s&   d} t tttt tfƒƒ| ks"t‚d S )Nz`2 \sin{\left(x \right)} - \sin{\left(2 x \right)} + \frac{2 \sin{\left(3 x \right)}}{3} + \ldots)rà   r­   rý   r   rþ   ©r£  rî   rî   rï   Útest_latex_FourierSeriesE  s    ÿr¦  c                  C   s$   d} t ttdt ƒƒƒ| ks t‚d S )Nz;\sum_{k=1}^{\infty} - \frac{\left(-1\right)^{- k} x^{k}}{k}r   )rà   r¬   rC   rý   rþ   r¥  rî   rî   rï   Útest_latex_FormalPowerSeriesK  s    r§  c                  C   s¤   t ddd�} ttddƒƒdks"t‚ttd| ƒƒdks8t‚ttd| ddƒƒdksRt‚ttd| ddƒƒdkslt‚ttd| ddƒƒd	ks†t‚ttd| ddƒƒd
ks t‚d S )Nr*  Tr`  r   z\left\{0\right\}z\left[0, a\right]Fz\left(0, a\right]z\left[0, a\right)z\left(0, a\right))r#   rà   r¾   rþ   ©r*  rî   rî   rï   Útest_latex_intervalsP  s    r©  c                  C   sZ   t ddd�} ttddƒƒdks"t‚ttd| ƒƒdks8t‚tt| d | d ƒƒd	ksVt‚d S )
Nr*  Tr`  r   r   z\left\langle 0, 1\right\ranglez\left\langle 0, a\right\rangler  z&\left\langle a + 1, a + 2\right\rangle)r#   rà   r   rþ   r¨  rî   rî   rï   Útest_latex_AccumuBoundsZ  s    ÿrª  c                   C   s   t tjƒdkst‚d S )Nú	\emptyset)rà   r"   ÚEmptySetrþ   rî   rî   rî   rï   Útest_latex_emptysetb  s    r­  c                   C   s   t tjƒdkst‚d S )Nz
\mathbb{U})rà   r"   ÚUniversalSetrþ   rî   rî   rî   rï   Útest_latex_universalsetf  s    r¯  c                  C   s2   t dƒ} t dƒ}t|| ƒ}t| ¡ ƒdks.t‚d S )Nr6  ÚBz- (A B - B A))r�   rœ   rà   Údoitrþ   )r6  r°  Zcommrî   rî   rï   Útest_latex_commutatorj  s    
r²  c                   C   sP   t ttddƒtddƒƒƒdks"t‚t ttddƒtddƒtddƒƒƒdksLt‚d S )Nr   r   r  r  z(\left[0, 1\right] \cup \left[2, 3\right]r  z*\left\{1, 2\right\} \cup \left[3, 4\right])rà   r¿   r¾   rþ   rî   rî   rî   rï   Útest_latex_unionq  s    ÿ ÿr³  c                   C   s&   t ttddƒtttƒƒƒdks"t‚d S )Nr   r   z(\left[0, 1\right] \cap \left[x, y\right])rà   rÀ   r¾   rý   r!  rþ   rî   rî   rî   rï   Útest_latex_intersectionx  s    ÿr´  c                   C   s*   t ttddƒtddƒdd�ƒdks&t‚d S )Nr  r  r  r  Fr   z-\left[2, 5\right] \triangle \left[4, 7\right])rà   rÂ   r¾   rþ   rî   rî   rî   rï   Útest_latex_symmetric_difference}  s
    ÿþrµ  c                   C   s   t ttjtjƒƒdkst‚d S )Nz\mathbb{R} \setminus \mathbb{N})rà   rÁ   r"   ÚRealsÚNaturalsrþ   rî   rî   rî   rï   Útest_latex_Complementƒ  s    ÿr¸  c                  C   sŽ   t ddƒ} t ddƒ}tdddƒ}t| d ƒdt| ƒ ks<t‚t| d ƒdt| ƒ ksXt‚t| | |  ¡ ƒdt| ƒt|ƒt|ƒf ksŠt‚d S )	Nr   r   rŒ  r  r  z%s^{2}z%s^{10}z%s \times %s \times %s)r¾   r½   rà   rþ   Úflatten)ÚlineZbiglineÚfsetrî   rî   rï   Útest_latex_productsetˆ  s    

  ÿr¼  c                  C   s$   t dddƒ} tt| ƒƒdks t‚d S )Nr   r  r  z.\mathcal{P}\left(\left\{1, 2, 3\right\}\right))r½   rà   r¼   rþ   )r»  rî   rî   rï   Útest_latex_powerset’  s    r½  c                  C   sr   t ƒ } t| ƒdkst‚tddƒ}t|ƒdks0t‚tt|tddƒƒƒdksLt‚tttddƒtddƒƒƒdksnt‚d S )Nú\omegar  r  z3 \omega^{2}r   z3 \omega^{2} + \omegaz\omega^{2} + 2 \omega)rº   rà   rþ   r»   r¹   )r]  Úwprî   rî   rï   Útest_latex_ordinals—  s    
rÀ  c                  C   s`  t dƒ\} }}}t| ƒ}t|ƒ}t|ƒ}t|ƒ}t||dd�}t||dd�}	t||dd�}
t||dd�}t||dd�}t||dd�}t||dd�}t||dd�}t||ƒ}t||ƒ}tt||	dd�ƒdksÎt‚tt||	dd�ƒdksèt‚tt||dd�ƒdk�st‚tt||dd�ƒdk�s t‚tt||dd�ƒdk�s<t‚tt||dd�ƒd	k�sXt‚tt|
|dd�ƒd
k�stt‚tt||dd�ƒdk�s�t‚tt||dd�ƒdk�s¬t‚tt||dd�ƒdk�sÈt‚tt||dd�ƒdk�sät‚tt||	dd�ƒdk�s t‚tt|
|dd�ƒdk�st‚tt||dd�ƒdk�s8t‚tt||dd�ƒdk�sTt‚tt||dd�ƒdk�spt‚tt||	dd�ƒdk�sŒt‚tt|
|dd�ƒdk�s¨t‚tt||dd�ƒdk�sÄt‚tt||dd�ƒdk�sàt‚tt||ƒ 	¡ ƒdk�süt‚tt||	ƒƒdk�st‚tt|
|ƒƒdk�s,t‚tt||ƒƒdk�sDt‚tt||ƒƒdk�s\t‚d S )Nza:dFr   zI\left\{a\right\} \cap \left(\left\{c\right\} \cup \left\{d\right\}\right)zl\left(\left\{a\right\} \cup \left\{b\right\}\right) \cap \left(\left\{c\right\} \cup \left\{d\right\}\right)zv\left(\left\{a\right\} \setminus \left\{b\right\}\right) \cap \left(\left\{c\right\} \setminus \left\{d\right\}\right)zv\left(\left\{a\right\} \triangle \left\{b\right\}\right) \cap \left(\left\{c\right\} \triangle \left\{d\right\}\right)zp\left(\left\{a\right\} \times \left\{b\right\}\right) \cap \left(\left\{c\right\} \times \left\{d\right\}\right)zI\left\{a\right\} \cup \left(\left\{c\right\} \cap \left\{d\right\}\right)zl\left(\left\{a\right\} \cap \left\{b\right\}\right) \cup \left(\left\{c\right\} \cap \left\{d\right\}\right)zv\left(\left\{a\right\} \setminus \left\{b\right\}\right) \cup \left(\left\{c\right\} \setminus \left\{d\right\}\right)zv\left(\left\{a\right\} \triangle \left\{b\right\}\right) \cup \left(\left\{c\right\} \triangle \left\{d\right\}\right)zp\left(\left\{a\right\} \times \left\{b\right\}\right) \cup \left(\left\{c\right\} \times \left\{d\right\}\right)zS\left\{a\right\} \setminus \left(\left\{c\right\} \setminus \left\{d\right\}\right)zq\left(\left\{a\right\} \cup \left\{b\right\}\right) \setminus \left(\left\{c\right\} \cup \left\{d\right\}\right)zq\left(\left\{a\right\} \cap \left\{b\right\}\right) \setminus \left(\left\{c\right\} \cap \left\{d\right\}\right)z{\left(\left\{a\right\} \triangle \left\{b\right\}\right) \setminus \left(\left\{c\right\} \triangle \left\{d\right\}\right)zu\left(\left\{a\right\} \times \left\{b\right\}\right) \setminus \left(\left\{c\right\} \times \left\{d\right\}\right)zS\left\{a\right\} \triangle \left(\left\{c\right\} \triangle \left\{d\right\}\right)zq\left(\left\{a\right\} \cup \left\{b\right\}\right) \triangle \left(\left\{c\right\} \cup \left\{d\right\}\right)zq\left(\left\{a\right\} \cap \left\{b\right\}\right) \triangle \left(\left\{c\right\} \cap \left\{d\right\}\right)z{\left(\left\{a\right\} \setminus \left\{b\right\}\right) \triangle \left(\left\{c\right\} \setminus \left\{d\right\}\right)zu\left(\left\{a\right\} \times \left\{b\right\}\right) \triangle \left(\left\{c\right\} \times \left\{d\right\}\right)z@\left\{a\right\} \times \left\{c\right\} \times \left\{d\right\}zn\left(\left\{a\right\} \cup \left\{b\right\}\right) \times \left(\left\{c\right\} \cup \left\{d\right\}\right)zn\left(\left\{a\right\} \cap \left\{b\right\}\right) \times \left(\left\{c\right\} \cap \left\{d\right\}\right)zx\left(\left\{a\right\} \setminus \left\{b\right\}\right) \times \left(\left\{c\right\} \setminus \left\{d\right\}\right)zx\left(\left\{a\right\} \triangle \left\{b\right\}\right) \times \left(\left\{c\right\} \triangle \left\{d\right\}\right))
r%   r½   r¿   rÀ   rÁ   rÂ   rÃ   rà   rþ   r¹  )r*  rd  rŸ  Údr6  r°  ÚCÚDZU1ZU2ZI1ZI2ZC1ZC2ZD1ZD2ZP1ZP2rî   rî   rï   Útest_set_operators_parenthesis   s´    

ÿÿÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿrÄ  c                   C   s   t tjƒdkst‚d S )Nú
\mathbb{C})rà   r"   Ú	Complexesrþ   rî   rî   rî   rï   Útest_latex_Complexes  s    rÇ  c                   C   s   t tjƒdkst‚d S )Nú
\mathbb{N})rà   r"   r·  rþ   rî   rî   rî   rï   Útest_latex_Naturals  s    rÉ  c                   C   s   t tjƒdkst‚d S )Nú\mathbb{N}_0)rà   r"   Ú	Naturals0rþ   rî   rî   rî   rï   Útest_latex_Naturals0  s    rÌ  c                   C   s   t tjƒdkst‚d S )Nú
\mathbb{Z})rà   r"   ÚIntegersrþ   rî   rî   rî   rï   Útest_latex_Integers#  s    rÏ  c                  C   s¤   t dƒ} ttt| | d ƒtjƒƒdks*t‚t dƒ}tt| |f| | ƒdddhddhƒ}t|ƒdksft‚tt| |ff| | ƒtdddhddhƒƒ}t|ƒd	ks t‚d S )
Nrý   r  z2\left\{x^{2}\; \middle|\; x \in \mathbb{N}\right\}r!  r   r  r  zY\left\{x + y\; \middle|\; x \in \left\{1, 2, 3\right\}, y \in \left\{3, 4\right\}\right\}zm\left\{x + y\; \middle|\; \left( x, \  y\right) \in \left\{1, 2, 3\right\} \times \left\{3, 4\right\}\right\})r#   rà   r·   r   r"   r·  rþ   rÃ   )rý   r!  Zimgsetrî   rî   rï   Útest_latex_ImageSet'  s    ÿ$ÿ*ÿrÐ  c                  C   sT   t dƒ} tt| t| d dƒtjƒƒdks,t‚tt| t| d dƒtjƒƒdksPt‚d S )Nrý   r  r   z@\left\{x\; \middle|\; x \in \mathbb{R} \wedge x^{2} = 1 \right\}z(\left\{x\; \middle|\; x^{2} = 1 \right\})r#   rà   r´   r    r"   r¶  rþ   r®  ©rý   rî   rî   rï   Útest_latex_ConditionSet6  s    ÿÿrÒ  c                   C   sT   t ttddƒtddƒ ƒƒdks$t‚t ttddƒtddt ƒ d	d
�ƒdksPt‚d S )Nr  r  r  r.  zX\left\{x + y i\; \middle|\; x, y \in \left[3, 5\right] \times \left[4, 6\right] \right\}r   r   r  T)Zpolarz¢\left\{r \left(i \sin{\left(\theta \right)} + \cos{\left(\theta \right)}\right)\; \middle|\; r, \theta \in \left[0, 1\right] \times \left[0, 2 \pi\right) \right\})rà   r¶   r¾   rþ   r   rî   rî   rî   rï   Útest_latex_ComplexRegion>  s    ÿ"ÿrÓ  c                  C   s$   t dƒ} tt| tjƒƒdks t‚d S )Nrý   zx \in \mathbb{N})r#   rà   rµ   r"   r·  rþ   rÑ  rî   rî   rï   Útest_latex_ContainsF  s    rÔ  c                   C   sœ   t tttd  tddftddfƒƒdks,t‚t ttd tddfƒƒdksLt‚t ttd t tddfƒƒdkspt‚t ttd t tddfƒd ƒdks˜t‚d S )	Nr  r  r  r  z<\sum_{\substack{-2 \leq x \leq 2\\-5 \leq y \leq 5}} x y^{2}z\sum_{x=-2}^{2} x^{2}z&\sum_{x=-2}^{2} \left(x^{2} + y\right)z7\left(\sum_{x=-2}^{2} \left(x^{2} + y\right)\right)^{2})rà   r   rý   r!  rþ   rî   rî   rî   rï   Útest_latex_sumK  s    "ÿÿÿÿrÕ  c                   C   s”   t tttd  tddftddfƒƒdks,t‚t ttd tddfƒƒdksLt‚t ttd t tddfƒƒdkspt‚t tttddfƒd ƒdks�t‚d S )	Nr  r  r  r  z=\prod_{\substack{-2 \leq x \leq 2\\-5 \leq y \leq 5}} x y^{2}z\prod_{x=-2}^{2} x^{2}z'\prod_{x=-2}^{2} \left(x^{2} + y\right)z#\left(\prod_{x=-2}^{2} x\right)^{2})rà   r
   rý   r!  rþ   rî   rî   rî   rï   Útest_latex_productV  s    "ÿÿÿÿrÖ  c                  C   sž   t ttttƒƒdkst‚tdƒ} t t| tƒtdƒƒdks<t‚t t| tƒtddƒƒdksZt‚t t| tƒtdƒd ƒdkszt‚t t| tƒtdd	d
�ƒdksšt‚d S )Nz\lim_{x \to \infty} xr  r   z#\lim_{x \to 0^+} f{\left(x \right)}ú-z#\lim_{x \to 0^-} f{\left(x \right)}r  z4\left(\lim_{x \to 0^+} f{\left(x \right)}\right)^{2}z+-)Údirz!\lim_{x \to 0} f{\left(x \right)})rà   r®   rý   r   rþ   r   )r  rî   rî   rï   Útest_latex_limitsb  s    ÿÿÿrÙ  c                   C   s¤   t ttƒƒdkst‚t ttƒdd�dks,t‚t ttƒttƒ ƒdksHt‚t ttƒttƒ dd�dksht‚t tttƒtƒƒdks‚t‚t tttƒtƒdd�dks t‚d S )	Nz\log{\left(x \right)}T)Zln_notationz\ln{\left(x \right)}z-\log{\left(x \right)} + \log{\left(y \right)}z+\ln{\left(x \right)} + \ln{\left(y \right)}z\log{\left(x \right)}^{x}z\ln{\left(x \right)}^{x})rà   rC   rý   rþ   r!  Úpowrî   rî   rî   rï   Útest_latex_logs  s    ÿÿÿrÛ  c                  C   sD   t dƒ} | t }t|ƒdks t‚t dƒ} | t }t|ƒdks@t‚d S )NrQ  )z	\beta + xz	x + \betarT   )r#   rý   rà   rþ   )rT   r!  rî   rî   rï   Útest_issue_3568  s    rÜ  c                   C   s€   t dt tddƒ ƒdkst‚t dt tddƒ dd�dks@t‚t dt tddƒ ddd	�d
ksdt‚t dt tgƒdks|t‚d S )Nr  r  z8 \sqrt{2} \tau^{\frac{7}{2}}rŽ  r�  z<\begin{equation*}8 \sqrt{2} \mu^{\frac{7}{2}}\end{equation*}ÚequationTr‘  z $$8 \sqrt{2} \mu^{\frac{7}{2}}$$z\left[ \frac{2}{x}, \  y\right])rà   rè   r   rþ   rç   rý   r!  rî   rî   rî   rï   Ú
test_latex‰  s    ÿÿrÞ  c                  C   sL   t dƒdtd dtdtd di} t| ƒdks0t‚t| ƒ}t|ƒdksHt‚d S )Nr   r  r  r  z;\left\{ 1 : 1, \  x : 3, \  x^{2} : 2, \  x^{3} : 4\right\})r   rý   rà   rþ   r   )rÁ  rÃ  rî   rî   rï   Útest_latex_dict’  s     ÿÿrß  c                  C   s*   t dƒt dƒt dƒg} t| ƒdks&t‚d S )NrA  r*  r  z)\left[ \omega_{1}, \  a, \  \alpha\right]©r#   rà   rþ   )Zllrî   rî   rï   Útest_latex_list›  s    rá  c                   C   sp   t tjƒdkst‚t tjƒdks$t‚t tjƒdks6t‚t tjƒdksHt‚t tjƒdksZt‚t tjƒdkslt‚d S )NÚGrR  Úeú\phiú\piz\text{TribonacciConstant})	rà   r"   ZCatalanrþ   Z
EulerGammaZExp1ZGoldenRatioÚPiZTribonacciConstantrî   rî   rî   rï   Útest_latex_NumberSymbols   s    rç  c                   C   s¦   t tddƒ ƒdkst‚t tddƒƒdks.t‚t tddƒƒdksDt‚t tddƒ ƒdks\t‚t tddƒ t ƒdksxt‚t tddƒ t tddƒt  ƒd	ks¢t‚d S )
Nr   r  z- \frac{1}{2}r
  r  z\frac{1}{2}z- \frac{x}{2}r  z- \frac{x}{2} - \frac{2 y}{3})rà   r   rþ   rý   r!  rî   rî   rî   rï   Útest_latex_rational©  s     ÿrè  c                   C   s0   t dt ƒdkst‚t dtt  ƒdks,t‚d S )Nr   r  z\frac{1}{x + y})rà   rý   rþ   r!  rî   rî   rî   rï   Útest_latex_inverse´  s    ré  c                   C   sv   t ttƒƒdkst‚t ttƒd ƒdks,t‚t ttdƒƒdksBt‚t ttdƒƒdksXt‚t ttdƒd ƒdksrt‚d S )Nz\delta\left(x\right)r  z%\left(\delta\left(x\right)\right)^{2}r   r  z)\delta^{\left( 5 \right)}\left( x \right)z:\left(\delta^{\left( 5 \right)}\left( x \right)\right)^{2})rà   rU   rý   rþ   rî   rî   rî   rï   Útest_latex_DiracDeltaº  s    ÿÿrê  c                   C   s0   t ttƒƒdkst‚t ttƒd ƒdks,t‚d S )Nz\theta\left(x\right)r  z%\left(\theta\left(x\right)\right)^{2})rà   rV   rý   rþ   rî   rî   rî   rï   Útest_latex_HeavisideÄ  s    rë  c                   C   sn   t tttƒƒdkst‚t tttd ƒƒdks0t‚t ttd tƒƒdksJt‚t ttttƒddd�ƒdksjt‚d S )	Nz\delta_{x y}r   z\delta_{x, y + 1}z\delta_{y, x + 1}r  Fr   z\left(\delta_{x y}\right)^{2})rà   ru   rý   r!  rþ   r   rî   rî   rî   rï   Útest_latex_KroneckerDeltaÉ  s    ÿrì  c                   C   sŒ   t ttttƒƒdkst‚t ttttƒd ƒdks4t‚t ttttd ƒƒdksPt‚t tttd tƒƒdkslt‚t ttd ttƒƒdksˆt‚d S )Nz\varepsilon_{x y z}r  z$\left(\varepsilon_{x y z}\right)^{2}r   z\varepsilon_{x, y, z + 1}z\varepsilon_{x, y + 1, z}z\varepsilon_{x + 1, y, z})rà   rv   rý   r!  r#  rþ   rî   rî   rî   rï   Útest_latex_LeviCivitaÒ  s    ÿrí  c                      s~   t t ‰ tˆ ƒdkst‚tˆ dd�dks,t‚tˆ dd�dks@t‚tˆ dd�dksTt‚tˆ dd�d	ksht‚tt‡ fd
d„ƒ d S )Nzx + yÚplainr�  Úinlinez$x + y$rŽ  z%\begin{equation*}x + y\end{equation*}rÝ  z#\begin{equation}x + y\end{equation}c                      s   t ˆ dd�S )Nrü   r�  ©rà   rî   ©Úexprrî   rï   Ú<lambda>ä  ó    ztest_mode.<locals>.<lambda>)rý   r!  rà   rþ   rÝ   Ú
ValueErrorrî   rî   rñ  rï   Ú	test_modeÛ  s"     ÿÿ ÿÿrö  c                   C   sÔ   t ttttƒƒdkst‚t ttttƒƒdks0t‚t ttttƒd ƒdksLt‚t ttttƒd ƒdksht‚t ttttƒƒdks€t‚t ttttƒƒdks˜t‚t ttttƒd ƒdks´t‚t ttttƒd ƒd	ksÐt‚d S )
NzC\left(x, y, z\right)zS\left(x, y, z\right)r  zC\left(x, y, z\right)^{2}zS\left(x, y, z\right)^{2}zC^{\prime}\left(x, y, z\right)zS^{\prime}\left(x, y, z\right)z"C^{\prime}\left(x, y, z\right)^{2}z"S^{\prime}\left(x, y, z\right)^{2})	rà   re   rý   r!  r#  rþ   rg   rf   rh   rî   rî   rî   rï   Útest_latex_mathieuç  s    r÷  c                  C   s  t ttdk ftd dfƒ} t| ƒdks*t‚t| dd�dks>t‚t ttdk fdtdkfƒ} t| ƒdksht‚td	d
d�\}}t |d t||ƒf|| dfƒ} d}t| ƒ|ks¬t‚t||  ƒd| ksÄt‚t| | ƒd| ksÜt‚tt ttdk ftd tdk fƒƒdk�st‚d S )Nr   r  TzK\begin{cases} x & \text{for}\: x < 1 \\x^{2} & \text{otherwise} \end{cases}r  zM\begin{cases} x & \text{for}\: x \lt 1 \\x^{2} & \text{otherwise} \end{cases}r   zG\begin{cases} x & \text{for}\: x < 0 \\0 & \text{otherwise} \end{cases}úA BF©ZcommutativezM\begin{cases} A^{2} & \text{for}\: A = B \\A B & \text{otherwise} \end{cases}zA \left(%s\right)z\left(%s\right) AzM\begin{cases} x & \text{for}\: x < 1 \\x^{2} & \text{for}\: x < 2 \end{cases})rM   rý   rà   rþ   r%   r    )r  r6  r°  r˜  rî   rî   rï   Útest_latex_Piecewiseñ  s     
ÿ  ÿrú  c                  C   s¢   t dt tgttd ggƒ} t| ƒdks,t‚t| dd�dks@t‚t| dd�dksTt‚t| d	d�d
ksht‚t| d d	d�dks~t‚t ddtdƒƒ}t|ƒdksžt‚d S )Nr   z;\left[\begin{matrix}x + 1 & y\\y & x - 1\end{matrix}\right]rï  r�  zG$\left[\begin{smallmatrix}x + 1 & y\\y & x - 1\end{smallmatrix}\right]$Úarray)Úmat_strz=\left[\begin{array}{cc}x + 1 & y\\y & x - 1\end{array}\right]Zbmatrixz=\left[\begin{bmatrix}x + 1 & y\\y & x - 1\end{bmatrix}\right])Z	mat_delimrü  z0\begin{bmatrix}x + 1 & y\\y & x - 1\end{bmatrix}r	  ú\\left[\begin{array}{ccccccccccc}0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\end{array}\right])r�   rý   r!  rà   rþ   r–  )ÚMÚM2rî   rî   rï   Útest_latex_Matrix  s(    ÿ
ÿ
ÿ
ÿÿÿr   c                  C   sl   t dƒ} t dtd�}tt|| ƒƒt|| ƒƒgt|| ƒ | ¡ƒt|| ƒ | ¡ƒggƒ}d}t|ƒ|ksht‚d S )Nr’  Útheta1©Úclsa  \left[\begin{matrix}\sin{\left(\theta_{1}{\left(t \right)} \right)} & \cos{\left(\theta_{1}{\left(t \right)} \right)}\\\cos{\left(\frac{d}{d t} \theta_{1}{\left(t \right)} \right)} & \sin{\left(\frac{d}{d t} \theta_{1}{\left(t \right)} \right)}\end{matrix}\right])r%   r   r�   rR   rP   r   rà   rþ   )r’  r  rþ  Úexpectedrî   rî   rï   Ú test_latex_matrix_with_functions  s    "ÿr  c                  C   s,  t dƒ\} }}}ttttfD �]}|| ƒ}t|ƒdks:t‚|d|  |g||ggƒ}|d|  ||gƒ}t||ƒ}t||ƒ}t|ƒdksˆt‚t|ƒdks˜t‚t|ƒdks¨t‚t|ƒdks¸t‚|| |d| ggƒ}	|| g|gd| ggƒ}
||
 ¡ gƒ}t|	ƒdk�st‚t|
ƒd	k�st‚t|ƒd
kst‚qd S )Nzx y z wrý   r   z=\left[\begin{matrix}\frac{1}{x} & y\\z & w\end{matrix}\right]z:\left[\begin{matrix}\frac{1}{x} & y & z\end{matrix}\right]a  \left[\begin{matrix}\left[\begin{matrix}\frac{1}{x^{2}} & \frac{y}{x}\\\frac{z}{x} & \frac{w}{x}\end{matrix}\right] & \left[\begin{matrix}\frac{y}{x} & y^{2}\\y z & w y\end{matrix}\right] & \left[\begin{matrix}\frac{z}{x} & y z\\z^{2} & w z\end{matrix}\right]\end{matrix}\right]a]  \left[\begin{matrix}\left[\begin{matrix}\frac{1}{x^{2}} & \frac{y}{x}\\\frac{z}{x} & \frac{w}{x}\end{matrix}\right] & \left[\begin{matrix}\frac{y}{x} & y^{2}\\y z & w y\end{matrix}\right]\\\left[\begin{matrix}\frac{z}{x} & y z\\z^{2} & w z\end{matrix}\right] & \left[\begin{matrix}\frac{w}{x} & w y\\w z & w^{2}\end{matrix}\right]\end{matrix}\right]zG\left[\left[\begin{matrix}x & y & \frac{1}{z}\end{matrix}\right]\right]z8\left[\begin{matrix}x\\y\\\frac{1}{z}\end{matrix}\right]z_\left[\begin{matrix}\left[\begin{matrix}x\\y\\\frac{1}{z}\end{matrix}\right]\end{matrix}\right])	r%   rÊ   rË   rÍ   rÌ   rà   rþ   rÎ   Útolist)rý   r!  r#  r]  Ú	ArrayTyperþ  ZM1rÿ  ZM3ZMrowZMcolumnZMcol2rî   rî   rï   Útest_latex_NDimArray,  sF     ÿ


ÿÿÿÿÿ
ÿ
ÿr  c                   C   s    t ddt  dd�dkst‚t ddt  dd�dks8t‚t ddt  dd�dksTt‚t dt dd�d	kslt‚t dt dd�d
ks„t‚t dt dd�dksœt‚d S )Nr  r  r  z4 \times 4^{x}r  z4 \cdot 4^{x}Zldotz4 \,.\, 4^{x}z
4 \times xz	4 \cdot xz	4 \,.\, xr|  rî   rî   rî   rï   Útest_latex_mul_symbolZ  s    r	  c                  C   s8   ddt dƒ  } t| ƒdks t‚td|  ƒdks4t‚d S )Nr  r  z!4 \cdot 4^{\log{\left(2 \right)}}r   z+\frac{1}{4 \cdot 4^{\log{\left(2 \right)}}})rC   rà   rþ   )r!  rî   rî   rï   Útest_latex_issue_4381d  s    r
  c                   C   s¤  t tdƒƒdkst‚t tdƒƒdks(t‚t tdƒƒdks<t‚t tdƒƒdksPt‚t td	ƒƒd
ksdt‚t tdƒƒdksxt‚t tdƒƒdksŒt‚t tdƒƒdks t‚t tdƒƒdks´t‚t tdƒƒdksÈt‚t tdƒƒdksÜt‚t tdƒƒdksðt‚t tdƒƒdk�st‚t tdƒƒdk�st‚t tdƒƒdk�s2t‚t tdƒƒdk�sHt‚t tdƒƒdk�s^t‚t td ƒƒd!k�stt‚t td"ƒƒd#k�sŠt‚t td$ƒƒd#k�s t‚d S )%NZ	beta_13_2z\beta_{13 2}Zbeta_132_20z\beta_{132 20}Zbeta_13z
\beta_{13}Zx_a_bzx_{a b}Zx_1_2_3z	x_{1 2 3}Zx_a_b1zx_{a b1}Zx_a_1zx_{a 1}Zx_1_azx_{1 a}zx_1^aaz
x^{aa}_{1}Zx_1__aazx_11^az
x^{a}_{11}Zx_11__aZ	x_a_a_a_azx_{a a a a}z	x_a_a^a^azx^{a a}_{a a}Zx_a_a__a__aZalpha_11z\alpha_{11}Zalpha_11_11z\alpha_{11 11}Zalpha_alphaz\alpha_{\alpha}zalpha^alephz\alpha^{\aleph}Zalpha__aleph©rà   r#   rþ   rî   rî   rî   rï   Útest_latex_issue_4576j  s(    r  c                  C   sP   t dƒ} dtt|  ƒd ƒ dd¡ks*t‚dtd|   d ƒ dd¡ksLt‚d S )Nrý   ze^{-x}r  ú Ú z3^{-x}r  )r#   rà   rB   Úreplacerþ   rÑ  rî   rî   rï   Útest_latex_pow_fraction�  s    "r  c                  C   sj   t ddd�\} }}t| | |d  ƒdks.t‚t|d |  | ƒdksJt‚t| |d  | ƒdksft‚d S )NzA,B,CFrù  r
  z
A B C^{-1}z
C^{-1} A Bz
A C^{-1} BrK  ©r6  r°  rÂ  rî   rî   rï   Útest_noncommutativeŽ  s    r  c                  C   sl   t d t d t  td  dt  td   } t| dd�dks@t‚t| dd�dksTt‚t| d	d�d
ksht‚d S )Nr  r  r  Úlexr  z#x^{3} + x^{2} y + 3 x y^{3} + y^{4}zrev-lexz#y^{4} + 3 x y^{3} + x^{2} y + x^{3}Únonez#x^{3} + y^{4} + y x^{2} + 3 x y^{3})rý   r!  rà   rþ   rñ  rî   rî   rï   Útest_latex_order–  s    , ÿÿr  c                   C   sR   t tttd ƒƒdkst‚t tttftd ƒƒdks8t‚t tttƒƒdksNt‚d S )Nr   z\left( x \mapsto x + 1 \right)z2\left( \left( x, \  y\right) \mapsto x + 1 \right)z\left( x \mapsto x \right))rà   r   rý   rþ   r!  rî   rî   rî   rï   Útest_latex_LambdaŸ  s    r  c                  C   sÄ  t dtƒ\} }}t d| ƒ\}}}}t|| ƒdks6t‚t|d ƒdksJt‚t|d ƒdks^t‚t|d d| |  d |d  | | d ƒd	ks–t‚t|d d| |  d |d  | |d |  ƒd
ksÒt‚t|d d| |  d |d  | |d |  d ƒdk�st‚t|d  d| |  d |d  | |d |  d ƒdk�sXt‚t|d | d  | d| |  d ƒdk�sŒt‚t|d | d  | d| |  d ƒdk�sÀt‚d S )Núu,vzx,y,zÚ0r   úx - 1r  r  r  z2\left({u}^{2} + 3 u v + 1\right) {x}^{2} y + u + 1zA\left({u}^{2} + 3 u v + 1\right) {x}^{2} y + \left(u + 1\right) xzE\left({u}^{2} + 3 u v + 1\right) {x}^{2} y + \left(u + 1\right) x + 1zF-\left({u}^{2} - 3 u v + 1\right) {x}^{2} y - \left(u + 1\right) x - 1z+-\left({v}^{2} + v + 1\right) x + 3 u v + 1z+-\left({v}^{2} + v + 1\right) x - 3 u v + 1)r©   r¦   rà   rþ   )ZRuvÚuÚvZRxyzrý   r!  r#  rî   rî   rï   Útest_latex_PolyElement¤  s.    .ÿ2ÿ6ÿ
8ÿ
(ÿ
(ÿr  c                  C   sî  t dtƒ\} }}t d| ƒ\}}}}}t|| ƒdks8t‚t|d ƒdksLt‚t|d ƒdks`t‚t|d ƒdkstt‚t|| ƒd	ksˆt‚t|| | ƒd
ks t‚t|||  ƒdks¸t‚t|| ||  ƒdksÔt‚t|d | ƒdksìt‚t|d | ƒdk�st‚t| d | ƒdk�s"t‚t|d ||  ƒdk�s@t‚t| |d  ƒdk�s\t‚t|| |d  ƒdk�szt‚t|d | | d |d | d  ƒdk�s¬t‚t|d | | d |d | || |  d  ƒdk�sêt‚d S )Nr  zx,y,z,tr  r   r  r  r  z\frac{x}{3}z\frac{x}{z}z\frac{x y}{z}z\frac{x}{z t}z\frac{x y}{z t}z\frac{x - 1}{y}z\frac{x + 1}{y}z\frac{-x - 1}{y}z\frac{x + 1}{y z}z\frac{-y}{x + 1}z\frac{y z}{x + 1}z;\frac{\left(u + 1\right) x y + 1}{\left(v - 1\right) z - 1}zC\frac{\left(u + 1\right) x y + 1}{\left(v - 1\right) z - u v t - 1})r§   r¦   rà   rþ   )ZFuvr  r  ZFxyztrý   r!  r#  r’  rî   rî   rï   Útest_latex_FracElement»  s,    &ÿ
2ÿr  c                   C   s\   t ttd dt  tƒƒdks"t‚t ttt tƒƒdks<t‚t tdt t ƒƒdksXt‚d S )Nr  zE\operatorname{Poly}{\left( x^{2} + 2 x, x, domain=\mathbb{Z} \right)}zU\operatorname{Poly}{\left( \frac{1}{y} x, x, domain=\mathbb{Z}\left(y\right) \right)}g       @zJ\operatorname{Poly}{\left( 2.0 x + 1.0 y, x, y, domain=\mathbb{R} \right)})rà   r¨   rý   rþ   r!  rî   rî   rî   rï   Útest_latex_PolyÖ  s    ÿÿÿr  c                   C   s¬   t ttdtdtdgtƒƒdks"t‚t ttdtt ddgtƒƒdksFt‚t tttd  td t  tt  ttd   tt td   t tt  t ttfƒƒdks¨t‚d S )Nr   r  r  z{\operatorname{Poly}{\left( a x^{5} + x^{4} + b x^{3} + 2 x^{2} + c x + 3, x, domain=\mathbb{Z}\left[a, b, c\right] \right)}z‚\operatorname{Poly}{\left( a x^{4} + x^{3} + \left(b + c\right) x^{2} + 2 x + 3, x, domain=\mathbb{Z}\left[a, b, c\right] \right)}zŒ\operatorname{Poly}{\left( a x^{3} + x^{2}y -  b xy^{2} - xy -  a x -  c y^{3} + y + b, x, y, domain=\mathbb{Z}\left[a, b, c\right] \right)})rà   r¨   r*  rd  rŸ  rý   rþ   r!  rî   rî   rî   rï   Útest_latex_Poly_orderß  s    ÿÿNÿþr  c                   C   s&   t ttd t d dƒƒdks"t‚d S )Nr  r  r   z6\operatorname{CRootOf} {\left(x^{5} + x + 3, 0\right)})rà   r«   rý   rþ   rî   rî   rî   rï   Útest_latex_ComplexRootOfì  s    ÿr   c                   C   s&   t ttd t d tƒƒdks"t‚d S )Nr  r  zc\operatorname{RootSum} {\left(x^{5} + x + 3, \left( x \mapsto \sin{\left(x \right)} \right)\right)})rà   rª   rý   rR   rþ   rî   rî   rî   rï   Útest_latex_RootSumñ  s    ÿr!  c                   C   s   t tdd„ ƒ d S )Nc                   S   s   t tt dd�S )NÚgarbage)Úmethod)rà   rý   r!  rî   rî   rî   rï   ró  ÷  rô  ztest_settings.<locals>.<lambda>)rÝ   Ú	TypeErrorrî   rî   rî   rï   Útest_settingsö  s    r%  c                   C   s²  t ttƒƒdkst‚t ttƒd ƒdks,t‚t ttƒƒdks@t‚t tttƒƒdksVt‚t ttƒd ƒdksnt‚t tttƒd ƒdksˆt‚t ttƒƒdksœt‚t tttƒƒd	ks²t‚t ttƒd ƒd
ksÊt‚t tttƒd ƒdksät‚t ttƒƒdksøt‚t tttƒƒdk�st‚t ttttt	fƒƒdk�s.t‚t ttƒd ƒdk�sHt‚t tttƒd ƒdk�sdt‚t ttttt	fƒd ƒdk�s†t‚t t
tƒƒdk�sœt‚t t
ttƒƒdk�s´t‚t t
tƒd ƒdk�sÎt‚t t
ttƒd ƒdk�sêt‚t ttƒƒdk�s t‚t ttƒd ƒdk�st‚t ttƒƒdk�s0t‚t tttƒƒdk�sHt‚t ttƒd ƒdk�sbt‚t tttƒd ƒdk�s~t‚t ttƒƒdk�s”t‚t ttƒd ƒdk�s®t‚d S )NzC_{n}r  z	C_{n}^{2}zB_{n}zB_{n}\left(x\right)z	B_{n}^{2}zB_{n}^{2}\left(x\right)zG_{n}zG_{n}\left(x\right)z	G_{n}^{2}zG_{n}^{2}\left(x\right)zB_{n, m}\left(x, y\right)zB_{n, m}^{2}\left(x, y\right)zF_{n}zF_{n}\left(x\right)z	F_{n}^{2}zF_{n}^{2}\left(x\right)zL_{n}z	L_{n}^{2}zT_{n}r^  z	T_{n}^{2}zT_{n}^{2}\left(x\right)z\mu\left(n\right)z\mu^{2}\left(n\right))rà   r.   r+  rþ   r,   rý   r0   r-   re  r!  r2   r1   r3   r6   rî   rî   rî   rï   Útest_latex_numbersú  s8    "r&  c                   C   sH   t ttƒƒdkst‚t tttƒƒdks*t‚t tttƒd ƒdksDt‚d S )NzE_{n}zE_{n}\left(x\right)r  zE_{n}^{2}\left(x\right))rà   r/   r+  rþ   rý   rî   rî   rî   rï   Útest_latex_euler  s    r'  c                   C   s,   t tdƒƒdkst‚t tdƒƒdks(t‚d S )NZlamdaú\lambdaZLamdaú\Lambdar  rî   rî   rî   rï   Ú
test_lamda  s    r*  c                  C   s”   t dƒ} t dƒ}t| ƒdks t‚t| | did�dks8t‚t| | | did�dksTt‚t| d | did�dkspt‚t| | | d|did�d	ks�t‚d S )
Nrý   r!  r  r  zx_i + yr  zx_i^{2}Zy_jz	x_i + y_jrà  ©rý   r!  rî   rî   rï   Útest_custom_symbol_names$  s    r,  c                  C   sþ   t dddƒ} t dddƒ}tdƒ}t dddƒ}t| d|  ƒdksDt‚t| d|  ƒd	ks\t‚t|d|   ƒd
kstt‚t|d|   ƒdksŒt‚t|| | |j ||j   ƒdks¶t‚ttt||ƒt||ƒƒƒdksØt‚ttt||ƒt||ƒƒƒdksút‚d S )NrÂ  r  r°  r+  rO  r   r  )z	- 2 B + CzC -2 B)z2 B + CzC + 2 B)zB - 2 Cz	- 2 C + B)zB + 2 Cz2 C + Bz5n h - \left(- h + h^{T}\right) \left(h + h^{T}\right)z'\left(h + h\right) + \left(h + h\right)z!\left(h h\right) \left(h h\right))r‘   r%   rà   rþ   ÚTr   r   )rÂ  r°  r+  rO  rî   rî   rï   Útest_matAdd.  s    *"r.  c                  C   sê   t dddƒ} t dddƒ}tdƒ}td|  ƒdks4t‚td| |  ƒdksLt‚td|  ƒd	ks`t‚td
|  ƒdkstt‚ttdƒ|  ƒdksŒt‚ttdƒ |  ƒdks¦t‚tdtdƒ | |  ƒdksÆt‚td|  | d|   ƒdksæt‚d S )Nr6  r  r°  rý   r  z2 Az2 x Ar  z- 2 Ar  z1.5 Az
\sqrt{2} Az- \sqrt{2} Az2 \sqrt{2} x A)z- 2 A \left(A + 2 B\right)z- 2 A \left(2 B + A\right))r‘   r#   rà   rþ   rL   )r6  r°  rý   rî   rî   rï   Útest_matMul?  s     r/  c            	      C   s˜  t ddd�} tdƒ\}}}}}td| | ƒ}tdddƒ}tdddƒ}tt|d	d	ƒƒd
ksZt‚t|||d …||d …f ƒdks‚t‚t|||d d…||d d…f ƒdks®t‚t|d |…|d …f ƒdksÎt‚t|d |…|d …f ƒdksît‚t||d …d |…f ƒdk�st‚t|||…||…f ƒdk�s2t‚t||||…|||…f ƒdk�sXt‚t||d |…|d |…f ƒdk�s~t‚t|d ||…d ||…f ƒdk�s¤t‚t|d d |…d d |…f ƒdk�sÊt‚tt|ddƒƒd
k�sät‚tt|d | d fd | d fƒƒd
k�s
t‚tt|d| d fd| d fƒƒd
k�s0t‚tt|d| dfd| dfƒƒdk�sVt‚t|ddd…ddd…f ƒdk�s|t‚t|ddd…ddd…f ƒdk�s¢t‚t|ddd… ƒd k�s¾t‚t|d d…dd!d…f ƒd"k�sât‚t|d d…ddd…f ƒd#k�st‚t|dd dd…f ƒd$k�s&t‚t|dd…dd…f ƒd%k�sHt‚t|ddd…ddd…f ƒd&k�snt‚t|| dd …dd …f ƒd'k�s”t‚d S )(Nr+  Trñ   z	x y z w tÚXÚYrŒ  ÚZ)NNNzX\left[:, :\right]r   zX\left[x:x + 1, y:y + 1\right]r  z"X\left[x:x + 1:2, y:y + 1:2\right]zX\left[:x, y:\right]zX\left[x:, :y\right]zX\left[x:y, z:w\right]zX\left[x:y:t, w:t:x\right]zX\left[x::y, t::w\right]zX\left[:x:y, :t:w\right]zX\left[::x, ::y\right])r   NNr   zX\left[::2, ::2\right]r  r  r  r.  zX\left[1:2:3, 4:5:6\right]é   zX\left[1:3:5, 4:6:8\right]zX\left[1:10:2, :\right]é	   zY\left[:5, 1:9:2\right]zY\left[:5, 1::2\right]zY\left[5:6, :5:2\right]zX\left[:1, :1\right]zX\left[:1:2, :1:2\right]z%\left(Y + Z\right)\left[2:, 2:\right])r#   r%   r‘   rà   r“   rþ   )	r+  rý   r!  r#  r]  r’  r0  r1  r2  rî   rî   rï   Útest_latex_MatrixSliceN  s:    (,  ""&&&&&&&&&$$ "&r5  c            
      C   sÂ   ddl m} m}m}m}m} ddlm} | dddƒ}t||dkƒƒdksLt	‚|ddƒ}t||d	kƒƒd
ksnt	‚|ddƒ}|ddƒ}	t|t
||	ƒƒjƒdksžt	‚t|ttƒtddƒƒƒdks¾t	‚d S )Nr   )rÅ   ÚDieÚExponentialÚpspaceÚwhere)ÚRandomDomainr€  r   z.\text{Domain: }0 < x_{1} \wedge x_{1} < \inftyZd1r.  r  z'\text{Domain: }d_{1} = 5 \vee d_{1} = 6r*  rd  zK\text{Domain: }0 \leq a \wedge 0 \leq b \wedge a < \infty \wedge b < \inftyr  z7\text{Domain: }\left\{x\right\} \in \left\{1, 2\right\})Zsympy.statsrÅ   r6  r7  r8  r9  Zsympy.stats.rvr:  rà   rþ   r   Údomainr½   rý   )
rÅ   r6  r7  r8  r9  r:  r0  rÃ  r6  r°  rî   rî   rï   Útest_latex_RandomDomaino  s     


ÿþÿr<  c                  C   st   ddl m}  |  tt¡}| ttf }t| ttt  ¡ƒtttt  ƒksNt‚t| tt ¡ƒttt ƒkspt‚d S )Nr   ©ÚQQ)Úsympy.polys.domainsr>  Z
frac_fieldrý   r!  rà   Úconvertrþ   )r>  ÚFrû   rî   rî   rï   Útest_PrettyPoly‚  s
    *rB  c                  C   sT  t dƒ} t dƒ}tdƒ}t dƒ}t dƒ}tt|| ƒ| |ƒƒdksDt‚tt||ƒ|| ||ƒƒdksdt‚tt|| ƒ| |ƒƒdks€t‚tt||ƒ|| ||fƒƒd	ks¢t‚tt|| ƒ| |ƒƒd
ks¾t‚tt	||ƒ|| ƒƒdksÚt‚tt
|| ƒ| |ƒƒdksöt‚tt||ƒ|| ƒƒdk�st‚tt|| ƒ| |ƒƒdk�s2t‚tt||ƒ|| ƒƒdk�sPt‚d S )Nrý   r&  r  r*  rd  z<\mathcal{M}_{x}\left[f{\left(x \right)}\right]\left(k\right)zA\mathcal{M}^{-1}_{k}\left[f{\left(k \right)}\right]\left(x\right)z<\mathcal{L}_{x}\left[f{\left(x \right)}\right]\left(k\right)zA\mathcal{L}^{-1}_{k}\left[f{\left(k \right)}\right]\left(x\right)z<\mathcal{F}_{x}\left[f{\left(x \right)}\right]\left(k\right)zA\mathcal{F}^{-1}_{k}\left[f{\left(k \right)}\right]\left(x\right)z>\mathcal{COS}_{x}\left[f{\left(x \right)}\right]\left(k\right)zC\mathcal{COS}^{-1}_{k}\left[f{\left(k \right)}\right]\left(x\right)z>\mathcal{SIN}_{x}\left[f{\left(x \right)}\right]\left(k\right)zC\mathcal{SIN}^{-1}_{k}\left[f{\left(k \right)}\right]\left(x\right))r#   r   rà   r…   rþ   r‚   r„   r�   r~   r€   r}   r   r†   rƒ   )rý   r&  r  r*  rd  rî   rî   rï   Útest_integral_transforms‹  sF    ÿÿÿÿÿÿÿÿ
ÿ
ÿrC  c                  C   sD   ddl m}  t|  tt¡ƒdks$t‚t| jttdd�ƒdks@t‚d S )Nr   r=  z\mathbb{Q}\left[x, y\right]Zilexr  z#S_<^{-1}\mathbb{Q}\left[x, y\right])r?  r>  rà   Úold_poly_ringrý   r!  rþ   r=  rî   rî   rï   Útest_PolynomialRingBase¬  s
    ÿrE  c                  C   st  ddl m} m}m}m}m}m} | dƒ}| dƒ}| dƒ}|||dƒ}	|||dƒ}
||ƒ}|dƒ}t|ƒd	kspt‚t|	ƒd
ks€t‚t|ƒdks�t‚t|
|	 ƒdks¤t‚t|ƒdks´t‚|ƒ }t|ƒdksÊt‚||	d|
t	j
iƒ}t|ƒdksìt‚||	d|
t	j
i|
|	 diƒ}t|ƒdk�st‚| dƒ}| dƒ}| dƒ}|||dƒ}|||dƒ}|||gƒ}||ƒ}t|ƒdk�spt‚d S )Nr   )ÚObjectÚIdentityMorphismÚNamedMorphismÚCategoryÚDiagramÚDiagramGridÚA1ÚA2ÚA3Úf1Úf2ÚK1zA_{1}zf_{1}:A_{1}\rightarrow A_{2}zid:A_{1}\rightarrow A_{1}z'f_{2}\circ f_{1}:A_{1}\rightarrow A_{3}z\mathbf{K_{1}}r«  Úuniquea'  \left\{ f_{2}\circ f_{1}:A_{1}\rightarrow A_{3} : \emptyset, \  id:A_{1}\rightarrow A_{1} : \emptyset, \  id:A_{2}\rightarrow A_{2} : \emptyset, \  id:A_{3}\rightarrow A_{3} : \emptyset, \  f_{1}:A_{1}\rightarrow A_{2} : \left\{unique\right\}, \  f_{2}:A_{2}\rightarrow A_{3} : \emptyset\right\}a†  \left\{ f_{2}\circ f_{1}:A_{1}\rightarrow A_{3} : \emptyset, \  id:A_{1}\rightarrow A_{1} : \emptyset, \  id:A_{2}\rightarrow A_{2} : \emptyset, \  id:A_{3}\rightarrow A_{3} : \emptyset, \  f_{1}:A_{1}\rightarrow A_{2} : \left\{unique\right\}, \  f_{2}:A_{2}\rightarrow A_{3} : \emptyset\right\}\Longrightarrow \left\{ f_{2}\circ f_{1}:A_{1}\rightarrow A_{3} : \left\{unique\right\}\right\}r6  r°  rÂ  r  rN  z-\begin{array}{cc}
A & B \\
 & C 
\end{array}
)Zsympy.categoriesrF  rG  rH  rI  rJ  rK  rà   rþ   r"   r¬  )rF  rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  Zid_A1rQ  rÁ  r6  r°  rÂ  r  rN  Úgridrî   rî   rï   Útest_categories³  s6     
rT  c                  C   s  ddl m}  ddlm} |  tt¡}| d¡}| ttgdtd g¡}t	|ƒdksVt
‚t	|ƒdksft
‚| td t¡}t	|ƒdks†t
‚|| }t	|ƒd	ksžt
‚t	| dtd
 d gdtg¡ƒdksÆt
‚||  t¡ d¡|  t¡ d¡ddgƒ}t	|ƒdksþt
‚d S )Nr   r=  )Úhomomorphismr  r   z!{\mathbb{Q}\left[x, y\right]}^{2}zP\left\langle {\left[ {x},{y} \right]},{\left[ {1},{x^{2}} \right]} \right\ranglez&\left\langle {x^{2}},{y} \right\ranglezz\frac{{\mathbb{Q}\left[x, y\right]}^{2}}{\left\langle {\left[ {x},{y} \right]},{\left[ {1},{x^{2}} \right]} \right\rangle}r  a  \left\langle {{\left[ {1},{\frac{x^{3}}{2}} \right]} + {\left\langle {\left[ {x},{y} \right]},{\left[ {1},{x^{2}} \right]} \right\rangle}},{{\left[ {2},{y} \right]} + {\left\langle {\left[ {x},{y} \right]},{\left[ {1},{x^{2}} \right]} \right\rangle}} \right\ranglez}{\left[\begin{matrix}0 & 0\\0 & 0\end{matrix}\right]} : {{\mathbb{Q}\left[x\right]}^{2}} \to {{\mathbb{Q}\left[x\right]}^{2}})r?  r>  Zsympy.polys.agcarU  rD  rý   r!  Zfree_moduleÚ	submodulerà   rþ   Zideal)r>  rU  rû   rA  rþ  r   ÚQrO  rî   rî   rï   Útest_Modulesí  s2    
ÿÿÿ ÿÿrX  c                  C   sJ   ddl m}  |  t¡td d g }t|ƒdks4t‚t|jƒdksFt‚d S )Nr   r=  r  r   zG\frac{\mathbb{Q}\left[x\right]}{\left\langle {x^{2} + 1} \right\rangle}z.{1} + {\left\langle {x^{2} + 1} \right\rangle})r?  r>  rD  rý   rà   rþ   Úone)r>  rû   rî   rî   rï   Útest_QuotientRing  s    ÿrZ  c                  C   s0   t ddd�\} }t| | ƒ}t|ƒdks,t‚d S )Nrø  Frù  z!\operatorname{tr}\left(A B\right))r%   rž   rà   rþ   )r6  r°  r’  rî   rî   rï   Útest_Tr  s    r[  c                  C   s¼   ddl m} m}m}m}m} tdƒ}t| |ƒƒdks8t‚t| ||ƒƒƒdksPt‚t	dddƒ}t| |ƒƒdkspt‚t| || ƒƒd	ksˆt‚t| ||ddƒ|f||ddƒffƒƒƒd
ks¸t‚d S )Nr   )ÚDeterminantÚInverseÚBlockMatrixÚ	OneMatrixÚ
ZeroMatrix©rŠ  )r  r  z5\left|{\begin{matrix}1 & 2\\3 & 4\end{matrix}}\right|zG\left|{\left[\begin{matrix}1 & 2\\3 & 4\end{matrix}\right]^{-1}}\right|r0  r  z\left|{X}\right|zF\left|{\left[\begin{matrix}1 & 2\\3 & 4\end{matrix}\right] + X}\right|zg\left|{\begin{matrix}1 & X\\\left[\begin{matrix}1 & 2\\3 & 4\end{matrix}\right] & 0\end{matrix}}\right|)
Úsympy.matricesr\  r]  r^  r_  r`  r�   rà   rþ   r‘   )r\  r]  r^  r_  r`  re  r0  rî   rî   rï   Útest_Determinant  s     ÿÿÿþrc  c            
      C   s´  ddl m} m}m} tdddƒ}tdddƒ}t| |ƒƒdks@t‚t| || ƒƒdksXt‚t| |ƒ| |ƒ ƒdkstt‚t| || ƒƒd	ksŒt‚t| |ƒ| |ƒ ƒd
ks¨t‚t| |d ƒƒdksÀt‚t| |ƒd ƒdksØt‚t| ||ƒƒƒdksðt‚t|| |ƒƒƒdk�s
t‚t| ||ƒƒƒdk�s$t‚t|| |ƒƒƒdk�s>t‚t|| |ƒ| ƒƒdk�s\t‚tdƒ}t| |ƒƒdk�szt‚t| || ƒƒdk�s”t‚ddl m}m	}m
} t| ||ddƒ|f||ddƒffƒƒƒdk�sÚt‚tdddƒ}	t| |	ƒƒdk�süt‚t| |ƒdd�dk�st‚t| || ƒdd�dk�s4t‚t| |ƒ| |ƒ dd�dk�sVt‚t| |ƒ| |ƒ ƒd
k�stt‚t| |d ƒdd�dk�s’t‚t| |ƒd dd�d k�s°t‚d S )!Nr   )ÚAdjointr]  Ú	Transposer0  r  r1  zX^{\dagger}z\left(X + Y\right)^{\dagger}zX^{\dagger} + Y^{\dagger}z\left(X Y\right)^{\dagger}zY^{\dagger} X^{\dagger}z\left(X^{2}\right)^{\dagger}z\left(X^{\dagger}\right)^{2}z\left(X^{-1}\right)^{\dagger}z\left(X^{\dagger}\right)^{-1}z\left(X^{T}\right)^{\dagger}z\left(X^{\dagger}\right)^{T}z \left(X^{\dagger} + Y\right)^{T}ra  z=\left[\begin{matrix}1 & 2\\3 & 4\end{matrix}\right]^{\dagger}zN\left(\left[\begin{matrix}1 & 2\\3 & 4\end{matrix}\right] + X\right)^{\dagger}©r^  r_  r`  zo\left[\begin{matrix}1 & X\\\left[\begin{matrix}1 & 2\\3 & 4\end{matrix}\right] & 0\end{matrix}\right]^{\dagger}úM^xz\left(M^{x}\right)^{\dagger}Ústar)Zadjoint_stylezX^{\ast}Z	hermitianz\left(X + Y\right)^{\mathsf{H}}Údaggerz\left(X^{2}\right)^{\ast}z\left(X^{\mathsf{H}}\right)^{2})rb  rd  r]  re  r‘   rà   rþ   r�   r^  r_  r`  )
rd  r]  re  r0  r1  re  r^  r_  r`  ÚMxrî   rî   rï   Útest_Adjoint-  sD    ÿ
ÿþ
"rk  c            
      C   s`  ddl m} m}m} tdddƒ}tdddƒ}t| |ƒƒdks@t‚t| || ƒƒdksXt‚t| ||dƒƒƒdksrt‚t|| |ƒdƒƒd	ksŒt‚t| ||dƒƒƒd
ks¦t‚t|| |ƒdƒƒdksÀt‚tdƒ}t| |ƒƒdksÜt‚t| || ƒƒdksôt‚ddl m}m	}m
} t| ||ddƒ|f||ddƒffƒƒƒdk�s:t‚tdddƒ}	t| |	ƒƒdk�s\t‚d S )Nr   )re  ÚMatPowÚHadamardPowerr0  r  r1  zX^{T}z\left(X + Y\right)^{T}z\left(X^{\circ {2}}\right)^{T}z\left(X^{T}\right)^{\circ {2}}z\left(X^{2}\right)^{T}z\left(X^{T}\right)^{2}ra  z7\left[\begin{matrix}1 & 2\\3 & 4\end{matrix}\right]^{T}zH\left(\left[\begin{matrix}1 & 2\\3 & 4\end{matrix}\right] + X\right)^{T}rf  zi\left[\begin{matrix}1 & X\\\left[\begin{matrix}1 & 2\\3 & 4\end{matrix}\right] & 0\end{matrix}\right]^{T}rg  z\left(M^{x}\right)^{T})rb  re  rl  rm  r‘   rà   rþ   r�   r^  r_  r`  )
re  rl  rm  r0  r1  re  r^  r_  r`  rj  rî   rî   rï   Útest_TransposeQ  s,    ÿÿþ
rn  c                  C   s.  ddl m} m} ddlm}m}m} tdddƒ}tdddƒ}t| ||| ƒƒdksVt	‚t| ||ƒ| ƒdkspt	‚t||dƒƒd	ks†t	‚t||d
ƒƒdksœt	‚t||||ƒdƒƒdks¸t	‚t||||ƒdƒƒdksÔt	‚t|||d
ƒd
ƒƒdksðt	‚t|||d
ƒd
ƒƒdk�st	‚t||t
d ƒƒdk�s*t	‚d S )Nr   )ÚHadamardProductrm  )r   r   rl  r0  r  r1  zX \circ Y^{2}z\left(X \circ Y\right) YzX^{\circ {2}}r
  zX^{\circ \left({-1}\right)}z\left(X + Y\right)^{\circ {2}}z\left(X Y\right)^{\circ {2}}z-\left(X^{-1}\right)^{\circ \left({-1}\right)}z-\left(X^{\circ \left({-1}\right)}\right)^{-1}r   zX^{\circ \left({n + 1}\right)})rb  ro  rm  Úsympy.matrices.expressionsr   r   rl  r‘   rà   rþ   r+  )ro  rm  r   r   rl  r0  r1  rî   rî   rï   Útest_Hadamardi  s.    ÿÿÿÿ
ÿrq  c                  C   sÈ   ddl m}  tdddƒ}tdddƒ}t| |dƒƒdks:t‚t| || dƒƒdksTt‚t| || dƒƒdksnt‚t| || dƒƒd	ksˆt‚t| || dƒƒd
ks¢t‚tdddƒ}t| |dƒƒdksÄt‚d S )Nr   )rl  r0  r  r1  zX^{2}z\left(X^{2}\right)^{2}z\left(X Y\right)^{2}z\left(X + Y\right)^{2}z\left(2 X\right)^{2}rg  z\left(M^{x}\right)^{2})rp  rl  r‘   rà   rþ   )rl  r0  r1  rj  rî   rî   rï   Útest_MatPow�  s    rr  c                  C   sT   t dddƒ} | j|   t¡}t|ƒdks,t‚|  ttdt ƒ¡}t|ƒdksPt‚d S )Nr0  r  zN{\left( d \mapsto \sin{\left(d \right)} \right)}_{\circ}\left({X^{T} X}\right)r   z>{\left( x \mapsto \frac{1}{x} \right)}_{\circ}\left({X}\right))r‘   r-  Z	applyfuncrR   rà   rþ   r   rý   )r0  rò  rî   rî   rï   Útest_ElementwiseApplyFunction�  s
    rs  c                  C   sD   ddl m}  t| ddƒdd�dks&t‚t| ddƒdd�dks@t‚d S )	Nr   ©r`  r   rî  ©Zmat_symbol_styler  Úboldz
\mathbf{0})Ú"sympy.matrices.expressions.specialr`  rà   rþ   rt  rî   rî   rï   Útest_ZeroMatrix—  s    rx  c                  C   sD   ddl m}  t| ddƒdd�dks&t‚t| ddƒdd�d	ks@t‚d S )
Nr   ©r_  r  r  rî  ru  Ú1rv  z
\mathbf{1})rw  r_  rà   rþ   ry  rî   rî   rï   Útest_OneMatrix�  s    r{  c                  C   s@   ddl m}  t| dƒdd�dks$t‚t| dƒdd�dks<t‚d S )	Nr   ©ÚIdentityr   rî  ru  z
\mathbb{I}rv  z
\mathbf{I})rw  r}  rà   rþ   r|  rî   rî   rï   Útest_Identity£  s    r~  c                  C   s<   ddl m} m} t| dƒƒdks$t‚t|tƒƒdks8t‚d S )Nr   ©ÚDFTÚIDFTr”  z\text{DFT}_{13}z\text{IDFT}_{x})Z"sympy.matrices.expressions.fourierr€  r�  rà   rþ   rý   r  rî   rî   rï   Útest_latex_DFT_IDFT©  s    r‚  c                  C   sl   t dƒ} t| Ž }t|ƒdks t‚t| Ž }t|ƒdks8t‚t| Ž }t|ƒdksPt‚t| Ž }t|ƒdksht‚d S )Nza:fz.a \wedge b \wedge c \wedge d \wedge e \wedge fz$a \vee b \vee c \vee d \vee e \vee fz[a \Leftrightarrow b \Leftrightarrow c \Leftrightarrow d \Leftrightarrow e \Leftrightarrow fz3a \veebar b \veebar c \veebar d \veebar e \veebar f)r%   rˆ   rà   rþ   r‰   r‹   rŠ   )Zsymsrò  rî   rî   rï   Útest_boolean_args_order¯  s    ÿÿrƒ  c                  C   s   t dƒ} t| ƒdkst‚d S )Nr
  r7  )rL   rà   rþ   )r7  rî   rî   rï   Útest_imaginaryÁ  s    r„  c                   C   sd   t tƒdkst‚t tƒdks t‚t tƒdks0t‚t tƒdks@t‚t tƒdksPt‚t tƒdks`t‚d S )Nz\sinz\cosz\tanz\logz\operatorname{Ei}ú\zeta)rà   rR   rþ   rP   rS   rC   r]   r{   rî   rî   rî   rï   Útest_builtins_without_argsÆ  s    r†  c                  C   s¸   t dƒ} t| ƒdkst‚t| tƒƒdks,t‚t dƒ} t| ƒdksDt‚t dƒ} t| ƒdks\t‚t| tƒƒdkspt‚t d	ƒ}t|ƒd
ksˆt‚t dƒ}t|tƒƒdks¤t‚t|ƒdks´t‚d S )NÚAlphaú
\mathrm{A}z\mathrm{A}{\left(x \right)}ÚBetaú
\mathrm{B}ÚEtaú
\mathrm{H}z\mathrm{H}{\left(x \right)}ræ  ú\PiÚchiz\chi{\left(x \right)}ú\chi)r   rà   rþ   rý   )r˜  r  rŸ  rî   rî   rï   Útest_latex_greek_functionsÏ  s    r�  c                  C   s�   d} t | ƒdkst‚d} t | ƒdks(t‚d} t | ƒdks<t‚d} t | ƒdksPt‚d	} t | ƒd
ksdt‚d} t | ƒdksxt‚d} t | ƒdksŒt‚d S )Nr‡  rˆ  r‰  rŠ  r‹  rŒ  ÚomicronÚoræ  r�  r   rå  ZLamdaHatDOTz\dot{\hat{\Lambda}})rá   rþ   r—  rî   rî   rï   Útest_translateæ  s    r“  c                  C   s2   ddl m}  | D ]}tt|ƒƒd| kst‚qd S )Nr   )Úother_symbolsú\)Úsympy.printing.latexr”  rà   r%   rþ   )r”  r˜  rî   rî   rï   Útest_other_symbols÷  s    r—  c                   C   sà  t tdƒƒdkst‚t tdƒƒdks(t‚t tdƒƒdks<t‚t tdƒƒdksPt‚t td	ƒƒd
ksdt‚t tdƒƒdksxt‚t tdƒƒdksŒt‚t tdƒƒdks t‚t tdƒƒdks´t‚t tdƒƒdksÈt‚t tdƒƒdksÜt‚t tdƒƒdksðt‚t tdƒƒdk�st‚t tdƒƒdk�st‚t tdƒƒdk�s2t‚t tdƒƒd k�sHt‚t td!ƒƒd"k�s^t‚t td#ƒƒd$k�stt‚t td%ƒƒd$k�sŠt‚t td&ƒƒdk�s t‚t td'ƒƒdk�s¶t‚t td(ƒƒd(k�sÌt‚t td)ƒƒd)k�sât‚t td*ƒƒd*k�søt‚t td+ƒƒd+k�st‚t td,ƒƒd,k�s$t‚t td-ƒƒd-k�s:t‚t td.ƒƒd.k�sPt‚t td/ƒƒd0k�sft‚t td1ƒƒd1k�s|t‚t td2ƒƒd2k�s’t‚t td3ƒƒd3k�s¨t‚t td4ƒƒd4k�s¾t‚t td5ƒƒd5k�sÔt‚t td6ƒƒd6k�sêt‚t td7ƒƒd7k�s t‚t td8ƒƒd8k�st‚t td9ƒƒd9k�s,t‚t td:ƒƒd:k�sBt‚t td;ƒƒd;k�sXt‚t td<ƒƒd=k�snt‚t td>ƒƒd?k�s„t‚t td@ƒƒdAk�sšt‚t tdBƒƒdCk�s°t‚t tdDƒƒdEk�sÆt‚t tdFƒƒdGk�sÜt‚d S )HNZ	xMathringz\mathring{x}ZxCheckz	\check{x}ZxBrevez	\breve{x}ZxAcutez	\acute{x}ZxGravez	\grave{x}ZxTildez	\tilde{x}ZxPrimez{x}'ZxddDDotz
\ddddot{x}ZxDdDotz	\dddot{x}ZxDDotz\ddot{x}ZxBoldz\boldsymbol{x}ZxnOrMz\left\|{x}\right\|ZxAVGz\left\langle{x}\right\rangleZxHatz\hat{x}ZxDotz\dot{x}ZxBarz\bar{x}ZxVecz\vec{x}ZxAbsrZ  ZxMagZxPrMZxBMZMathringZCheckZBreveZAcuteZGraveZTildeÚPrimeZDDotz\dot{D}ZBoldZNORmZAVGZHatrØ   ZBarZVecr;   ZMagZPrMZBMZhbarz\hbarZxvecdotz\dot{\vec{x}}ZxDotVecz\vec{\dot{x}}ZxHATNormz\left\|{\hat{x}}\right\|Z xMathringBm_yCheckPRM__zbreveAbszC\boldsymbol{\mathring{x}}^{\left|{\breve{z}}\right|}_{{\check{y}}'}Z alphadothat_nVECDOT__tTildePrimez1\hat{\dot{\alpha}}^{{\tilde{t}}'}_{\dot{\vec{n}}})rà   r%   rþ   rî   rî   rî   rï   Útest_modifiersý  sd    
ÿ

ÿr™  c                   C   s¦  t tdƒƒdkst‚t tdƒƒdks(t‚t tdƒƒdks<t‚t tdƒƒdksPt‚t td	ƒƒd
ksdt‚t tdƒƒdksxt‚t tdƒƒdksŒt‚t tdƒƒdks t‚t tdƒƒdks´t‚t tdƒƒdksÈt‚t tdƒƒdksÜt‚t tdƒƒdksðt‚t tdƒƒdk�st‚t tdƒƒdk�st‚t tdƒƒdk�s2t‚t tdƒƒd k�sHt‚t td!ƒƒd"k�s^t‚t td#ƒƒd$k�stt‚t td%ƒƒd&k�sŠt‚t td'ƒƒd(k�s t‚t td)ƒƒd*k�s¶t‚t td+ƒƒd,k�sÌt‚t td-ƒƒd.k�sât‚t td/ƒƒd0k�søt‚t td1ƒƒd2k�st‚t td3ƒƒd4k�s$t‚t td5ƒƒd6k�s:t‚t td7ƒƒd8k�sPt‚t td9ƒƒd:k�sft‚t td;ƒƒd<k�s|t‚t td=ƒƒd>k�s’t‚t td?ƒƒd@k�s¨t‚t tdAƒƒdBk�s¾t‚t tdCƒƒdDk�sÔt‚t tdEƒƒdFk�sêt‚t tdGƒƒdHk�s t‚t tdIƒƒdJk�st‚t tdKƒƒdLk�s,t‚t tdMƒƒdNk�sBt‚t tdOƒƒdPk�sXt‚t tdQƒƒdRk�snt‚t tdSƒƒdTk�s„t‚t tdUƒƒdVk�sšt‚t tdWƒƒdXk�s°t‚t tdYƒƒdZk�sÆt‚t td[ƒƒd\k�sÜt‚t td]ƒƒd^k�sòt‚t td_ƒƒd`k�st‚t tdaƒƒdbk�st‚t tdcƒƒddk�s4t‚t tdeƒƒdfk�sJt‚t tdgƒƒdhk�s`t‚t tdiƒƒdjk�svt‚t tdkƒƒdlk�sŒt‚t tdmƒƒdnk�s¢t‚d S )oNr  r  rT   rQ  ra   rR  Údeltaú\deltaÚepsilonz\epsilonr{   r…  Úetaz\etar_  z\thetaÚiotaz\iotaÚkappaz\kappaÚlambdar(  rç   z\muÚnuz\nuÚxiz\xir‘  r’  r   rå  rH  z\rhoÚsigmaz\sigmarè   r:  Úupsilonz\upsilonrb  rä  rŽ  r�  Úpsiz\psirC  r¾  r‡  rˆ  r‰  rŠ  rG  ú\GammaÚDeltaz\DeltaÚEpsilonz
\mathrm{E}ÚZetaz
\mathrm{Z}r‹  rŒ  ÚThetaz\ThetaÚIotaz
\mathrm{I}ÚKappaz
\mathrm{K}r   r)  ÚMuz
\mathrm{M}ÚNuz
\mathrm{N}ÚXiz\XiÚOmicronz
\mathrm{O}ræ  r�  ÚRhoz
\mathrm{P}ÚSigmaz\SigmarI  r;  ÚUpsilonz\UpsilonÚPhiz\Phir[   z
\mathrm{X}r  z\PsiÚOmegaz\OmegaZ
varepsilonz\varepsilonZvarkappaz	\varkappaZvarphiz\varphiZvarpiz\varpiZvarrhoz\varrhoZvarsigmaz	\varsigmaZvarthetaz	\varthetar  rî   rî   rî   rï   Útest_greek_symbols5	  sn    r¶  c                   C   sp   t tjƒdkst‚t tjƒdks$t‚t tjƒdks6t‚t tjƒdksHt‚t tjƒdksZt‚t tjƒdkslt‚d S )Nz
\mathbb{Q}rÈ  rÊ  rÍ  z
\mathbb{R}rÅ  )	rà   r"   Z	Rationalsrþ   r·  rË  rÎ  r¶  rÆ  rî   rî   rî   rï   Útest_fancyset_symbolsq	  s    r·  c                   C   s   t tƒdkst‚d S )Nz\mathcal{COS})rà   r}   rþ   rî   rî   rî   rï   Ú*test_builtin_without_args_mismatched_namesz	  s    r¸  c                   C   sd   t tƒdkst‚t tƒdks t‚t tƒdks0t‚t tƒdks@t‚t tƒdksPt‚t tƒdks`t‚d S )Nz\operatorname{Chi}z\operatorname{B}r¦  r›  rR  )rà   r[   rþ   rT   ra   ru   rU   ré   rî   rî   rî   rï   Útest_builtin_no_args	  s    r¹  c                  C   s    t dƒ} t| tƒƒdkst‚d S )Nræ  z\Pi{\left(x \right)})r   rà   rý   rþ   ©r  rî   rî   rï   Útest_issue_6853ˆ	  s    r»  c                  C   sî   t dtd dd�} t| ƒdks"t‚t dtd dd�} t| ƒdksDt‚t tjtd dd�} t| ƒdksht‚t ttd dd�} t| ƒd	ksŠt‚t t td dd�} t| ƒd
ks®t‚t dtd ƒ} t| ƒdksÌt‚t dtd ƒ} t| ƒdksêt‚d S )Nr  r   Fr   z- 2 \left(x + 1\right)r  z2 \left(x + 1\right)z\frac{x + 1}{2}zy \left(x + 1\right)z- y \left(x + 1\right)z	- 2 x - 2z2 x + 2)r   rý   rà   rþ   r"   r"  r!  )rã  rî   rî   rï   Útest_Mul�	  s    r¼  c                  C   sp   t dddd�} t| ƒdkst‚tttddƒ ƒdks8t‚tdƒ}t|d ƒd	ksTt‚ttd
ƒt ƒdkslt‚d S )Nr  Fr   z2^{2}r
  r  z\frac{1}{\sqrt[3]{x}}zx^2z\left(x^{2}\right)^{2}z
1.453e4500z{1.453 \cdot 10^{4500}}^{x})r   rà   rþ   rý   r   r#   r"   )rã  r�  rî   rî   rï   Útest_Powž	  s    r½  c                   C   s4   t tttƒƒdkst‚t ttttƒƒƒdks0t‚d S )Nzx \Leftrightarrow yzx \not\Leftrightarrow y)rà   r‹   rý   r!  rþ   r�   rî   rî   rî   rï   Útest_issue_7180¨	  s    r¾  c                   C   s   t tjt ƒdkst‚d S )Nz\left(\frac{1}{2}\right)^{n})rà   r"   r"  r+  rþ   rî   rî   rî   rï   Útest_issue_8409­	  s    r¿  c                  C   s,   ddl m}  | ddd�}t|ƒdks(t‚d S )Nr   ©Ú
parse_exprz-B*AFr   zA \left(- B\right)©Zsympy.parsing.sympy_parserrÁ  rà   rþ   )rÁ  rã  rî   rî   rï   Útest_issue_8470±	  s    rÃ  c                  C   sx   t dddƒ} t dddƒ}t| |  || ¡ƒdks6t‚t| |  |d| ¡ƒdksVt‚t| |  | |  ¡ƒdkstt‚d S )Nrý   r  r!  zx \left(- y\right)r  zx \left(- 2 y\right)z\left(- x\right) y)r‘   rà   Úsubsrþ   r+  rî   rî   rï   Útest_issue_15439·	  s
     rÅ  c                   C   s   t tdƒƒdkst‚d S )Nz\frac{a_1}{b_1}r  rî   rî   rî   rï   Útest_issue_2934¿	  s    rÆ  c                  C   s4   d} t | ƒ}t|ƒ| kst‚tt|ƒƒdks0t‚d S )Nz	C_{x_{0}}z\cos{\left(C_{x_{0}} \right)})r#   rà   rþ   rP   )ZlatexSymbolWithBracer˜  rî   rî   rï   Útest_issue_10489Ã	  s    rÇ  c                  C   s,   t dƒ\} }t| d |d  ƒdks(t‚d S )Nz
m__1, l__1r  z/\left(l^{1}\right)^{2} + \left(m^{1}\right)^{2}rK  )Zm__1Zl__1rî   rî   rï   Útest_issue_12886Ê	  s    ÿrÈ  c                  C   s,   ddl m}  | ddd�}t|ƒdks(t‚d S )Nr   rÀ  z5/1Fr   z\frac{5}{1}rÂ  )rÁ  rò  rî   rî   rï   Útest_issue_13559Ð	  s    rÉ  c                  C   s*   t tdtt dd� } t| ƒdks&t‚d S )Nr
  Fr   zc - \left(a + b\right))rŸ  r   r*  rd  rà   rþ   rñ  rî   rî   rï   Útest_issue_13651Ö	  s    rÊ  c                  C   sz   t dƒ} td|  ƒ}t|ƒtd|  ƒ  kr4dks:n t‚t|d ƒdksNt‚t|d ƒdksbt‚t| | ƒdksvt‚d S )Nrý   r   r  r  z\left(\frac{1}{x}\right)^{2}z1 + \frac{1}{x}zx \frac{1}{x})r%   r   rà   rþ   )rý   Úherî   rî   rï   Útest_latex_UnevaluatedExprÛ	  s    &rÌ  c            
      C   sÚ   t dddƒ} t dddƒ}t dddƒ}t| d ƒdks8t‚td| d  ƒdksPt‚|d  || | ¡}t|ƒd	kstt‚td
ƒ\}}}t d||ƒ}t d||ƒ}t|| ||f ƒdks¶t‚t dddƒ}	t|	d ƒdksÖt‚d S )Nr6  r   r  r°  rÂ  )r   r   z	{A}_{0,0}z3 {A}_{0,0}z{\left(A - B\right)}_{0,0}zi j krþ  r‚  z2\sum_{i_{1}=0}^{k - 1} {M}_{i,i_{1}} {N}_{i_{1},j}ÚX_az{X_{a}}_{0,0})r‘   rà   rþ   rÄ  r%   )
r6  r°  rÂ  rA  r7  r8  r&  rþ  r‚  rÍ  rî   rî   rï   Útest_MatrixElement_printingä	  s    ÿrÎ  c                  C   s|   t dddƒ} t dddƒ}t dddƒ}t|  ƒdks6t‚t| | |  | ƒdksRt‚t|  | | | |  | ƒdksxt‚d S )Nr6  r  r°  rÂ  z- AzA - A B - Bz- A B - A B C - B)r‘   rà   rþ   r  rî   rî   rï   Útest_MatrixSymbol_printingú	  s    rÏ  c                  C   s2   t dddƒ} t dddƒ}tt| |ƒƒdks.t‚d S )Nr6  r  r°  r  úA \otimes B)r‘   rà   r�   rþ   )r6  r°  rî   rî   rï   Útest_KroneckerProduct_printing
  s    rÑ  c            	      C   sŒ  t ttd  t td td  tƒ} t tt tt tƒ}t ttd  tt t  t tt tƒ}tt| |ƒƒdksvt‚tt| ||ƒƒdksŽt‚tt| | ƒƒdks¦t‚t	dt
 gddt
  ggƒ}t |t
¡}t	ddt
d  ggƒ}t |t
¡}t|||  ƒd  k�r$ttt||ƒ|ƒƒk�s*n t‚t	ddgddt
 ggƒ}t |t
¡}t|| | ƒd	  k�r‚ttt||ƒ|ƒƒk�sˆn t‚d S )
Nr  r  zQ\left(\frac{x y^{2} - z}{- t^{3} + y^{3}}\right) \left(\frac{x - y}{x + y}\right)z‚\left(\frac{x y^{2} - z}{- t^{3} + y^{3}}\right) \left(\frac{x - y}{x + y}\right) \left(\frac{t x^{2} - t^{w} x + w}{t - y}\right)zS\left(\frac{- x + y}{x + y}\right) \left(\frac{x y^{2} - z}{- t^{3} + y^{3}}\right)r  r.  zñ\left[\begin{matrix}\frac{5}{s}\\\frac{5}{2 s}\end{matrix}\right]_\tau\cdot\left(\left[\begin{matrix}\frac{5}{1} & \frac{6 s^{3}}{1}\end{matrix}\right]_\tau + \left[\begin{matrix}\frac{5}{1} & \frac{6 s^{3}}{1}\end{matrix}\right]_\tau\right)zù\left[\begin{matrix}\frac{5}{s}\\\frac{5}{2 s}\end{matrix}\right]_\tau\cdot\left[\begin{matrix}\frac{5}{1} & \frac{6 s^{3}}{1}\end{matrix}\right]_\tau + \left[\begin{matrix}\frac{5}{1} & \frac{6}{1}\\\frac{6}{1} & \frac{5}{s}\end{matrix}\right]_\tau)r”   rý   r!  r#  r’  r]  rà   r•   rþ   r�   r˜  r˜   Úfrom_Matrixr™   rš   )	Útf1Útf2Útf3ÚM_1ÚT_1ÚM_2ÚT_2ÚM_3ÚT_3rî   rî   rï   Útest_Series_printing
  s4    $(ÿÿÿÿ
ýþrÜ  c                  C   sx   t td td tƒ} t| ƒdks$t‚t td dt tƒ}t|ƒdksHt‚t ttd dt  d tƒ}t|ƒdkstt‚d S )Nr   z\frac{x - 1}{x + 1}r  z\frac{x + 1}{2 - y}r  z\frac{y}{y^{2} + 2 y + 3})r”   rý   rà   rþ   r!  ©rÓ  rÔ  rÕ  rî   rî   rï   Útest_TransferFunction_printing'
  s    rÞ  c                  C   sT  t ttd  t td td  tƒ} t tt tt tƒ}tt| |ƒƒdksNt‚tt| | ƒƒdksft‚tddgddt	 ggƒ}t
 |t	¡}tdt	 dgddt	d  ggƒ}t
 |t	¡}tddt	t	d   gddggƒ}t
 |t	¡}t|| | ƒd  k�rJtt|||ƒƒ  k�rJtt|t||ƒƒƒ  k�rJttt||ƒ|ƒƒk�sPn t‚d S )	Nr  r  z9\frac{x y^{2} - z}{- t^{3} + y^{3}} + \frac{x - y}{x + y}z;\frac{- x + y}{x + y} + \frac{x y^{2} - z}{- t^{3} + y^{3}}r  r.  r   a=  \left[\begin{matrix}\frac{5}{1} & \frac{6}{1}\\\frac{6}{1} & \frac{5}{s}\end{matrix}\right]_\tau + \left[\begin{matrix}\frac{5}{s} & \frac{6}{1}\\\frac{6}{1} & \frac{5}{s - 1}\end{matrix}\right]_\tau + \left[\begin{matrix}\frac{6}{1} & \frac{5}{s \left(s - 1\right)}\\\frac{5}{1} & \frac{6}{1}\end{matrix}\right]_\tau)r”   rý   r!  r#  r’  rà   r–   rþ   r�   r˜  r˜   rÒ  rš   )rÓ  rÔ  rÖ  r×  rØ  rÙ  rÚ  rÛ  rî   rî   rï   Útest_Parallel_printing0
  s*    $ÿÿ  ý
ý
ýrß  c                  C   s„   t ttt tƒ} t t t tt tƒ}t ttd dt  d tƒ}tt| g|ggƒƒdks^t‚tt| |g||  ggƒƒdks€t‚d S )Nr  r  zP\left[\begin{matrix}\frac{p}{p + x}\\\frac{p - s}{p + s}\end{matrix}\right]_\tauzŽ\left[\begin{matrix}\frac{p}{p + x} & \frac{p - s}{p + s}\\\frac{p}{y^{2} + 2 y + 3} & \frac{\left(-1\right) p}{p + x}\end{matrix}\right]_\tau)r”   r  rý   r˜  r!  rà   r˜   rþ   rÝ  rî   rî   rï   Ú$test_TransferFunctionMatrix_printingD
  s    ÿÿrà  c                  C   s–   t ttt tƒ} t t t tt tƒ}tt| |ƒƒdks<t‚tt| | t ddtƒƒƒdks^t‚tt| |dƒƒdksvt‚tt| | dd�ƒdks’t‚d S )Nzc\frac{\frac{p}{p + x}}{\frac{1}{1} + \left(\frac{p}{p + x}\right) \left(\frac{p - s}{p + s}\right)}r   z‘\frac{\left(\frac{p}{p + x}\right) \left(\frac{p - s}{p + s}\right)}{\frac{1}{1} + \left(\frac{p}{p + x}\right) \left(\frac{p - s}{p + s}\right)}zc\frac{\frac{p}{p + x}}{\frac{1}{1} - \left(\frac{p}{p + x}\right) \left(\frac{p - s}{p + s}\right)})Úsignz‘\frac{\left(\frac{p}{p + x}\right) \left(\frac{p - s}{p + s}\right)}{\frac{1}{1} - \left(\frac{p}{p + x}\right) \left(\frac{p - s}{p + s}\right)})r”   r  rý   r˜  rà   r—   rþ   )rÓ  rÔ  rî   rî   rï   Útest_Feedback_printingN
  s    ÿÿÿÿrâ  c                  C   s¦   t dttƒ} t ttd d tƒ}t ttd tƒ}t td td d tƒ}t| |g||ggƒ}t||g|| ggƒ}tt||ƒƒdks†t‚tt|| |dƒƒdks¢t‚d S )Nr   r  a‘  \left(I_{\tau} + \left[\begin{matrix}\frac{1}{s} & \frac{s}{s^{2} - 1}\\\frac{s}{s - 1} & \frac{s^{2}}{s^{2} - 1}\end{matrix}\right]_\tau\cdot\left[\begin{matrix}\frac{s^{2}}{s^{2} - 1} & \frac{s}{s - 1}\\\frac{s}{s^{2} - 1} & \frac{1}{s}\end{matrix}\right]_\tau\right)^{-1} \cdot \left[\begin{matrix}\frac{1}{s} & \frac{s}{s^{2} - 1}\\\frac{s}{s - 1} & \frac{s^{2}}{s^{2} - 1}\end{matrix}\right]_\taua‹  \left(I_{\tau} - \left[\begin{matrix}\frac{1}{s} & \frac{s}{s^{2} - 1}\\\frac{s}{s - 1} & \frac{s^{2}}{s^{2} - 1}\end{matrix}\right]_\tau\cdot\left[\begin{matrix}\frac{s^{2}}{s^{2} - 1} & \frac{s}{s - 1}\\\frac{s}{s^{2} - 1} & \frac{1}{s}\end{matrix}\right]_\tau\cdot\left[\begin{matrix}\frac{1}{s} & \frac{s}{s^{2} - 1}\\\frac{s}{s - 1} & \frac{s^{2}}{s^{2} - 1}\end{matrix}\right]_\tau\right)^{-1} \cdot \left[\begin{matrix}\frac{1}{s} & \frac{s}{s^{2} - 1}\\\frac{s}{s - 1} & \frac{s^{2}}{s^{2} - 1}\end{matrix}\right]_\tau\cdot\left[\begin{matrix}\frac{s^{2}}{s^{2} - 1} & \frac{s}{s - 1}\\\frac{s}{s^{2} - 1} & \frac{1}{s}\end{matrix}\right]_\tau)r”   r˜  r˜   rà   r›   rþ   )rÓ  rÔ  rÕ  Ztf4Ztfm_1Ztfm_2rî   rî   rï   Útest_MIMOFeedback_printing]
  s    ÿÿrã  c                  C   sf   t ttttƒ} t| ƒdkst‚t ttttt ƒ} t| ƒdks@t‚t ttttt ƒ} t| ƒdksbt‚d S )Nzx + y i + z j + t kzx + y i + z j + t x kz$x + y i + z j + \left(t + x\right) k)r   rý   r!  r#  r’  rà   rþ   )Úqrî   rî   rï   Útest_Quaternion_latex_printingu
  s    rå  c                  C   s>   ddl m}  tdddƒ}tdddƒ}t| ||ƒƒdks:t‚d S )Nr   )ÚTensorProductr6  r  r°  rÐ  )Zsympy.tensor.functionsræ  r‘   rà   rþ   )ræ  r6  r°  rî   rî   rï   Útest_TensorProduct_printing~
  s    rç  c                  C   s:   ddl m}  ddlm} || j| jƒ}t|ƒdks6t‚d S )Nr   ©ÚR2)ÚWedgeProductz*\operatorname{d}x \wedge \operatorname{d}y)Úsympy.diffgeom.rnré  Úsympy.diffgeomrê  ZdxZdyrà   rþ   )ré  rê  r¿  rî   rî   rï   Útest_WedgeProduct_printing…
  s    rí  c                  C   s†   t dddd�} t| ƒdkst‚t dt dddd�dd�}t|ƒdksFt‚t dddd�}t|ƒd	ksdt‚t dddd�}t|ƒd
ks‚t‚d S )Nr   r
  Fr   z1^{-1}z
1^{1^{-1}}r  r  z\frac{1}{9}z1^{-2})r   rà   rþ   )Zexpr_1Zexpr_2Zexpr_3Zexpr_4rî   rî   rï   Útest_issue_9216Œ
  s    rî  c                  C   sn  ddl m} m}m}m} | dƒ}|d|ƒ\}}}}|d|ƒ}	|d|gƒ\}
}}}|d||gƒ}|d||||gƒ}t|ƒd	ks€t‚t| ƒd
ks’t‚|
|ƒ}t|ƒdksªt‚|
|	ƒ}t|ƒdksÂt‚|
| ƒ}t|ƒdksÜt‚d|
|ƒ }t|ƒdksøt‚|||| |	 ƒ}t|ƒdk�st‚||| | |	ƒ}t|ƒdk�s@t‚||| ||	 ƒ}t|ƒdk�sdt‚||| ƒ}t|ƒdk�s‚t‚|||ƒ}t|ƒdk�sžt‚|| | ƒ}t|ƒdk�s¾t‚dt |
|ƒ }t|ƒdk�sàt‚||| ƒ}t|ƒdk�sþt‚||| ƒ|
|ƒ ||ƒ }t|ƒdk�s,t‚|
|ƒd||ƒ  }t|ƒdk�sRt‚ddl m} ||||||ƒ|d|diƒ}t|ƒdk�sŒt‚||||||ƒ|diƒ}t|ƒdk�s¶t‚|||| ||ƒ|d|diƒ}t|ƒd k�sæt‚|||| || ƒ|d|diƒ}t|ƒd!k�st‚||||| | ƒ|d| diƒ}t|ƒd"k�sLt‚||||| | ƒ|diƒ}t|ƒd#k�szt‚t	|
|ƒ|
|ƒƒ}t|ƒd$k�sžt‚t	|
| ƒ|
| ƒƒ}t|ƒd%k�sÆt‚t	|||| | ƒ|
t
ƒ|
t ƒƒ}t|ƒd&k�süt‚t	|| ƒ|
| ƒ |
| ƒ|
t ƒƒ}t|ƒd'k�s6t‚t	d|
| ƒ |
| ƒ|
t ƒƒ}t|ƒd(k�sjt‚d S ))Nr   )ÚTensorIndexTypeÚtensor_indicesÚ
TensorHeadÚtensor_headsÚLzi j k lZi_0zA B C DÚHÚKz{}^{i}z{}_{i}zA{}^{i}zA{}^{i_{0}}zA{}_{i}r)  z	-3A{}^{i}zK{}^{ij}{}_{ki_{0}}zK{}^{i}{}_{jk}{}^{i_{0}}zK{}^{i}{}_{j}{}^{k}{}_{i_{0}}zH{}^{i}{}_{j}zH{}^{ij}zH{}_{ij}r   z\left(x + 1\right)A{}^{i}zH{}^{L_{0}}{}_{L_{0}}z#H{}^{i}{}_{L_{0}}A{}^{L_{0}}B{}^{k}r  z3B{}^{i} + A{}^{i})ÚTensorElementr  zK{}^{i=3,j,k=2,l}zK{}^{i=3,jkl}zK{}^{i=3}{}_{j}{}^{k=2,l}zK{}^{i=3}{}_{j}{}^{k=2}{}_{l}zK{}^{i=3,j}{}_{k=2,l}zK{}^{i=3,j}{}_{kl}z4\frac{\partial}{\partial {A{}^{L_{0}}}}{A{}^{L_{0}}}z,\frac{\partial}{\partial {A{}_{j}}}{A{}_{i}}zK\frac{\partial^{2}}{\partial {A{}^{m}} \partial {A{}_{n}}}{K{}^{ij}{}_{kl}}zZ\frac{\partial^{2}}{\partial {A{}_{j}} \partial {A{}_{n}}}{\left(A{}_{i} + B{}_{i}\right)}zQ\frac{\partial^{2}}{\partial {A{}_{j}} \partial {A{}_{n}}}{\left(3A{}_{i}\right)})Zsympy.tensor.tensorrï  rð  rñ  rò  rà   rþ   rý   rö  rÔ   re  r+  )rï  rð  rñ  rò  ró  r7  r8  r&  r>  Zi0r6  r°  rÂ  rÃ  rô  rõ  rò  rö  rî   rî   rï   Útest_latex_printer_tensorš
  sx    


 "$("r÷  c                     s  t dƒ\} }}}}‰|  d|  d|  d|  d|  ‰ d}tˆˆ dd�|ksTt‚d	}tˆˆ ddd�|kspt‚d
}tˆˆ ddd�|ksŒt‚d}tˆˆ dddd�|ksªt‚d}	tˆˆ dƒ|	ksÂt‚tˆˆ ddd�|	ksÚt‚d}
tˆˆ ddd�|
ksöt‚tt‡ ‡fdd„ƒ d S )Nza b c d e fr  r  r  r  zƒ\begin{eqnarray}
f & = &- a \nonumber\\
& & + 2 b \nonumber\\
& & - 3 c \nonumber\\
& & + 4 d \nonumber\\
& & - 5 e 
\end{eqnarray}Zeqnarray©Úenvironmentzc\begin{eqnarray}
f & = &- a + 2 b \nonumber\\
& & - 3 c + 4 d \nonumber\\
& & - 5 e 
\end{eqnarray}zS\begin{eqnarray}
f & = &- a + 2 b - 3 c \nonumber\\
& & + 4 d - 5 e 
\end{eqnarray}zX\begin{eqnarray}
f & = &- a + 2 b - 3 c \dots\nonumber\\
& & + 4 d - 5 e 
\end{eqnarray}T)rù  Zuse_dotszB\begin{align*}
f = &- a + 2 b - 3 c \\
& + 4 d - 5 e 
\end{align*}zalign*zp\begin{IEEEeqnarray}{rCl}
f & = &- a + 2 b \nonumber\\
& & - 3 c + 4 d \nonumber\\
& & - 5 e 
\end{IEEEeqnarray}ZIEEEeqnarrayc                      s   t ˆˆ dd�S )Nrü   rø  )rä   rî   ©rò  r  rî   rï   ró  '  rô  z&test_multiline_latex.<locals>.<lambda>)r%   rä   rþ   rÝ   rõ  )r*  rd  rŸ  rÁ  rã  r  Z	expected2Z	expected3Zexpected3dotsZexpected3alignZexpected2ieeerî   rú  rï   Útest_multiline_latexõ
  s     &rû  c                  C   sX   t dƒ\} }tt|| ƒtt| | ƒdƒtt| | ƒdƒ@ tjd ƒ}t|ƒdksTt	‚d S )Nza xr   r  z¡\left\{\left( x, \  a\right)\; \middle|\; \left( x, \  a\right) \in \mathbb{C}^{2} \wedge \sin{\left(a x \right)} = 0 \wedge \cos{\left(a x \right)} = 0 \right\})
r%   r´   r   r    rR   rP   r"   rÆ  rà   rþ   )r*  rý   Zsolrî   rî   rï   Útest_issue_15353)  s     " ÿÿrü  c                  C   s†   t dƒ} t ddd�}td| |ƒ}tt|ƒƒdks4t‚tt|ƒƒdksHt‚tt|dkƒƒd	ks`t‚td
| |ƒ}tt||ƒƒdks‚t‚d S )Nrç   r£  Tr  r0  z\operatorname{E}\left[X\right]z \operatorname{Var}\left(X\right)r   z"\operatorname{P}\left(X > 0\right)r1  z#\operatorname{Cov}\left(X, Y\right))r%   rÅ   rà   rÇ   rþ   rÉ   rÈ   rÆ   )rç   r£  r0  r1  rî   rî   rï   Útest_latex_symbolic_probability4  s    rý  c                  C   sH   ddl m}  tdddƒ}t| |ƒƒdks,t‚t| |d ƒƒdksDt‚d S )Nr   ©Útracer6  r  ú \operatorname{tr}\left(A \right)z$\operatorname{tr}\left(A^{2} \right)©Z sympy.matrices.expressions.tracerÿ  r‘   rà   rþ   )rÿ  r6  rî   rî   rï   Ú
test_trace?  s    r  c                     sˆ   ddl m‰  ddlm}  G ‡ fdd„d| ƒ‰‡fdd„}‡fdd	„}t|tƒƒd
ksXt‚t|td ƒƒdkspt‚t|tƒƒdks„t‚d S )Nr   ©ÚBasic)ÚExprc                       s   e Zd Z‡ fdd„ZdS )z+test_print_basic.<locals>.UnimplementedExprc                    s   ˆ   | |¡S ©N)Ú__new__)r  rã  r  rî   rï   r  O  s    z3test_print_basic.<locals>.UnimplementedExpr.__new__N)rë   rì   rí   r  rî   r  rî   rï   ÚUnimplementedExprN  s   r  c                    s   ˆ | ƒ  ¡ S r  )r±  rñ  ©r  rî   rï   Úunimplemented_exprS  s    z,test_print_basic.<locals>.unimplemented_exprc                    s   ˆ | ƒ}d|j _|S )NzUnimplementedExpr_x^1)Ú	__class__rë   )rò  Úresultr	  rî   rï   Úunimplemented_expr_sup_subW  s    z4test_print_basic.<locals>.unimplemented_expr_sup_subz.\operatorname{UnimplementedExpr}\left(x\right)r  z2\operatorname{UnimplementedExpr}\left(x^{2}\right)z6\operatorname{UnimplementedExpr^{1}_{x}}\left(x\right))Zsympy.core.basicr  Úsympy.core.exprr  rà   rý   rþ   )r  r
  r  rî   )r  r  rï   Útest_print_basicG  s    ÿ
ÿr  c                  C   s  ddl m}  tdddƒ}t| |ƒdd�dks0t‚t| |ƒdd�d	ksHt‚tdd
d
ƒ}tdd
d
ƒ}tdd
d
ƒ}t| dd�dks‚t‚t|||  | dd�dks¢t‚t| | || |  | dd�dksÌt‚tdd
d
ƒ}t|dd�dksìt‚tdd
d
ƒ}t|dd�dk�st‚d S )Nr   rþ  r6  r  rv  ru  z)\operatorname{tr}\left(\mathbf{A} \right)rî  r   r  r°  rÂ  z- \mathbf{A}z/\mathbf{A} - \mathbf{A} \mathbf{B} - \mathbf{B}zG- \mathbf{A} \mathbf{B} - \mathbf{A} \mathbf{B} \mathbf{C} - \mathbf{B}ÚA_kz\mathbf{A}_{k}z\nabla_kz\mathbf{\nabla}_{k}r  )rÿ  r6  r°  rÂ  r  rî   rî   rï   Útest_MatrixSymbol_boldc  s,    ÿÿÿ ÿr  c                  C   s.   t dddƒ} tdƒ}tt| |ƒƒdks*t‚d S )Nr   r   r  rý   z#\sigma_{\left( 0\; 1\; 2\right)}(x))r   r#   rà   r	   rþ   )r  rý   rî   rî   rï   Útest_AppliedPermutation|  s
    ÿr  c                  C   sH   t dddƒ} tt| ƒƒdks t‚t ddƒddƒ} tt| ƒƒdksDt‚d S )Nr   r   r  zP_{\left( 0\; 1\; 2\right)}r  z*P_{\left( 0\; 3\right)\left( 1\; 2\right)})r   rà   r’   rþ   rº  rî   rî   rï   Útest_PermutationMatrixƒ  s    
ÿr  c                  C   s  ddl m}  ddlm} tdƒ}tdƒ\}}|||t tfdtd|dtfƒtt	dt t
|t ƒ | dt|t ƒ |d   |t k|tk @ t|dƒ@ fd	ƒt|| ƒ t |dtfƒfƒ}t| |ƒƒd
ksÐt‚t|||t tfdtd|dtfƒtd|dtfƒfƒƒdk�st‚d S )Nr   )Úpiecewise_fold)ÚFourierSeriesrý   zk nr   r  r  )r   TzÎ\begin{cases} 2 \sin{\left(x \right)} - \sin{\left(2 x \right)} + \frac{2 \sin{\left(3 x \right)}}{3} + \ldots & \text{for}\: n > -\infty \wedge n < \infty \wedge n \neq 0 \\0 & \text{otherwise} \end{cases}r  )Ú$sympy.functions.elementary.piecewiser  Úsympy.series.fourierr  r#   r%   r   r±   r   rM   rP   rR   r!   rà   rþ   )r  r  rý   r&  r+  Úforî   rî   rï   Útest_issue_21758‹  s(     Lÿ
ÿÿþ ÿÿr  c                   C   sˆ   t dt ƒdkst‚t dt dd�dks,t‚t dt dd�dksDt‚t dt dd�dks\t‚t td	d�d
kspt‚t tdd�dks„t‚d S )Nr   z1 + ir7  ©Úimaginary_unitr8  z1 + jrü   z1 + fooÚtiz\text{i}Ztjz\text{j})rà   r   rþ   rî   rî   rî   rï   Útest_imaginary_unit›  s    r  c                   C   sd   t ttƒdd�dkst‚t ttƒdd�dks0t‚t ttƒdd�dksHt‚t ttƒdd�dks`t‚d S )NT)Zgothic_re_imz\Im{\left(x\right)}Fr\  z\Re{\left(x\right)}r[  )rà   r>   rý   rþ   r@   rî   rî   rî   rï   Útest_text_re_im¤  s    r  c                  C   sÔ   ddl m} m}m}m}m} ddlm} tddd�\}}| ddƒ}t	|ƒd	ksRt
‚|d
|ƒ}	t	|	ƒdkslt
‚|d|	||gƒ}
t	|
ƒdksŒt
‚||
dƒ}t	|ƒdks¦t
‚tdƒ}||j|jƒ}t	||ƒƒdksÐt
‚d S )Nr   )ÚManifoldÚPatchÚCoordSystemÚBaseScalarFieldÚDifferentialrè  zx yTr`  rþ  r  z\text{M}ÚPz\text{P}_{\text{M}}Úrectz!\text{rect}^{\text{P}}_{\text{M}}z
\mathbf{x}rN  zC\operatorname{d}\left(g{\left(\mathbf{x},\mathbf{y} \right)}\right))rì  r  r   r!  r"  r#  rë  ré  r%   rà   rþ   r   rý   r!  )r  r   r!  r"  r#  ré  rý   r!  re  r  r%  rd  rN  Zs_fieldrî   rî   rï   Útest_latex_diffgeom«  s     



ÿr&  c                   C   sˆ   t dt ƒdkst‚t dt ƒdks(t‚t dt t ƒdks@t‚t dt t t ƒdks\t‚t dt t ƒdkstt‚t tƒd	ks„t‚d S )
Nr  z
5 \text{m}r  z3 \text{gibibyte}r  z\frac{4 \mu\text{g}}{\text{s}}z\frac{4 \mu \text{g}}{\text{s}}z5 \text{m} \text{m}z\text{m})	rà   rŸ   rþ   r    r¢   r£   r¥   r¡   r¤   rî   rî   rî   rï   Útest_unit_printing¾  s    r'  c                  C   s$   t dƒ} tt| | dƒƒdks t‚d S )Nr  r  z,\frac{d^{2}}{d \left(x^{*}\right)^{2}} x^{*})r#   rà   r   rþ   )r%  rî   rî   rï   Útest_issue_17092Ç  s    r(  c            
      C   sÞ  t dƒ\} }}}t ddd�\}}}t dtd�\}}}	tddd	gd
d�dksNt‚ttddd	ƒd
d�dksjt‚tdd
d�dks~t‚tdd
d�dks’t‚tddd	gdd�dks¬t‚ttddd	ƒdd�dksÈt‚tddd�dksÜt‚tddd�dksðt‚tddd	gƒdk�st‚ttddd	ƒƒdk�s"t‚tdƒdk�s4t‚tdƒdk�sFt‚ttddƒd
d�dk�sbt‚tdd
d�dk�sxt‚t dƒ} t dƒ}t dƒ}t| d d|d   d	 | d
d�dk�s¾t‚td d
d�d!k�sÔt‚ttd ƒd
d�d!k�sît‚td"d
d�d#k�st‚ttd"ƒd
d�d#k�st‚td$d
d�d%k�s4t‚ttd&ƒd' d
d�d(k�sRt‚ttd)ƒd
d�d(k�slt‚t dƒ} td*|  d d
d�d+k�s’t‚ttddd	ƒdd�dk�s°t‚ttd,d-„ ƒ ttd.d-„ ƒ ttd/d-„ ƒ d S )0Nzx y z trð   Trñ   zf g hr  r   çffffff@ç      @Úcomma©Zdecimal_separatorz#\left[ 1; \  2{,}3; \  4{,}5\right]z\left\{1; 2{,}3; 4{,}5\right\})r   r)  gffffff@z#\left( 1; \  2{,}3; \  4{,}6\right))r   z\left( 1;\right)Zperiodz\left[ 1, \  2.3, \  4.5\right]z\left\{1, 2.3, 4.5\right\}z\left( 1, \  2.3, \  4.6\right)z\left( 1,\right)g333333@g333333@z18{,}02g…ëQ¸2@rý   r!  r#  r  z#2^{y^{3{,}4}} + 5{,}3 x + z + 4{,}5g/Ý$�•ï?z0{,}987g333333Ó?z0{,}3gÿû|)v£>z5{,}8 \cdot 10^{-7}gÍÌÌÌÌÌ@gH¯¼šò×z>z5{,}7 \cdot 10^{-7}gã<sAC £>g333333ó?z1{,}2 x + 3{,}4c                   S   s   t dddgdd�S )Nr   r)  r*  Z&non_existing_decimal_separator_in_listr,  rð  rî   rî   rî   rï   ró  ú  rô  z.test_latex_decimal_separator.<locals>.<lambda>c                   S   s   t tdddƒdd�S )Nr   r)  r*  Z%non_existing_decimal_separator_in_setr,  )rà   r½   rî   rî   rî   rï   ró  û  rô  c                   S   s   t ddd�S )N)r   r)  r*  Z'non_existing_decimal_separator_in_tupler,  rð  rî   rî   rî   rï   ró  ü  rô  )	r%   r   rà   rþ   r½   r   r"   rÝ   rõ  )
rý   r!  r#  r’  r&  re  r+  r  rN  rO  rî   rî   rï   Útest_latex_decimal_separatorÌ  sD    .r-  c                  C   s$   ddl m}  t| dƒƒdks t‚d S )Nr   ©ÚStrrý   )Úsympy.core.symbolr/  Ústrrþ   r.  rî   rî   rï   Útest_Strþ  s    r2  c                   C   s.   t dƒd ddddddd	d
ddg
¡ks*t‚d S )Nz
~^\&%$#_{}r  z\textasciitildez\textasciicircumz\textbackslashz\&z\%z\$z\#z\_z\{z\})rå   Újoinrþ   rî   rî   rî   rï   Útest_latex_escape  s    
ör4  c                  C   s8   G dd„ dƒ} t | ƒ ƒdks t‚t | ƒ fƒdks4t‚d S )Nc                   @   s   e Zd Zdd„ ZdS )z#test_emptyPrinter.<locals>.MyObjectc                 S   s   dS )Nz<MyObject with {...}>rî   )rö   rî   rî   rï   Ú__repr__  s    z,test_emptyPrinter.<locals>.MyObject.__repr__N)rë   rì   rí   r5  rî   rî   rî   rï   ÚMyObject  s   r6  z'\mathtt{\text{<MyObject with \{...\}>}}z6\left( \mathtt{\text{<MyObject with \{...\}>}},\right))rà   rþ   )r6  rî   rî   rï   Útest_emptyPrinter  s    r7  c                  C   s¦   dd l } |  t¡jd jdks"t‚ttƒdks2t‚z:tj	dd� |  t¡jd jdksZt‚ttƒdksjt‚W 5 tjd= X |  t¡jd jdks’t‚ttƒdks¢t‚d S )Nr   r  r7  r8  r  )
ÚinspectÚ	signaturerà   Ú
parametersÚdefaultrþ   r   ræ   Z_global_settingsZset_global_settings)r8  rî   rî   rï   Útest_global_settings  s    
r<  c                  C   s$   dd l } |  |  t¡¡tks t‚d S )Nr   )ÚpickleÚloadsÚdumpsrà   rþ   )r=  rî   rî   rï   Útest_pickleable0  s    r@  c                  C   st   t tddƒƒdkst‚t tddddt  dfƒƒdks:t‚tdddƒ} td	ddƒ}t t| | tdgƒƒd
kspt‚d S )Nr6  )r  r  r  r  r   r   z{{A}_{2, \frac{1}{1 - x}, 0}}rþ  r  r‚  z{{\left(M N\right)}_{x, 0}})rà   rÏ   rþ   rÐ   rý   r‘   )rþ  r‚  rî   rî   rï   Ú%test_printing_latex_array_expressions5  s
    $rA  c                  C   s<   t tdƒƒ} t| ƒdkst‚t tdƒƒ} t| ƒdks8t‚d S )NrŒ  zL\left[\begin{matrix}0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9\end{matrix}\right]r	  rý  )r   r–  rà   rþ   )Zarrrî   rî   rï   Ú
test_Array<  s    rB  c                	   C   s,   t dƒ� ttt ƒdkst‚W 5 Q R X d S )NFza a)r   rà   r*  rþ   rî   rî   rî   rï   Útest_latex_with_unevaluatedD  s    
rC  (ë  Zsympyr   r   r   Zsympy.algebras.quaternionr   Z!sympy.calculus.accumulationboundsr   Z sympy.combinatorics.permutationsr   r   r	   Zsympy.concrete.productsr
   Zsympy.concrete.summationsr   Zsympy.core.containersr   r   r  r   Zsympy.core.functionr   r   r   r   r   Zsympy.core.modr   Zsympy.core.mulr   Zsympy.core.numbersr   r   r   r   r   r   r   Zsympy.core.parametersr   Zsympy.core.powerr   Zsympy.core.relationalr    r!   Zsympy.core.singletonr"   r0  r#   r$   r%   Z(sympy.functions.combinatorial.factorialsr&   r'   r(   r)   r*   r+   Z%sympy.functions.combinatorial.numbersr,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   Z$sympy.functions.elementary.complexesr;   r<   r=   r>   r?   r@   Z&sympy.functions.elementary.exponentialrA   rB   rC   Z%sympy.functions.elementary.hyperbolicrD   rE   Z#sympy.functions.elementary.integersrF   rG   rH   Z(sympy.functions.elementary.miscellaneousrI   rJ   rK   rL   r  rM   Z(sympy.functions.elementary.trigonometricrN   rO   rP   rQ   rR   rS   Z&sympy.functions.special.beta_functionsrT   Z'sympy.functions.special.delta_functionsrU   rV   Z*sympy.functions.special.elliptic_integralsrW   rX   rY   rZ   rz  r[   r\   r]   r^   r_   r`   Z'sympy.functions.special.gamma_functionsra   rb   Zsympy.functions.special.hyperrc   rd   Z)sympy.functions.special.mathieu_functionsre   rf   rg   rh   Z#sympy.functions.special.polynomialsri   rj   rk   rl   rm   rn   ro   rp   rq   Z-sympy.functions.special.singularity_functionsrr   Z+sympy.functions.special.spherical_harmonicsrs   rt   Z(sympy.functions.special.tensor_functionsru   rv   Z&sympy.functions.special.zeta_functionsrw   rx   ry   rz   r{   Zsympy.integrals.integralsr|   Zsympy.integrals.transformsr}   r~   r   r€   r�   r‚   rƒ   r„   r…   r†   Zsympy.logicr‡   Zsympy.logic.boolalgrˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   Zsympy.matrices.denser�   Z$sympy.matrices.expressions.kroneckerr�   Z"sympy.matrices.expressions.matexprr‘   Z&sympy.matrices.expressions.permutationr’   Z sympy.matrices.expressions.slicer“   Zsympy.physics.control.ltir”   r•   r–   r—   r˜   r™   rš   r›   Zsympy.physics.quantumrœ   r�   Zsympy.physics.quantum.tracerž   Zsympy.physics.unitsrŸ   r    r¡   r¢   r£   r¤   r¥   Zsympy.polys.domains.integerringr¦   Zsympy.polys.fieldsr§   Zsympy.polys.polytoolsr¨   Zsympy.polys.ringsr©   Zsympy.polys.rootoftoolsrª   r«   Zsympy.series.formalr¬   r  r­   Zsympy.series.limitsr®   Zsympy.series.orderr¯   Zsympy.series.sequencesr°   r±   r²   r³   Zsympy.sets.conditionsetr´   Zsympy.sets.containsrµ   Zsympy.sets.fancysetsr¶   r·   r¸   Zsympy.sets.ordinalsr¹   rº   r»   Zsympy.sets.powersetr¼   Zsympy.sets.setsr½   r¾   r¿   rÀ   rÁ   rÂ   rÃ   Zsympy.sets.setexprrÄ   Zsympy.stats.crv_typesrÅ   Z sympy.stats.symbolic_probabilityrÆ   rÇ   rÈ   rÉ   Zsympy.tensor.arrayrÊ   rË   rÌ   rÍ   rÎ   Z0sympy.tensor.array.expressions.array_expressionsrÏ   rÐ   Zsympy.tensor.indexedrÑ   rÒ   rÓ   Zsympy.tensor.toperatorsrÔ   Zsympy.vectorrÕ   rÖ   r×   rØ   rÙ   rÚ   rÛ   Zsympy.testing.pytestrÜ   rÝ   rÞ   rß   r–  rà   rá   râ   rã   rä   rå   ræ   Úsymrj  rç   rè   ré   rý   r!  r#  r’  r]  r*  rd  rŸ  r˜  r  r&  re  r+  rÿ   r'  r(  r,  r1  r2  r5  r9  rJ  rM  rf  rh  rk  rw  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  r  r  r  r  r  r  r   r!  r%  r&  r'  r*  r,  r.  r/  r5  r<  rB  rC  rE  rT  rX  rZ  r[  rc  rk  rn  rq  rr  rs  rx  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-  r2  r4  r7  r<  r@  rA  rB  rC  rî   rî   rî   rï   Ú<module>   sþ  $ D   ,0$($4*2"B*B
0

 





1

  p



	


@

(



9















	
w














	
	

	





	
	






.






	



	







!	!:!	$	8<		
		
	[4		2