
    g             
          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mZmZ d d!lmZmZmZmZ d d"lmZmZmZmZmZmZmZmZmZ d d#lmZ d d$lmZmZ d d%lmZmZ d d&lmZmZmZmZmZ d d'lmZ d d(lmZmZmZmZmZmZmZmZmZmZ d d)lmZ d d*lmZmZmZmZmZmZmZ d d+lmZ d d,lmZ d d-lmZ d d.lmZ d d/lmZ d d0lmZmZmZmZmZmZmZmZ d d1lmZmZ d d2lmZ d d3lmZmZmZmZmZmZmZ d d4lmZ d d5lmZ d d6lmZ d d7lmZ d d8lmZmZ d d9lmZ d d:lmZ d d;lmZ d d<lmZ d d=lmZmZmZmZ d d>lmZ d d?lmZ d d@lmZmZmZ d dAlmZmZmZ d dBlmZ d dClmZmZmZ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 dP dQe1j5                  Z5 e3dR          \
  Z6Z7Z8Z9Z:Z;Z<Z=Z>Z? e3dSdTU          \  Z@ZAZBdV ZCdW ZDdX ZEdY ZFdZ ZGd[ ZHd\ ZId] ZJd^ ZKe%d_             ZLe'd`             ZMda ZNdb ZOdc ZPdd ZQde ZRdf ZSdg ZTdh ZUdi ZVdj ZWdk ZXdl ZYdm ZZdn Z[do Z\dp Z]dq Z^dr Z_ds Z`dt Zadu Zbdv Zcdw Zddx Zedy Zfdz Zgd{ Zhd| Zid} Zjd~ Zkd Zld Zmd Znd Zod Zpd Zqd Zrd Zsd Ztd Zud Zvd Zwd Zxd Zyd Zzd Z{d Z|d Z}d Z~d Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdÄ ZdĄ Zdń ZdƄ ZdǄ ZdȄ ZdɄ Ze%dʄ             Zd˄ Zd̄ Zd̈́ Zd΄ Zdτ ZdЄ Zdф Zd҄ Zdӄ ZdԄ ZdՄ Zdք Zdׄ Zd؄ Zdل Zdڄ Zdۄ Zd܄ Zd݄ Zdބ Zd߄ Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdNS )    )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                       e Zd ZdS )
lowergammaN__name__
__module____qualname__     [/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/printing/tests/test_latex.pyr   r   a   s        Dr   r   zx y z t w a b c s pk m nTintegerc                       G d dt                     } t           | t                              dk    sJ  G d dt                     } t           | t                              dk    sJ d S )Nc                       e Zd Zd ZdS )test_printmethod.<locals>.Rc                 H    d|                     | j        d                   z  S )Nzfoo(%s)r   )_printargsselfprinters     r   _latexz"test_printmethod.<locals>.R._latexk   s    w~~dil;;;;r   Nr   r   r   r   r   r   r   Rr   j   s#        	< 	< 	< 	< 	<r   r  zfoo(x)c                       e Zd Zd ZdS )r   c                     dS )Nfoor   r   s     r   r   z"test_printmethod.<locals>.R._latexp   s    5r   Nr   r   r   r   r  ztest_printmethod.<locals>.Ro   s#        	 	 	 	 	r   r  )r<   r   x)r  s    r   test_printmethodr  i   s    < < < < <C < < < 1;;)####    C    1;;&      r   c                  %   t          dt          z             dk    sJ t          t          dz            dk    sJ t          t          dt          z   z            dk    sJ t          t          dz  t          z   dz   t          dz  z             dk    sJ t          dt          z  t          z            dk    sJ t          dt          z  t          z  d	
          dk    sJ t          dt          dz  z  t          z  d
          dk    sJ t          ddt          z  z  d
          dk    sJ t          t          t          j        dz  z            dk    sJ t          t          t          j        t          dz  dd                    dk    sJ t          t          t          j        t          dz  dd                    dk    sJ t          t          ddd                    dk    sJ t          t          ddd                    dk    sJ t          t          t          j        dt          j        d                    dk    sJ t          t          dt          dd                    dk    sJ t          t          dt          dd                    dk    sJ t          t          t          t          d          t          j        t          z  dz                       dk    sJ t          t          t          t          d          t          dd          t          z  dz                       dk    sJ t          t          t          t          d          dt          z  dz                       dk    sJ t          t          d dd                    d!k    sJ t          t          dd d                    d"k    sJ t          t          ddd                    d#k    sJ t          t          d$dd                    d%k    sJ t          t          dddd                    d&k    sJ t          t          ddd                    d'k    sJ t          t          dt          j        d                    d(k    sJ t          t          ddt          j        d                    d)k    sJ t          t          ddddt          d                    d*k    sJ t          t          dd$d                    d+k    sJ t          t          d,dddd t          t          d                    d-k    sJ t          t          d,dddt          z   d t          t          d                    d.k    sJ t          t          t          dd          t          dd/          d                    d0k    sJ t          dt          z            d1k    sJ t          dt          z  d23          d4k    sJ t          t          d           dz            d5k    sJ t          t          d           dz  d23          d6k    sJ t          dt          dz  z            d7k    sJ t          dt          t          z   z  dz            d8k    sJ t          t          dz            d9k    sJ t          t          dz  d23          d:k    sJ t          t          t          z   dt          z  z            d;k    sJ t          t          t          z   dt          z  z  d23          d<k    sJ t          t          t          z   dt          z  z  d =          d>k    sJ t          t          t          z   t          z            d?k    sJ t          t          t          z   t          z  d=          d?k    sJ t          dt          d          z  t          z  dz            d@k    sJ t          dt          d          z  t          z  dz  d=          dAk    sJ t          t          t          t                              dBk    sJ t          dC          } t          dD          }t          | dz            dEk    sJ t          | dz  dF          dGk    sJ t          t           ||           | d                    dHk    sJ t          t           ||           | d          dF          dIk    sJ t          dt          t          t                    z  dz            dJk    sJ t          dt          t          t                    z  dz  d23          dKk    sJ t          t          t                              dLk    sJ t          t          t          dd          z            dMk    sJ t          t          t          dd          z  dN          dOk    sJ t          t          t                    dz            dPk    sJ t          t          t                    d2Q          dLk    sJ t          t          t          dd          z  d2Q          dRk    sJ t          t          t                    dz  d2Q          dPk    sJ t          t          t          dd,          z            dSk    sJ t          t          t          dd,          z  d2T          dUk    sJ t          t          dz   t          dd,          z            dVk    sJ t          t          dz   t          dd,          z  d2T          dWk    sJ t          t!          t          d                              dXk    sJ t          t!          t          d          ddYg                    dZk    sJ t          t!          t          d          d[\                    d]k    sJ t          t!          t          d          ddYgd[\                    d^k    sJ t          t!          dt          d          dz  z  g d_d`\                    dak    sJ t#          j        d          }t          |j                            g db                    dck    sJ t          |j                            g db          dde          dfk    sJ t          |                    dg          d                    dhk    sJ t          |                    dg          d          dde          dik    sJ t          |                    d/          d                    djk    sJ t          dkt          z            dlk    sJ t          dkt          z  d	
          dmk    sJ t          dkt          z  dn
          dok    sJ t          dt-          t                    z            dpk    sJ t          t-          t                    d$z            dpk    sJ t          t-          t                    t          dd          z            dqk    sJ t          t-          t                    t          dd          z  d2T          drk    sJ t          t                     dsk    sJ t          t          t          z            dtk    sJ t          t          t          z  t          z            duk    sJ t          t          t          z            dvk    sJ t          t          t          z  t          z            dwk    sJ t          t          t          z  t          z            dxk    sJ t          t/          t          t                              dyk    sJ t          t          t           z	             dzk    sJ t          t/          t1          t          t                    t                              d{k    sJ t          t/          t          t1          t          t                                        d|k    sJ t          t          t          z             d}k    sJ t          t           t          d~i          dk    sJ t          t          t          z  t          d~t          di          dk    sJ t          t          t          z  t          z  t          d~t          dt          di          dk    sJ t          t          t          z  t          d~t          di          dk    sJ t          t          t          z  t          z  t          d~t          dt          di          dk    sJ t          t          t          z  t          z  t          d~t          dt          di          dk    sJ t          t/          t          t                    t          d~t          di          dk    sJ t          t          t          dd          d$d                    dk    sJ t          t          t          dd          dd                    dk    sJ t          t          t3          d          dz  d$d                    dk    sJ t          dd2          }t          t5          |           t7          |          z            dk    sJ d S )N   x + 1   zx^{2}z	x^{x + 1}   zx^{3} + x^{2} + x + 1z2 x ydot
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 1z\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)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)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})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})root_notationzx^{\frac{1}{3}}zx^{\frac{3}{2}}itexz\root{3}{x}zx^{\frac{3}{4}})fold_frac_powerszx^{3/4}z \left(x + 1\right)^{\frac{3}{4}}z\left(x + 1\right)^{3/4}z\sqrt{2}z-7 + 3 \sqrt{2}alpha)alias\alphaz3 \alpha - 7)r  r  r   rU   z\beta^{2} + 3 \beta - 7)r  r
  r  r  z%\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symbol_namesz\neg x_iy_izx_i \wedge y_i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  yr#   Halfr   r   r    r   zrM   r)   r$   r   r   r}   r   r   cyclotomic_fieldextfield_elementprimes_aboverS   r   r   r   rC   rD   )x_starr  kr0  s       r   test_latex_basicr<  u   s   Q<<8####A;;(""""QU,,,,AA1$%%)AAAAA1Q<<8####1Q5)))-AAAAA1a4e,,,>>>>QTe,,,0BBBBBAFAI/1111QVQT266677;_____QVQT1u55566:VVVVVRe,,,--1SSSSSQU+++,,0DDDDDQVR%88899=gggggQ1u---..(::::Q2...//3IIIIISAYYq1--..2WWWWWSAYYAq 01 45566:aaaaaSBZZ1q))**.LLLLLQE***++|;;;;QE***++|;;;;QE***++|;;;;RU+++,,0DDDDDQ1u---..2FFFFFQE***++|;;;;Q///004JJJJJQ16E22233&' ' ' 'Q1aU33344&' ' ' 'QU+++,,0DDDDDQ1aAq5999::01 1 1 1Q1ac1aU;;;<<56 6 6 6Xa^^Xa^^eDDDEE() ) ) ) 1::''''1d+++x7777!A$$q>>-----!A$$q$///:====1a4==.....AE1!BBBBB1::''''1d+++x7777!a%!A##77777!a%!A#555#$ $ $ $!a%!A#222+, , , ,!a%11111!a%A...2DDDDD!DGG)A+q!!%>>>>>!DGG)A+q!444!" " " "!Q  $55555E]]FA88888u555GGGGAAfIIva00115uuuuuAAfIIva00UKKK  PE  E  E  E  E8Aq>>!!#$$(BBBBB8Aq>>!!#T:::)* * * * a>>[((((HQNN"##~5555HQNN"%888<NNNNNa! 22222at$$$3333HQNN"....@@@@a!$'''+=====HQNN"##'99999HQNN"T:::jHHHH!a%(1a..())+, , , ,!a%(1a..(4@@@#$ $ $ $a))**k9999a1b'22337IIIIIa88899YFFFFa1b'AAABB   QqTT!VjjjGGGHH"# # # # 	AA$$\\\223301 1 1 1$$\\\22%@@@01 1 1 1##A&''34 4 4 4##A&e44467 7 7 7""1%&&*;;;;;??44444e,,,0LLLLLg...&' ' ' ' 3q66??@@@@@Q BBBBBQ!Q'((./ / / /Q!Q'$???&' ' ' ' !99	!!!!Q<<=((((Q55555Q<<;&&&&Q11111!a%1!BBBBBA#5555517 ;;;;;Aa!$$%%)OOOOOBqGG$$%%)OOOOO1q5??=====!1e*---<<<<Qa5%9:::   Q!UAua)GHHH$% % % %Qa5%9:::oMMMMQ!UAua)GHHH ! ! ! !!a%1Aua5+IJJJ/0 0 0 0Aa5-ABBB   Xa^^R%88899=UUUUUXa^^R%88899=[[[[[WQZZ^R%88899=WWWWW 	sT"""AaRQ  $DDDDDDDr   c                      t          d          dk    sJ t          d          dk    sJ t          d           dk    sJ t          t                    dk    sJ t          t                    dk    sJ d S )NTz\text{True}Fz\text{False}z\text{None})r   r   r   r   r   r   test_latex_builtinsr>    s{    ;;.((((<<?****;;.((((;;.((((<<?******r   c                  0   t          t          t          dd                    dk    sJ t          t          t          dd                    dk    sJ t          t          t          dd                    dk    sJ t          t          t          t          t                              dk    sJ t          t          t          dd	                    d
k    sJ t          t          t          dd                    dk    sJ t          t          t          dd          dz            dk    sJ t          t          t          dd          dz            dk    sJ t          t          t          dd          dz            dk    sJ t          t          t          t          t                    dz            dk    sJ t          t          t          dd	          dz            dk    sJ t          t          t          dd          dz  dz            dk    sJ 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   rs   r  anr   r   r   test_latex_SingularityFunctionrC    se   $Q1--..12 2 2 2$QA..//12 2 2 2$Q1--..-. . . .$Q1--..34 4 4 4$Q2..//23 3 3 3$Q2..//23 3 3 3 $Q1--q0119: : : :$QA..1229: : : :$Q1--q01156 6 6 6$Q1--q011;< < < <$Q2..122:; ; ; ;%aB//2Q677:; ; ; ; ; ;r   c                      t          t          ddd                    dk    sJ t           t          dd          ddd                    dk    sJ t          t                                dk    sJ 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   test_latex_cyclerI  /  s    q!Q  $>>>>>q!Q1%%&&56 6 6 6>>.......r   c                  t   t          t          ddd                    dk    sJ t           t          dd          ddd                    dk    sJ t          t                                dk    sJ t          t          dd          t          d          z            d	k    sJ t          t          d                    d
k    sJ t          t          dd          d          dk    sJ t           t          dd          dd          d          dk    sJ t          t                      d          dk    sJ t                      5  t          j        } dt          _        t           t          dd          dd                    dk    sJ | t          _        d d d            d S # 1 swxY w Y   d S )Nr  r
  r  rE  r  rF  rG  rH  z"\left( 2\; 4\right)\left( 5\right)z\left( 5\right)r   F)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   print_cyclic)old_print_cyclics    r   test_latex_permutationrN  6  s>   Q1%%&&*DDDDD"Q""1a++,,56 6 6 6#44444Q"";q>>122-. . . .Q  $66666Q""66678 8 8 8"Q""1a((e<<<GH H H HE222    
 	!	! 4 4&3#( &[A&&q!,,--KL L L L#3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s   AF--F14F1c                     t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d          d          dk    sJ t          t          d          d	d
d          dk    sJ t          t          d          d	d
d          dk    sJ t          t          d          d	d
d          dk    sJ t          t          d          dd
d          dk    sJ d S )Ng}Ô%ITz1.0 \cdot 10^{100}g0.++z1.0 \cdot 10^{-100}r(  r  z1.0 \times 10^{-100}z10000.0Fr.  r
  )	full_precminmaxz1.0 \cdot 10^{4}r  r  z0.099999Tz9.99990000000000 \cdot 10^{-2})r   r   r   r   r   test_latex_FloatrS  M  sE   w  $99999x!!%;;;;;xW555       y!!UBBB   y!!UBBB   y!!UBBB   z""dCCC)* * * * * *r   c                  h	   t          d          } t          t          | j        | j        | j        z  dz  | j        z                       dk    sJ t          t          | j        | j                            dk    sJ t          t
          t          | j        | j                  z            dk    sJ t          t          t
          | j        z  | j                            dk    sJ t          t          d| j        z  | j        z                      dk    sJ t          t          d| j        z  | j        z  | j        z                       dk    sJ t          t          dt
          z  | j        z  | j        z                      d	k    sJ t          t
          t          d| j        z  | j        z            z            d
k    sJ t          t          d| j        z  | j        z  | j        z                       dk    sJ t          t          d| j        z  | j        z                      dk    sJ t          t
          t          d| j        z  | j        z            z            dk    sJ t          t          | j        | j        | j        z  dz  | j        z                       dk    sJ t          t          | j        | j                            dk    sJ t          t          t
          | j        z  | j                            dk    sJ t          t
          t          | j        | j                  z            dk    sJ t          t          | j                            dk    sJ t          t          | j        d| j        z  z                       dk    sJ t          t
          t          | j                  z            dk    sJ t          t          t
          | j        z                      dk    sJ t          t          | j                            dk    sJ t          t          | j        d| j        z  z                       dk    sJ t          t
          t          | j                  z            dk    sJ t          t          t
          | j        z                      dk    sJ 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   r3  r   )rU  s    r   test_latex_vector_expressionsrX  \  s   3AqsACGAIacM**++~   qsAC!!;< < < <5ac??"##JK K K Kquac""##XY Y Y Y aeACi!!XY Y Y YaeACim$$%%op p p pac!#gack""##Z[ [ [ [4!#ac	??"##gh h h h AacE!#IacM**++no o o oAacE!#I&&''WX X X X:aeACi((())fg g g g QS!#ac'!)AC-(())}~ ~ ~ ~QS!#:; ; ; ;QqsUAC!!UV V V V3qsAC==!!IJ J J J !##=====!#!#+&&''DE E E E8AC==!!%NNNNN!AC%!!%NNNNN13  $>>>>>1313;''((DE E E E9QS>>!""&OOOOO1QS5!!""&OOOOOOOr   c                  :   t          d          \  } }}t          d          \  }}}}t          |          dk    sJ t          |          dk    sJ t          |          dk    sJ t          |          dk    sJ d t          D             }t          |t	          t          j                              z
            dk    sJ t          | |z             dk    sJ t          | |z            dk    sJ t          t          d	                    d
k    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d          t          d          z            d k    sJ d S )!NzGamma, lambda, rhoztau, Tau, TAU, taU\tau
\mathrm{T}c                 6    h | ]}|                                 S r   )
capitalize).0ls     r   	<setcomp>z%test_latex_symbols.<locals>.<setcomp>  s     EEEa1<<>>EEEr   r   z\Gamma + \lambdaz\Gamma \lambdaq1zq_{1}q21zq_{21}epsilon0z\epsilon_{0}omega1
\omega_{1}91	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}omegarU   z\omega^{\beta})r&   r   r   lensetr   keysr$   )Gammalmbdarhor   TauTAUtaUcapitalized_letterss           r   test_latex_symbolsrs    s    455E5# !566Cc3::    ::&&&&::    ::    EE3DEEE"S)=)B)D)D%E%EEFF!KKKK#66666#44444(****9,,,,
##$$7777!!""m3333%''''$$%%8888!!""k1111	""##}4444%%&&*;;;;;	""##'88888*++,,0JJJJJF6NN2337HHHHHHHr   c                      t          d          \  } }}t          || z  |k              dk    sJ t          ||z  | z  dk              dk    sJ t          |dz  |dz  z            dk    sJ 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   )rn  massvolumes      r   test_latex_symbols_failingrx    s     344Cv !HI I I I$$)**:; ; ; ;q619$%%:; ; ; ; ; ;r   c                  Z   t          t          t                              dk    sJ t          t          d          t          d          z             dk    sJ t          d          } t           | t                              dk    sJ t          |           dk    sJ t          d          }t           |t          t                              dk    sJ t          |          dk    sJ t          d	          }t           |t          t          t
                              d
k    sJ t          |          d	k    sJ t          d          }t          |          dk    sJ t           |t                              dk    sJ t          d          }t           |t          t          t
                              dk    sJ t          t          t          t                              dk    sJ t          t          t          d                    dk    sJ t          t          t          t                    dz            dk    sJ t           |t                              dk    sJ t          |          dk    sJ t          d          }t           |t          t          t
                              dk    sJ t           |t                              dk    sJ t          |          dk    sJ t          d          }t          |          dk    sJ t           |t                              dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                     d!k    sJ t          t          d"                    d#k    sJ t          t          d$                    d!k    sJ t          t          d%                    d#k    sJ t          t          d&                    d'k    sJ t          t          d(                    d)k    sJ t           t          d          t          d*                              d+k    sJ t           t          d           t          d*                              d,k    sJ t           t          d"          t          d*                              d-k    sJ t           t          d$          t          d*                              d,k    sJ t           t          d&          t          d*                              d.k    sJ t           t          d(          t          d*                              d/k    sJ t           t          d                      dz            d0k    sJ t           t          d                       dz            d1k    sJ t           t          d"                      dz            d2k    sJ t           t          d$                      dz            d1k    sJ t           t          d%                      dz            d2k    sJ t           t          d          t          d*                    dz            d3k    sJ t           t          d           t          d*                    dz            d4k    sJ t           t          d"          t          d*                    dz            d5k    sJ t           t          d$          t          d*                    dz            d4k    sJ t           t          d%          t          d*                    dz            d5k    sJ t          t          d6                    d6k    sJ t          t          d7                    dk    sJ t          t          d8                    d9k    sJ t          t          d                    dk    sJ t          t          d:                    d9k    sJ t           t          d6                                d;k    sJ t           t          d7                                d<k    sJ t           t          d8                                d=k    sJ t           t          d                                d<k    sJ t           t          d:                                d=k    sJ t           t          d6                      dz            d>k    sJ t           t          d7                      dz            d?k    sJ t           t          d8                      dz            d@k    sJ t           t          d                      dz            d?k    sJ t           t          d:                      dz            d@k    sJ t           t          d6          t          d*                    dz            dAk    sJ t           t          d7          t          d*                    dz            dBk    sJ t           t          d8          t          d*                    dz            dCk    sJ t           t          d          t          d*                    dz            dBk    sJ t           t          d:          t          d*                    dz            dCk    sJ t           t          d6                      dDz            dEk    sJ t           t          d7                      dDz            dFk    sJ t           t          d8                      dDz            dGk    sJ t           t          d                      dDz            dFk    sJ t           t          d:                      dDz            dGk    sJ t           t          d6          t          d*                    dDz            dHk    sJ t           t          d7          t          d*                    dDz            dIk    sJ t           t          d8          t          d*                    dDz            dJk    sJ t           t          d          t          d*                    dDz            dIk    sJ t           t          d:          t          d*                    dDz            dJk    sJ t           t          d6                      t          z            dKk    sJ t           t          d7                      t          z            dLk    sJ t           t          d8                      t          z            dMk    sJ t           t          d                      t          z            dLk    sJ t           t          d:                      t          z            dMk    sJ t           t          d6          t          d*                    t          z            dNk    sJ t           t          d7          t          d*                    t          z            dOk    sJ t           t          d8          t          d*                    t          z            dPk    sJ t           t          d          t          d*                    t          z            dOk    sJ t           t          d:          t          d*                    t          z            dPk    sJ t          d          }t           t          d6                      |z            dQk    sJ t           t          d7                      |z            dRk    sJ t           t          d8                      |z            dSk    sJ t           t          d                      |z            dRk    sJ t           t          d:                      |z            dSk    sJ t           t          d6          t          d*                    |z            dTk    sJ t           t          d7          t          d*                    |z            dUk    sJ t           t          d8          t          d*                    |z            dVk    sJ t           t          d          t          d*                    |z            dUk    sJ t           t          d:          t          d*                    |z            dVk    sJ t           t          dW          t                              dXk    sJ t           t          dW          t                    |z            dYk    sJ t           t          dZ          t                              dXk    sJ t           t          dZ          t                    |z            dYk    sJ t           t          d[          t                              d\k    sJ t          d]          }t          |          d^k    sJ t           |t                              d_k    sJ t          t          t                              d`k    sJ t          t          t                    dab          dck    sJ t          t          dt          dz  z            dab          ddk    sJ t          t          t          dz            dab          dek    sJ t          t          t                    dz            dfk    sJ t          t          t                    dz  dgh          dik    sJ t          t          t                    dz  djh          dkk    sJ t          t          t          dz            djdal          dmk    sJ t          t          t                    dgh          dnk    sJ t          t          t                    dgh          dok    sJ t          t          t                              dpk    sJ t          t          t                               dqk    sJ t          t          t                    dz            drk    sJ t          t          t                              dsk    sJ t          t          t                               dtk    sJ t          t          t                    dz            duk    sJ t          t!          t                              dvk    sJ t          t!          t                               dwk    sJ t          t!          t                    dz            dxk    sJ t          t#          dt                              dyk    sJ t          t#          dt                    dz            dzk    sJ t          t%          d{t                              d|k    sJ t          t'          d{t                              d}k    sJ t          t)          t                              d~k    sJ t          t+          t                              dk    sJ t          t-          t                              dk    sJ t          t)          t                    dz            dk    sJ t          t+          t                    dz            dk    sJ t          t-          t                    dz            dk    sJ t          t/          t          dt          d{z                      dk    sJ t          t/          t          t                    dz            dk    sJ t          t1          t          dt          d{z                      dk    sJ t          t1          t          t                    dz            dk    sJ t          t3          t                              dk    sJ t          t3          t                    dz            dk    sJ t          t5          t                              dk    sJ t          t5          t          t          z                       dk    sJ t          t7          t                              dk    sJ t          t9          t                              dk    sJ t          t9          t                    dz            dk    sJ t          t9          t          dz                      dk    sJ t          t;          t                              dk    sJ t=          d          }t          t;          |                    dk    sJ t          t?          t                              dk    sJ t          t?          t          t                              dk    sJ t          t?          t          t          df                    dk    sJ t          t?          t          t          t@          f                    dk    sJ t          t?          t          t          z
  t          t          f                    dk    sJ t          t?          t          t          t                              dk    sJ t          t?          t          t          t                              dk    sJ t          t?          t          t          t@          ft          t@          f                    dk    sJ t          tC          t          t                              dk    sJ t          tC          t          t                    dz            dk    sJ t          tE          t          t                              dk    sJ t          tE          t          t                    dz            dk    sJ t          tG          t                              dk    sJ t          tI          t                              dk    sJ t          t5          t                              dk    sJ t          t7          t                              dk    sJ t          tK          t          t                              dk    sJ t          tM          t                              dk    sJ t          tO          t                              dk    sJ t          tO          t                    dz            dk    sJ t          tO          t          t                              dk    sJ t          tO          t          t                    dz            dk    sJ t          tQ          t                              dk    sJ t          tQ          t                    dz            dk    sJ t          tS          t          t                              dk    sJ t          tS          t          t                    dz            dk    sJ t          tU          t          t          tV                              dk    sJ t          tU          t          t          tV                    dz            dk    sJ t          tY          t                              dk    sJ t          tY          t                    dz            dk    sJ t          tY          t          t                              dk    sJ t          tY          t          t                    dz            dk    sJ t          t[          t
                              dk    sJ t          t[          t
                    dz            dk    sJ t          t]          t          t                              dk    sJ t          t]          t          t                    dz            dk    sJ t          t_          t          t                              dk    sJ t          t_          t          t                    dz            dk    sJ t          t_          t
                              dk    sJ t          t_          t
                    dz            dk    sJ t          ta          t          t          t
                              dk    sJ t          ta          t          t          t
                    dz            dk    sJ t          ta          t          t                              dk    sJ t          ta          t          t                    dz            dk    sJ t          tc          t                              dk    sJ t          tc          t                    dz            dk    sJ t          te          t          t                              dk    sJ t          te          t          t                    dz            dk    sJ t          tg          t                    dz            dk    sJ t          ti          t                    dz            dk    sJ t          tk          t                    dz            dk    sJ t          tm          t                    dz            dk    sJ t          tm          t                              dk    sJ t          to          tV          t          tp          t                              dk    sJ t          to          tV          t          tp          t                    dz            dk    sJ t          ts          tV          t          t                              dk    sJ t          ts          tV          t          t                    dz            dk    sJ t          tu          tV          t                              dk    sJ t          tu          tV          t                    dz            dk    sJ t          tw          tV          t                              dk    sJ t          tw          tV          t                    dz            dk    sJ t          ty          tV          t                              dk    sJ t          ty          tV          t                    dz            dk    sJ t          t{          tV          t          t                              dk    sJ t          t{          tV          t          t                    dz            dk    sJ t          t}          tV          t                              dk    sJ t          t}          tV          t                    dz            dk    sJ t          t          tV          t          t                              dk    sJ t          t          tV          t          t                    dz            dk    sJ t          t          tV          t                              dk    sJ t          t          tV          t                    dz            dk    sJ t          dda֦          }	t          dda֦          }
t          t          tV          t          |	|
                    dk    sJ t          t          tV          t          |	|
          d{z            dk    sJ t          t          tV          t          |	|
                    dk    sJ t          t          tV          t          |	|
          d{z            dk    sJ t          t          d                    dk    sJ t          t          d          d{z            dk    sJ t          t          tV                              dk    sJ t          t          tV                    dz            dk    sJ t          t          tV                              dk    sJ t          t          tV                    dz            dk    sJ t          t          t                              dk    sJ t          t          t                    dz            dk    sJ t          t          t          t                              dk    sJ t          t          t          t                    dz            dk    sJ t          t          t                              dk    sJ t          t          t                    dz            dk    sJ t          t          t          t                              dk    sJ t          t          t          t                    dz            dk    sJ t          t          tV                              dk    sJ t          t          tV                    dz            dk    sJ t          t          tV                              dk    sJ t          t          tV                    dz            dk    sJ t          t          tV                              dk    sJ t          t          tV          d                    dk    sJ t          t          tV          t                              dk    sJ t          t          tV                    t          tV                    z            dk    sJ t          t          t          tV                    d                    dk    sJ t          t          tV                    t          z            dk    sJ t          t          tV          t                    t          z            dk    sJ t          t          t          d                    dk    sJ t          t          t          dz   d                    dk    sJ t          t          dt          dz                       dk    sJ t          t          dt          z  d                    dk    sJ t          t          ddt          z                      dk    sJ t          t          t          d          dz             dk    sJ t          dt          t          d          z            dk    sJ t          t          ddt          z            tV          z            dk    sJ t          d          }t           |t                              dk    sJ t          |          d k    sJ 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)}rU   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)}\betarb   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}ab1z\operatorname{ab}_{1}ab12z\operatorname{ab}_{12}ab_1ab_12ab_cz\operatorname{ab}_{c}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)}rA  a1a12za_{12}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)}a__12a_1__1_2za^{1}_{1 2}{\left(x \right)}rd  re  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})r  r  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})Or   rC   r  r   r3  r5  rU   r$   rA  rS   rP   rO   rE   r*   r;  r,   r+   r)   r'   r(   rH   rG   rI   rK   rJ   r<   rA   r?   r>   rb   r%   r   r   r   rc   rR   rF   rL   r=   r|   rx   rz   ry   rB  r{   rZ   rY   rX   r[   r^   ra   r_   r`   r]   r\   rp   brn   rl   rm   rr   rk   rq   rj   ro   rt   mru   r@   r:   r;   r5   r6   r8   r9   rB   r    r0  r   )r  rz  r{  r|  mybetar  r  rd  r  r  r  r  s               r   test_latex_functionsr    s(   Q==H$$$$Q#a&&!!\1111A1;;/////88tA1a>>4444488tA1a 9999988t	$B99,,,,,A<<@@@@@fF1a!!%BBBBBa DDDDDa%((())-QQQQQaQ#KKKKK88888==H$$$$A1a >>>>>1;;4444488y    
5//C::!!!!Q==55555%!!X----
 $  $88888%!!%=====&!!""&?????&!!""&>>>>>'""##'@@@@@&!!""&>>>>>'""##'@@@@@$s,,--1VVVVV%--..2[[[[[!&!!&++..//3]]]]]!&!!&++..//3\\\\\!&!!&++..//3\\\\\"'""6#;;//004^^^^^ $!!1$%%)QQQQQ%""A%&&*VVVVV!&!!##Q&''+XXXXX!&!!##Q&''+WWWWW"'""$$a'((,YYYYY$s,,a/004]]]]]%--q0115bbbbb!&!!&++..1226ddddd!&!!&++..1226ccccc"'""6#;;//23367 7 7 7
 #4''''$  H,,,,%!!Y....%!!X----&!!""i//// #!!%99999$!!""&>>>>>%""##'@@@@@%""##'?????!&!!##$$(AAAAA #!#$$(@@@@@$!!1$%%)EEEEE%""A%&&*GGGGG%""A%&&*FFFFF!&!!##Q&''+HHHHH#vc{{++Q.//3LLLLL$s,,a/004QQQQQ%--q0115SSSSS%--q0115RRRRR!&!!&++..1226TTTTT#"$%%)BBBBB$!!2%&&*GGGGG%""B&''+IIIII%""B&''+HHHHH!&!!##R'((,JJJJJ#vc{{++R/004NNNNN$s,,b0115SSSSS%--r1226UUUUU%--r1226TTTTT!&!!&++..2337VVVVV#!#$$(@@@@@$!!1$%%)EEEEE%""A%&&*GGGGG%""A%&&*FFFFF!&!!##Q&''+HHHHH#vc{{++Q.//3LLLLL$s,,a/004QQQQQ%--q0115SSSSS%--q0115RRRRR!&!!&++..1226TTTTT	B#"$%%)BBBBB$!!2%&&*GGGGG%""B&''+IIIII%""B&''+HHHHH!&!!##R'((,JJJJJ#vc{{++R/004NNNNN$s,,b0115SSSSS%--r1226UUUUU%--r1226TTTTT!&!!&++..2337VVVVV!&!!!$$%%)CCCCC!&!!!$$*++/[[[[["'""1%%&&*DDDDD"'""1%%+,,0\\\\\%*%%a(())-LLLLL hF==M))))=====Q==44444QD111[@@@@Qq!tV666   QTt444    a! KKKKKa!F333'( ( ( (a!G444)* * * *adG$(* * *    a00012 2 2 2q&11112 2 2 2 1%''''A2#777771q!!Y....a!!U****qb!!""&:::::a!#$$(>>>>>A6))))QB  $99999A!""j0000!Q  $55555!Q"##'<<<<<!!Q''((,CCCCCA&&''+BBBBBq??===== =====a>>CCCCCq1!DDDDDQ#DDDDDa! JJJJJQ1a4!!%DDDDDQA">>>>>Q1a4!!%DDDDDQA">>>>>Q==/////Q66666A<<?????AEPQ Q Q QA<<?????1/11111q!!%888881a4!!%88888q??55555S		Aq??55555q??00000q!!33333q1a&!!""&88888q1b'""##'NNNNNq1uq!f%%&&./ / / /q!Q  RS S S Sq!Q  RS S S Sq1b'Ar7++,,\] ] ] ]Aq!!""&@@@@@Aq!!1$%%)GGGGGAq!!""&@@@@@Aq!!1$%%)GGGGGQ==44444a>>66666A<<?????A<<?????a 22222Q==44444a>>33333a! :::::a 99999aQ#@@@@@q!!""&;;;;;q!!1$%%)BBBBBA#IIIII1q GH H H H!Q""##'BBBBB!Q""A%&&*IIIII1-////1q!!%666661a!!%@@@@@1a!#$$(GGGGGA#55555A!""&<<<<<Aq!!""&BBBBBAq!!1$%%)IIIIIAq!!""&BBBBBAq!!1$%%)IIIIIA#55555A!""&<<<<<Q1%%&&*KKKKKQ1%%q())-. . . .Q""##'EEEEEQ""A%&&*LLLLLA<<@@@@@A??GGGGG1"GGGGG1q!!%NNNNNQIIIIIA??GGGGGA??GGGGGQFFFFFQ==?????1a##$$12 2 2 21a##Q&''BC C C CAq!$$%%/0 0 0 0Aq!$$a'((@A A A AAq!!""&<<<<<Aq!!1$%%/0 0 0 0Aq!!""&<<<<<Aq!!1$%%/0 0 0 0!Q  $:::::!Q"##'NNNNN1a(())/0 0 0 01a((!+,,@A A A A!Q  $:::::!Q"##'NNNNN1a(())/0 0 0 01a((!+,,@A A A AA#99999A!""&MMMMM7&&&E
T
"
"
"CQ5#&&''+OOOOOQ5#&&)**=> > > >Q5#&&''+OOOOOQ5#&&)**=> > > > A67 7 7 7A!"":; ; ; ;  55555q!!%KKKKK##$$(@@@@@##q())12 2 2 2 q!!""&=====q!!1$%%)DDDDDq!$$%%)BBBBBq!$$a'((,IIIII""##'@@@@@""A%&&*GGGGG1%%&&*EEEEE1%%q())-LLLLL 44444q!!%JJJJJA#:::::A!#$$01 1 1 1 !!33333!R!!%<<<<<!Q  $:::::!x{{*++/EEEEEXa[[!$$%%)?????!a  $:::::!Q"##'AAAAAQ|++++QUA#@@@@@QA#@@@@@QUA>1111QA>1111QQ#@@@@@SAYY#>>>>>QA!""&EEEEE WEq??FFFFF<<2222222r   c                       G d dt                     } t          |           dk    sJ t           | t                              dk    sJ d S )Nc                       e Zd ZdS )6test_function_subclass_different_name.<locals>.mygammaNr   r   r   r   mygammar  "  s        r   r  z\operatorname{mygamma}z'\operatorname{mygamma}{\left(x \right)})rb   r   r  )r  s    r   %test_function_subclass_different_namer  !  sl        %   >>66666 JJJJJJJr   c                  8   ddl m} m} t          t	          t          t          t          |           t          d          dt          dddt          z            |                    dk    sJ t          t	          t                      t          d          dt                      |                    d	k    sJ t          t          | dfd
|                    dk    sJ t          t          t                      t          d          |                    dk    sJ d S )Nr   r  r5  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  r5  r   re   r   r   rd   r  s     r   test_hyper_printingr  (  s9   r2q))588q!QrT!2!2A7 7 8 8	<< < < < %((D%''1==>>^_ _ _ _1vtQ''((	22 2 2 2 uwwa!,,--	22 2 2 2 2 2r   c                  4   ddl m} m}m}m}m}m}m}m}m	}m
}	 ddlm}
 t           | t          |
dz            t          z            dk    sJ t           |t          |
                    dk    sJ t           |t          |
                    dk    sJ t           |t          |
                    dk    sJ t           |t          |
dz            dz            d	k    sJ t           |t          |
                    d
k    sJ t           |t          |
                    dk    sJ t           |t          |
                    dk    sJ t           |t          |
                    dk    sJ t           |	t          |
                    dk    sJ d S )Nr   )
besseljbesselybesselibesselkhankel1hankel2jnynhn1hn2r5  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))sympy.functions.special.besselr  r  r  r  r  r  r  r  r  r  r  r5  r   rB  r;  )r  r  r  r  r  r  r  r  r  r  r5  s              r   test_latex_besselr  9  s.   B B B B B B B B B B B B B B B B B B B B B B B B AqD!!1$%%)GGGGGA#99999A#99999A#99999AqD!!1$%%9: : : :A#?????Aq??44444Aq??44444Q;;;;;Q;;;;;;;r   c                     ddl m} m} ddlm} t           | |                    dk    sJ t           ||                    dk    sJ t           | |          dz            dk    sJ t           ||          dz            dk    sJ d S )	Nr   )fresnelsfresnelcr  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_functionsr  r  r  r5  r   )r  r  r5  s      r   test_latex_fresnelr  K  s    LLLLLLLL!!33333!!33333!a  $:::::!a  $:::::::r   c                  @    t          dt          z            dk    sJ d S )Nr  z\left(-1\right)^{x}r   r  r   r   r   test_latex_bracketsr  T  s$    "q>>3333333r   c                  h   t          ddd          } t          t          ddd                    }t          | t          |           z            }t          |d         t          |d                   z            }|dk    sJ |dk    sJ d	}t          t	          d
t          d                              dk    sJ t          t	          dt          d                              dk    sJ t          t	          dt          dt          d                                        d|z   dz   k    sJ t          t	          dt          dt          d          dz                                 d|z   dz   k    sJ t          t	          dt          dt          d          t          d          f                              d|z   dz   k    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ d S )NPsi_0TF)complexr  Psir   z\Psi_{0} \overline{\Psi_{0}}z \overline{{\Psi}_{0}} {\Psi}_{0}z\mathrel{..}\nobreak x1rV  z{x_{1}}_{i}x2z{x_{2}}_{i}x3Nz{x_{3}}_{{i}_{0zN - 1}}r  zN}}x4rA  r  z{x_{4}}_{{i}_{azb}}rb   r~  za ba_bza_{b})r$   r   r   r>   r   r   )
Psi_symbolPsi_indexedsymbol_latexindexed_latexintervals        r   test_latex_indexedr  X  s!   E:::JfUDuEEEFFKi
&;&;;<<L+a.9[^+D+DDEEM:::::????? )Hvc{{++,,>>>>s3xx(())^;;;;s3s445566:LX:UV_:_____s3sA667788<Nx<WX]<]]]]]s3VC[[(ABBCCDDHZ[cHcdiHiiiiiW%%&&)3333U##$$....U##$$000000r   c                  .   t          t          t          dz  t          d                    dk    sJ t          t          t          t                    t          dz  z   t          d                    dk    sJ t          t          t          t          t                    t          dz  z   t          d          d                    dk    sJ t          t          t          t          t          t                    t          dz  z   t          d          d          d                    dk    sJ t          t          t          t          t          z            t          d                    d	k    sJ t          t          t          t          t          z            t          dz  z   t          d                    d
k    sJ t          t          t          t          t          t          z            t          dz  z   t          d          t          d                    dk    sJ t          t          t          t          t          t          t          z            t          dz  z   t          d          t          d          t          d                    dk    sJ t          d          } t          t          t           | t          t                    t          d          t          d                    dt           | t          t                              z   k    sJ t          t          t          t           | t          t                    t          d          t          d          t          d                    dt           | t          t                              z   k    sJ t          t          t          t          dz  t          d           t          d                    dk    sJ t          t          t          t          t          t          t          d          t          d           t          d          t          d                    dk    sJ t          t          t          t          t           t          z            t          dt          f          t          d                    dk    sJ t          t          t          t          d          dz            dk    sJ t          t           | t                    t                    dz            dk    sJ t          t           | t                    t          t          f                    dk    sJ t          d          }t          d          }t          t           | ||          |                    dk    sJ t          d          }t          t           | t                    t          |f                    dk    sJ t          d          }t          t           | t                    t          t          ||          f                    dk    sJ t          t           | t                    t                    d          d k    sJ 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diff_operatorz2\frac{\mathrm{d}}{\mathrm{d} x} f{\left(x \right)})r   r   r  rS   r3  r   r}   rC   r   rB  r$   rJ   )r  r  r  r  r  s        r   test_latex_derivativesr  m  s   adA...//   c!ffq!tmQ77788CD D D Dd3q66AqD=!e<<<uMMMNNKL L L L d4AAq5AAAERRR]bcccddKL L L L c!a%jj!e44455>? ? ? ?c!a%jj1a4'U;;;<<ST T T Td3qs88ad?A>>>ERRRSS[\ \ \ \d4AaC1a4UCCCQQVWWWYZejkkkll[\ \ \ \ 	Ad11Q77A666EJJJKK5aa1ggFG G G G d4!QU;;;QOOOQR]bcccdd9E!!Aq''NNJK K K K tAqDE22221eDDDEEI|||||dDa5!9!9!9!UKKKKAW\]]]^_inoooppGH H H H hsA2a4yy1a*55q5IIIJJ@A A A A aU+++Q.//+, , , , aaddA!""<= = = = aaddQF##$$34 4 4 4 
B	BaaBii$$%%)hhhhh	BaaddQG$$%%)\\\\\	BaaddQB,--..kl l l l aaddAd3337lllllllr   c                      t          t          t          t          z  t          t          fd                    dk    sJ d S )Nr  r
  z+\left. x y \right|_{\substack{ x=1\\ y=2 }})r   r   r  r3  r   r   r   test_latex_subsr    s6    acAq66**++/]]]]]]]r   c                  	   t          t          t          t                    t                              dk    sJ t          t          t          dz  t          ddf                    dk    sJ t          t          t          dz  t          ddf                    dk    sJ t          t          t          t          dz  z  t          ddft                              d	k    sJ t          t          t          t          dz  z  t          ddft                    d
          dk    sJ t          t          t          t          dz  z  t          ddft                    d
d          dk    sJ t          t          t          t          df                    dk    sJ t          t          t          t          z  t          t                              dk    sJ t          t          t          t          z  t
          z  t          t          t
                              dk    sJ t          t          t          t          z  t
          z  t          z  t          t          t
          t                              dk    sJ t          t          t          t          t          t          t          t          t                              dk    sJ t          t          t          t          t          t
          ddf                    dk    sJ t          t          t          t          dz  t                     t                              dk    sJ t          t          t          t          t          t                     t                     t                              dk    sJ t          t          t
          t
                    dz            dk    sJ t          t          t          t
          z   t
                              dk    sJ t          t          t          t
          dz  z   t
                              dk    sJ t          t          t          t          z  t
                              dk    sJ t          t          t          t                    d          dk    sJ t          t          t          t          ddf          d          dk    sJ 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}   rD   r  r3  r5  tr   r   r   test_latex_integralsr    s   #a&&!$$%%)KKKKK!Q$Aq	**++)* * * *!Q$B,,--+, , , ,!AqD&1a)Q//0045 5 5 5!AqD&1a)Q//kBBBTU U U U!AqD&1a)Q//kMMM45 5 5 5!aV$$%%)BBBBB!A#q!$$%%)?????!A#a%Aq))**.LLLLL!A#a%'1aA..//./ / / /!Q1aA..//CD D D D!QAq!9--..78 8 8 8 8AqD+++A..//34 4 4 48Xa]]N1555a8899HI I I I !Q"##'FFFFF!a%##$$(GGGGG!AaC%##$$12 2 2 2!Q$""##'99999 !Qt4448OOOOO!aAY''t<<<@fffffffr   c            	      F   t           t          fD ]} t           | t          t          z  t          dz  g                    dk    sJ t           | t          dd                              dk    sJ t           | t          dd                              dk    sJ t          } t           | t          t          z  t          dz  g           dk    sJ t           | t          dd                     dk    sJ t           | t          dd                     dk    sJ d S )Nr
  z\left\{x^{2}, x y\right\}r  rF  z\left\{1, 2, 3, 4, 5\right\}   z4\left\{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12\right\})	frozensetrj  r   r  r3  ranger   ss    r   test_latex_setsr    sH    D DQQ!QT{^^$$(DDDDDQQuQ{{^^$$(GGGGGQQuQ||__%%CD D D D D 	AQqS!Q$K!!%AAAAAE!QKK!!%DDDDDE!RLL!""?@ @ @ @ @ @r   c                  n    t          dd          } t          |           }t          |          dk    sJ d S )Nr  r  z%SetExpr\left(\left[1, 3\right]\right))r   r   r   )ivses     r   test_latex_SetExprr    s8    	!QB	B99@@@@@@@r   c                     t          t          dd                    dk    sJ t          t          dd                    dk    sJ t          t          ddd                    dk    sJ t          t          dd	d                    d
k    sJ t          t          d	dd                    dk    sJ t          t          dt          d                    dk    sJ t          t          t          dd                    dk    sJ t          t          dt           d                    dk    sJ t          t          t           t                              dk    sJ t          t          t          t           d                    dk    sJ t          d          \  } }}t          t          | ||                    dk    sJ t          t          | dd                    dk    sJ t          t          d|d                    dk    sJ t          t          dd|                    dk    sJ t	          dd          }t	          ddd          }t	          ddd           }t          t          ||dz                       d!k    sJ t          t          t           |d                    d"k    sJ t          t          |t                              d#k    sJ t          t          | | dz                       d$k    sJ 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)rV  Tr   rB  )negativer   r0  )r2  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$   )rA  r  crV  rB  r0  s         r   test_latex_Ranger    s   q""DDDDDq!!:::::q!Q  $=====q"a!!%GGGGGr1b!!""&IIIIIq"a!!%CCCCCr2r""##'EEEEErB3##$$(HHHHHsB  $NNNNNrB3##$$(RRRRRennGAq!q!Q  $GGGGGq"a!!%FFFFFq!Q  $AAAAAq"a!!%IIIIIsD!!!AsT4000AsT4000Aq!a%!!%FFFFFsAq!!""&LLLLLq""DDDDD q!a%!!%IIIIIIIr   c                     t          t          dz  dt          f          } t          d          }d}t	          |           |k    sJ d}t	          |          |k    sJ t          t          dz  d          }t          dd          }d}t	          |          |k    sJ d}t	          |          |k    sJ t          t          dz  t           df          }t          dt           df          }d	}t	          |          |k    sJ d
}t	          |          |k    sJ d}t	          t          | |                    |k    sJ d}t	          t          ||                    |k    sJ d}t	          t          ||                    |k    sJ d}t	          t          | |                    |k    sJ d}t	          t          ||                    |k    sJ d}t	          t          ||                    |k    sJ t          t          dz  t          dt          f          }d}t	          |          |k    sJ t          d          }t          |t          dz  z  t          ddf          }	d}t	          |	          |k    sJ 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}r  z\left[0, b, 4 b\right])	r   rA  r   r   r   r   r   r  r$   )
s1s2	latex_strs3s4s5s6s7r  s8s
             r   test_latex_sequencesr    s   	AqD1b'	"	"B	B2I99	!!!!2I99	!!!!	AqD&	!	!B			B'I99	!!!!'I99	!!!!	AqDB3(	#	#B	"a	!	!B2I99	!!!!2I99	!!!!3IB  I----'IB  I----3IB  I----3IB  I----'IB  I----3IB  I---- 
AqD1a)	$	$B1I99	!!!!sA	AadFQ1I	&	&B)I99	!!!!!!r   c                      d} t          t          t          t          t           t          f                    | k    sJ 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  s    r   test_latex_FourierSeriesr  E  s;    k AsB<0011Y>>>>>>r   c                  x    d} t          t          t          dt          z                                 | k    sJ d S )Nz;\sum_{k=1}^{\infty} - \frac{\left(-1\right)^{- k} x^{k}}{k}r  )r   r   rD   r  r  s    r   test_latex_FormalPowerSeriesr  K  s6    NISQZZ!!Y......r   c                     t          dd          } t          t          dd                    dk    sJ t          t          d|                     dk    sJ t          t          d| dd                    dk    sJ t          t          d| dd                    dk    sJ t          t          d| dd                    d	k    sJ t          t          d| dd                    d
k    sJ d S )NrA  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   rA  s    r   test_latex_intervalsr  P  s    sA!Q  $77777!Q  $88888!Qu--..2FFFFF!Qe,,--1EEEEE!Qt,,--1EEEEE!Qd++,,0DDDDDDDr   c                     t          dd          } t          t          dd                    dk    sJ t          t          d|                     dk    sJ t          t          | dz   | dz                       d	k    sJ d S )
NrA  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  s    r   test_latex_AccumuBoundsr  Z  s    sAQ""##'HHHHHQ""##'HHHHHQUAE**++12 2 2 2 2 2r   c                  D    t          t          j                  dk    sJ d S )N	\emptyset)r   r#   EmptySetr   r   r   test_latex_emptysetr
  b  s#    ,,,,,,r   c                  D    t          t          j                  dk    sJ d S )Nz
\mathbb{U})r   r#   UniversalSetr   r   r   test_latex_universalsetr  f  s#      M111111r   c                      t          d          } t          d          }t          ||           }t          |                                          dk    sJ d S )NrU  Bz- (A B - B A))r   r   r   doit)rU  r  comms      r   test_latex_commutatorr  j  sO    AAaD!1111111r   c            
          t          t          t          dd          t          dd                              dk    sJ t          t          t          dd          t          dd          t          dd                              dk    sJ 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   test_latex_unionr  q  s    x1~~x1~~667734 4 4 4x1~~x1~~x1~~FFGG56 6 6 6 6 6r   c            	          t          t          t          dd          t          t          t                                        dk    sJ d S )Nr   r  z(\left[0, 1\right] \cap \left[x, y\right])r   r   r   r  r3  r   r   r   test_latex_intersectionr  x  sH    hq!nnhq!nn==>>34 4 4 4 4 4r   c            	          t          t          t          dd          t          dd          d                    dk    sJ d S )Nr
  r  r  r  Fr   z-\left[2, 5\right] \triangle \left[4, 7\right])r   r   r   r   r   r   test_latex_symmetric_differencer  }  sY    $Xa^^Xa^^.35 5 5 6 689 9 9 9 9 9r   c                  t    t          t          t          j        t          j                            dk    sJ d S )Nz\mathbb{R} \setminus \mathbb{N})r   r   r#   RealsNaturalsr   r   r   test_latex_Complementr    s<    AGQZ0011*+ + + + + +r   c                     t          dd          } t          dd          }t          ddd          }t          | dz            dt          |           z  k    sJ t          | dz            dt          |           z  k    sJ t          | |z  |z                                            t          |           dt          |          dt          |          k    sJ d S )	Nr   r  r  r
  r  z%s^{2}z%s^{10}z \times )r   r   r   flatten)linebiglinefsets      r   test_latex_productsetr"    s    Aq>>Dq"ooGQ1Dq>>Yt44444r??j5;;66666$.4'002233dU7^^^^U4[[[82 2 2 2 2 2 2r   c                  l    t          ddd          } t          t          |                     dk    sJ d S )Nr  r
  r  z.\mathcal{P}\left(\left\{1, 2, 3\right\}\right))r   r   r   )r!  s    r   test_latex_powersetr$    s9    Q1D$  $UUUUUUUr   c            	      v   t                      } t          |           dk    sJ t          dd          }t          |          dk    sJ t          t          |t          dd                              dk    sJ t          t          t          dd          t          dd                              dk    sJ d S )N\omegar
  r  z3 \omega^{2}r  z3 \omega^{2} + \omegaz\omega^{2} + 2 \omega)r   r   r   r   )r  wps     r   test_latex_ordinalsr(    s    A88y    	Aq		B99''''Z1--..//3KKKKKAq)):a+;+;<<==AYYYYYYYr   c                  P	   t          d          \  } }}}t          |           }t          |          }t          |          }t          |          }t          ||d          }t          ||d          }	t          ||d          }
t          ||d          }t	          ||d          }t	          ||d          }t          ||d          }t          ||d          }t          ||          }t          ||          }t          t          ||	d                    dk    sJ t          t          ||	d                    dk    sJ t          t          ||d                    dk    sJ t          t          ||d                    dk    sJ t          t          ||d                    dk    sJ t          t          ||d                    d	k    sJ t          t          |
|d                    d
k    sJ t          t          ||d                    dk    sJ t          t          ||d                    dk    sJ t          t          ||d                    dk    sJ t          t	          ||d                    dk    sJ t          t	          ||	d                    dk    sJ t          t	          |
|d                    dk    sJ t          t	          ||d                    dk    sJ t          t	          ||d                    dk    sJ t          t          ||d                    dk    sJ t          t          ||	d                    dk    sJ t          t          |
|d                    dk    sJ t          t          ||d                    dk    sJ t          t          ||d                    dk    sJ t          t          ||                                                    dk    sJ t          t          ||	                    dk    sJ t          t          |
|                    dk    sJ t          t          ||                    dk    sJ t          t          ||                    dk    sJ 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  )rA  r  r  drU  r  CDU1U2I1I2C1C2D1D2P1P2s                     r   test_set_operators_parenthesisr7    s@   JAq!Q!A!A!A!A	q!e	$	$	$B	q!e	$	$	$B	aU	+	+	+B	aU	+	+	+B	Aq5	)	)	)B	Aq5	)	)	)B	QE	2	2	2B	QE	2	2	2B	Aq		B	Aq		Bae44455	?? ? ? ? b"u55566	DD D D D b"u55566	-- - - - b"u55566	-- - - - b"u55566	## # # #
 q"u---..	?? ? ? ? r2...//	DD D D D r2...//	-- - - - r2...//	-- - - - r2...//	## # # #
 ArE22233	-- - - - BU33344	## # # # BU33344	## # # # BU33344	DD D D D BU33344	## # # #
 $QU;;;<<	-- - - - $Re<<<==	## # # # $Re<<<==	## # # # $Re<<<==	DD D D D $Re<<<==	## # # # Ar""**,,--	    B##$$	## # # # B##$$	## # # # B##$$	-- - - - B##$$	-- - - - - -r   c                  D    t          t          j                  dk    sJ d S )N
\mathbb{C})r   r#   	Complexesr   r   r   test_latex_Complexesr;    s#    ......r   c                  D    t          t          j                  dk    sJ d S )N
\mathbb{N})r   r#   r  r   r   r   test_latex_Naturalsr>    #    ------r   c                  D    t          t          j                  dk    sJ d S )N\mathbb{N}_0)r   r#   	Naturals0r   r   r   test_latex_Naturals0rC    s#    000000r   c                  D    t          t          j                  dk    sJ d S )N
\mathbb{Z})r   r#   Integersr   r   r   test_latex_IntegersrG  #  r?  r   c            	         t          d          } t          t          t          | | dz            t          j                            dk    sJ t          d          }t          t          | |f| |z             h dddh          }t          |          dk    sJ t          t          | |ff| |z             t          h dddh                    }t          |          d	k    sJ d S )
Nr  r
  z2\left\{x^{2}\; \middle|\; x \in \mathbb{N}\right\}r3  >   r  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  r3  imgsets      r   test_latex_ImageSetrJ  '  s
   sA&AqD//1:6677=> > > > 	sAfaVQU++YYYA??F==de e e e fq!fYA..
999q!f0M0MNNF==xy y y y y yr   c            	          t          d          } t          t          | t          | dz  d          t          j                            dk    sJ t          t          | t          | dz  d          t          j                            dk    sJ 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  s    r   test_latex_ConditionSetrM  6  s    sAaAqD!ag6677KL L L LaAqD!an==>>34 4 4 4 4 4r   c            
         t          t          t          dd          t          dd          z                      dk    sJ t          t          t          dd          t          ddt          z            z  d	
                    dk    sJ d S )Nr  r  r  rF  zX\left\{x + y i\; \middle|\; x, y \in \left[3, 5\right] \times \left[4, 6\right] \right\}r   r  r
  T)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   test_latex_ComplexRegionrP  >  s    x1~~hq!nn<==>>cd d d dx1~~hq!B$.?.??tLLLMM	nn n n n n nr   c                  ~    t          d          } t          t          | t          j                            dk    sJ d S )Nr  zx \in \mathbb{N})r$   r   r   r#   r  rL  s    r   test_latex_ContainsrR  F  s9    sA!QZ(())-@@@@@@@r   c            	         t          t          t          t          dz  z  t          ddft          ddf                    dk    sJ t          t          t          dz  t          ddf                    dk    sJ t          t          t          dz  t          z   t          ddf                    dk    sJ t          t          t          dz  t          z   t          ddf          dz            dk    sJ 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  r3  r   r   r   test_latex_sumrT  K  s   Qq!tVaQZ!R4455GH H H HQTAr1:&&'' ! ! ! !QTAX2qz**++12 2 2 2QTAX2qz**A-..BC C C C C Cr   c            	         t          t          t          t          dz  z  t          ddft          ddf                    dk    sJ t          t          t          dz  t          ddf                    dk    sJ t          t          t          dz  t          z   t          ddf                    dk    sJ t          t          t          t          ddf          dz            dk    sJ 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  r3  r   r   r   test_latex_productrV  V  s    1a4!RaQZ8899HI I I IA2qz**++!" " " "AAr1:..//23 3 3 3 QAJ''*++./ / / / / /r   c                  N   t          t          t          t          t                              dk    sJ t	          d          } t          t           | t                    t          d                    dk    sJ t          t           | t                    t          dd                    dk    sJ t          t           | t                    t          d          dz            dk    sJ t          t           | t                    t          dd	
                    dk    sJ 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  s    r   test_latex_limitsrZ  b  s!   q!R!!%===== 	AqqttQ""##'MMMMMqqttQ3''((./ / / / qqttQ""A%&&?@ @ @ @ qqttQt,,,--,- - - - - -r   c                     t          t          t                              dk    sJ t          t          t                    d          dk    sJ t          t          t                    t          t                    z             dk    sJ t          t          t                    t          t                    z   d          dk    sJ t          t	          t          t                    t                              dk    sJ t          t	          t          t                    t                    d          dk    sJ d S )	Nz\log{\left(x \right)}T)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   rD   r  r3  powr   r   r   test_latex_logr^  s  s   Q==44444QT***.EEEEEQ#a&&!!89 9 9 9Q#a&&d33367 7 7 7SVVQ  $@@@@@SVVQT222#$ $ $ $ $ $r   c                      t          d          } | t          z   }t          |          dv sJ t          d          } | t          z   }t          |          dv sJ d S )Nr}  )z	\beta + xz	x + \betarU   )r$   r  r   )rU   r3  s     r   test_issue_3568r`    sb    (DqA8833333'??DqA883333333r   c                  l   t          dt          z  t          dd          z            dk    sJ t          dt          z  t          dd          z  d          dk    sJ t          dt          z  t          dd          z  dd	          d
k    sJ t          dt          z  t
          g          dk    sJ 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  r3  r   r   r   
test_latexrc    s    !C%(1a..())-MMMMM!B$!Q'k:::GH H H H!B$!Q'jtDDD+, , , ,!A#q??@@@@@@@r   c                      t          d          dt          dz  dt          dt          dz  di} t          |           dk    sJ t          |           }t          |          dk    sJ 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,  s     r   test_latex_dictre    s    	!aAq!Q1a0A88FG G G GQA88FG G G G G Gr   c                      t          d          t          d          t          d          g} t          |           dk    sJ d S )Nrd  rA  r!  z)\left[ \omega_{1}, \  a, \  \alpha\right]r$   r   )lls    r   test_latex_listri    s@    


F3KK	9B99DDDDDDDr   c                  z   t          t          j                  dk    sJ t          t          j                  dk    sJ t          t          j                  dk    sJ t          t          j                  dk    sJ t          t          j                  dk    sJ t          t          j                  dk    sJ d S )NGr~  e\phi\piz\text{TribonacciConstant})r   r#   Catalan
EulerGammaExp1GoldenRatioPiTribonacciConstantr   r   r   test_latex_NumberSymbolsru    s    s"""")++++==C7****;;&    %&&*FFFFFFFr   c                     t          t          dd                     dk    sJ t          t          dd                    dk    sJ t          t          dd                    dk    sJ t          t          dd                     dk    sJ t          t          dd           t          z            dk    sJ t          t          dd           t          z  t          dd          t          z  z             d	k    sJ 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  r3  r   r   r   test_latex_rationalrw    s   (1a..!!%55555"a!!%55555!R!!%55555(2q//!""n4444(1a.."##'77777(1a.."Xb!__Q%6677() ) ) ) ) )r   c                      t          dt          z            dk    sJ t          dt          t          z   z            dk    sJ d S )Nr  r  z\frac{1}{x + y}r   r  r3  r   r   r   test_latex_inverserz    sE    1::''''AE1111111r   c                     t          t          t                              dk    sJ t          t          t                    dz            dk    sJ t          t          t          d                    dk    sJ t          t          t          d                    dk    sJ t          t          t          d          dz            dk    sJ 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   rV   r  r   r   r   test_latex_DiracDeltar|    s    A#:::::A!""&NNNNNAq!!""&=====Aq!!""45 5 5 5Aq!!1$%%EF F F F F Fr   c                      t          t          t                              dk    sJ t          t          t                    dz            dk    sJ d S )Nz\theta\left(x\right)r
  z%\left(\theta\left(x\right)\right)^{2})r   rW   r  r   r   r   test_latex_Heavisider~    sL    1"999991q!!%MMMMMMMr   c                     t          t          t          t                              dk    sJ t          t          t          t          dz                       dk    sJ t          t          t          dz   t                              dk    sJ t          t	          t          t          t                    dd                    dk    sJ 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   rv   r  r3  r    r   r   r   test_latex_KroneckerDeltar    s    1%%&&/99991q5))**.BBBBBAq))**.BBBBB^Aq))1u===>>() ) ) ) ) )r   c                     t          t          t          t          t                              dk    sJ t          t          t          t          t                    dz            dk    sJ t          t          t          t          t          dz                       dk    sJ t          t          t          t          dz   t                              dk    sJ t          t          t          dz   t          t                              dk    sJ 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   rw   r  r3  r5  r   r   r   test_latex_LeviCivitar    s    Aq!$$%%)?????Aq!$$a'((/0 0 0 0Aq!a%(())-IIIIIAq1ua(())-IIIIIAE1a(())-IIIIIIIr   c                  8    t           t          z    t                     dk    sJ t           d          dk    sJ t           d          dk    sJ t           d          dk    sJ t           d          d	k    sJ t          t           fd
           d S )Nzx + yplainr  inlinez$x + y$r  z%\begin{equation*}x + y\end{equation*}rb  z#\begin{equation}x + y\end{equation}c                  &    t           d          S )Nr  r  r   exprs   r   <lambda>ztest_mode.<locals>.<lambda>  s    uT666 r   )r  r3  r   r   
ValueErrorr  s   @r   	test_moder    s    q5D;;(""""G$$$0000H%%%3333;     #KL L L L:  "HI I I I
:666677777r   c                  N   t          t          t          t          t                              dk    sJ t          t          t          t          t                              dk    sJ t          t          t          t          t                    dz            dk    sJ t          t          t          t          t                    dz            dk    sJ t          t          t          t          t                              dk    sJ t          t          t          t          t                              dk    sJ t          t          t          t          t                    dz            dk    sJ t          t          t          t          t                    dz            d	k    sJ 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   rf   r  r3  r5  rh   rg   ri   r   r   r   test_latex_mathieur    sL   !Q""##'?????!Q""##'?????!Q""A%&&*FFFFF!Q""A%&&*FFFFFq!Q''((,MMMMMq!Q''((,MMMMMq!Q''*++/TTTTTq!Q''*++/TTTTTTTr   c                     t          t          t          dk     ft          dz  df          } t          |           dk    sJ t          | d          dk    sJ t          t          t          dk     fdt          dk    f          } t          |           dk    sJ t          d	d
          \  }}t          |dz  t	          ||          f||z  df          } d}t          |           |k    sJ t          || z            d|z  k    sJ t          | |z            d|z  k    sJ t          t          t          t          dk     ft          dz  t          dk     f                    dk    sJ 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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})rN   r  r   r&   r!   )r0  rU  r  r  s       r   test_latex_Piecewiser    s   1a!e*q!tTl++A88 8 8 8 8 8	)) ) ) ) 	1a!e*q!q&k**A88 8 8 8 8 85e,,,DAq1a4Aq"QqS$K00AXA88q====1::-111111::-11111Aq1u:1a!e}5566	GG G G G G Gr   c                     t          dt          z   t          gt          t          dz
  gg          } t          |           dk    sJ t          | d          dk    sJ t          | d          dk    sJ t          | d	          d
k    sJ t          | d d	          dk    sJ t          ddt	          d                    }t          |          dk    sJ 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]bmatrixz=\left[\begin{bmatrix}x + 1 & y\\y & x - 1\end{bmatrix}\right])	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  r3  r   r  )MM2s     r   test_latex_Matrixr    s>   Q
QAJ'((A88FG G G G"""	.. . . . G$$$HI I I II&&&HI I I IdI666;< < < < 
2uRyy	!	!B99	HH H H H H Hr   c            	         t          d          } t          dt                    }t          t           ||                     t	           ||                     gt	           ||                               |                     t           ||                               |                     gg          }d}t          |          |k    sJ 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   rS   rQ   r   r   )r  r  r  expecteds       r    test_latex_matrix_with_functionsr    s    AX8,,,FVVAYYVVAYY0VVAYY^^A&&''VVAYY^^A->->)?)?@B 	C 	CA)H 88xr   c                     t          d          \  } }}}t          t          t          t          fD ]?} ||           }t          |          dk    sJ  |d| z  |g||gg          } |d| z  ||g          }t          ||          }t          ||          }t          |          dk    sJ t          |          dk    sJ t          |          dk    sJ t          |          dk    sJ  || |d|z  gg          }	 || g|gd|z  gg          }
 ||
                                g          }t          |	          dk    sJ t          |
          d	k    sJ t          |          d
k    sJ Ad 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   tolist)r  r3  r5  r  	ArrayTyper  M1r  M3MrowMcolumnMcol2s               r   test_latex_NDimArrayr  ,  s   ##JAq!Q-/G+-CE (o (o	 IaLLQxx4IAqzAq6*++YAq!}%%2q!!1a  QxxLM M M MRyyIJ J J JRyy## # # # Ryy'' ' ' ' y1a1+'')aS1#!u-..	7>>++,--T{{VW W W WW~~GH H H HU||no o o o oO(o (or   c                     t          ddt          z  z  d          dk    sJ t          ddt          z  z  d          dk    sJ t          ddt          z  z  d          dk    sJ t          dt          z  d          d	k    sJ t          dt          z  d          d
k    sJ t          dt          z  d          dk    sJ d S )Nr  r(  r  z4 \times 4^{x}r  z4 \cdot 4^{x}ldotz4 \,.\, 4^{x}z
4 \times xz	4 \cdot xz	4 \,.\, xr  r   r   r   test_latex_mul_symbolr  Z  s    1a4G,,,0AAAAA1a4E***.>>>>>1a4F+++/?????1)))]::::1'''<77771(((L888888r   c                      ddt          d          z  z  } t          |           dk    sJ t          d| z            dk    sJ d S )Nr  r
  z!4 \cdot 4^{\log{\left(2 \right)}}r  z+\frac{1}{4 \cdot 4^{\log{\left(2 \right)}}})rD   r   )r3  s    r   test_latex_issue_4381r  d  sO    	!SVV)A88;;;;;1::GGGGGGGr   c                  V   t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d	                    d
k    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                     d!k    sJ t          t          d"                    d#k    sJ t          t          d$                    d#k    sJ d S )%N	beta_13_2z\beta_{13 2}beta_132_20z\beta_{132 20}beta_13z
\beta_{13}x_a_bzx_{a b}x_1_2_3z	x_{1 2 3}x_a_b1zx_{a b1}x_a_1zx_{a 1}x_1_azx_{1 a}zx_1^aaz
x^{aa}_{1}x_1__aazx_11^az
x^{a}_{11}x_11__a	x_a_a_a_azx_{a a a a}z	x_a_a^a^azx^{a a}_{a a}x_a_a__a__aalpha_11z\alpha_{11}alpha_11_11z\alpha_{11 11}alpha_alphaz\alpha_{\alpha}zalpha^alephz\alpha^{\aleph}alpha__alephr   r$   r   r   r   test_latex_issue_4576r  j  s   $$%%8888&&''+<<<<<	""##}4444!!Z////	""##|3333!!""k1111!!Z////!!Z////!!""m3333	""##}4444!!""m3333	""##}4444$$%%7777$$%%)99999&&''+;;;;;
##$$6666&&''+<<<<<&&''+=====&&''+=====''((,>>>>>>>r   c                      t          d          } dt          t          |            dz                                dd          v sJ dt          d|  z  dz                                dd          v sJ d S )Nr  ze^{-x}r
    z3^{-x}r  )r$   r   rC   replacerL  s    r   test_latex_pow_fractionr    s{    sAc1"ggai((00b999999 a!eAg..sB77777777r   c                      t          dd          \  } }}t          | |z  |dz  z            dk    sJ t          |dz  | z  |z            dk    sJ t          | |dz  z  |z            dk    sJ d S )NzA,B,CFr  r  z
A B C^{-1}z
C^{-1} A Bz
A C^{-1} Bru  rU  r  r+  s      r   test_noncommutativer    s    g5111GAq!1QU},,,,Bq},,,,1b5},,,,,,r   c                     t           dz  t           dz  t          z  z   t          dz  z   dt           z  t          dz  z  z   } t          | d          dk    sJ t          | d          dk    sJ t          | d	          d
k    sJ 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  r3  r   r  s    r   test_latex_orderr    s    a4!Q$q&=1a4!A#ad(*DU###'MMMMMI  "HI I I IV$$$(NNNNNNNr   c                  .   t          t          t          t          dz                       dk    sJ t          t          t          t          ft          dz                       dk    sJ t          t          t          t                              dk    sJ 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  r3  r   r   r   test_latex_Lambdar    s~    1q5!!""&GGGGGAA&&''+`````1"???????r   c                  b   t          dt                    \  } }}t          d|           \  }}}}t          ||z
            dk    sJ t          |dz
            dk    sJ t          |dz             dk    sJ t          |dz  d|z  |z  z   dz   |dz  z  |z  |z   dz             d	k    sJ t          |dz  d|z  |z  z   dz   |dz  z  |z  |dz   |z  z             d
k    sJ t          |dz  d|z  |z  z   dz   |dz  z  |z  |dz   |z  z   dz             dk    sJ t          |dz   d|z  |z  z   dz
  |dz  z  |z  |dz   |z  z
  dz
            dk    sJ t          |dz  |z   dz    |z  d|z  |z  z   dz             dk    sJ t          |dz  |z   dz    |z  d|z  |z  z
  dz             dk    sJ 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   )RuvuvRxyzr  r3  r5  s          r   test_latex_PolyElementr    st   UBICA#&&MD!QQ<<4Q<<8####Q<<8####!Q$1Q,"AqD(*Q.233=> > > >!Q$1Q,"AqD(*a!eQY677LM M M M!Q$1Q,"AqD(*a!eQY6:;;PQ Q Q Q1a4%!A#a%-!#QT)!+q1uai7!;<<QR R R R 1a4!8a<"QqSU*Q.//67 7 7 71a4!8a<"QqSU*Q.//67 7 7 7 7 7r   c                     t          dt                    \  } }}t          d|           \  }}}}}t          ||z
            dk    sJ t          |dz
            dk    sJ t          |dz             dk    sJ t          |dz            dk    sJ t          ||z            d	k    sJ t          ||z  |z            d
k    sJ t          |||z  z            dk    sJ t          ||z  ||z  z            dk    sJ t          |dz
  |z            dk    sJ t          |dz   |z            dk    sJ t          | dz
  |z            dk    sJ t          |dz   ||z  z            dk    sJ t          | |dz   z            dk    sJ t          ||z  |dz   z            dk    sJ t          |dz   |z  |z  dz   |dz
  |z  dz
  z            dk    sJ t          |dz   |z  |z  dz   |dz
  |z  ||z  |z  z
  dz
  z            dk    sJ 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   )Fuvr  r  Fxyztr  r3  r5  r  s           r   test_latex_FracElementr    s   eR  ICAi--E1aAQ<<4Q<<8####Q<<8####1::''''1::''''1Q<<+++++AaC>>-----1ac11111!a%11111!a%111111"q&! 33333!a%!A##77777!QU 333331a!e!555551q5!)A+/QUAIM233FG G G G1q5!)A+/QUAI!A$5$9:;;NO O O O O Or   c                  J   t          t          t          dz  dt          z  z   t                              dk    sJ t          t          t          t          z  t                              dk    sJ t          t          dt          z  t          z                       dk    sJ 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  r3  r   r   r   test_latex_Polyr    s    adQUlA&&''PQ Q Q Qac1`a a a ac!eai!!UV V V V V Vr   c            
      ^   t          t          t          dt          dt          dgt
                              dk    sJ t          t          t          dt          t          z   ddgt
                              dk    sJ t          t          t          t
          dz  z  t
          dz  t          z  z   t
          t          z  z
  t          t          dz  z  z
  t          t
          z  t          dz  z  z
  t          z   t          t
          z  z
  t          z   t
          t          f                    dk    sJ 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   rA  r  r  r  r3  r   r   r   test_latex_Poly_orderr    s"   q!Q1a(!,,--	EE E E E q!QqS!Q'++,,	NN N N N a1fq!tAvo!+a1f4qs1a4x?!CacIAM!f   	XX X X X X Xr   c                  r    t          t          t          dz  t          z   dz   d                    dk    sJ d S )Nr  r  r   z6\operatorname{CRootOf} {\left(x^{5} + x + 3, 0\right)})r   r   r  r   r   r   test_latex_ComplexRootOfr    sJ    1q1a(())AB B B B B Br   c                  |    t          t          t          dz  t          z   dz   t                              dk    sJ d S )Nr  r  zc\operatorname{RootSum} {\left(x^{5} + x + 3, \left( x \mapsto \sin{\left(x \right)} \right)\right)})r   r   r  rS   r   r   r   test_latex_RootSumr    sJ    AAs++,,no o o o o or   c                  2    t          t          d            d S )Nc                  >    t          t          t          z  d          S )Ngarbage)methodry  r   r   r   r  ztest_settings.<locals>.<lambda>  s    eAaC	::: r   )r   	TypeErrorr   r   r   test_settingsr    s    
9::;;;;;r   c                  	   t          t          t                              dk    sJ t          t          t                    dz            dk    sJ t          t          t                              dk    sJ t          t          t          t                              dk    sJ t          t          t                    dz            dk    sJ t          t          t          t                    dz            dk    sJ t          t          t                              dk    sJ t          t          t          t                              d	k    sJ t          t          t                    dz            d
k    sJ t          t          t          t                    dz            dk    sJ t          t          t                              dk    sJ t          t          t          t                              dk    sJ t          t          t          t          t          t          f                    dk    sJ t          t          t                    dz            dk    sJ t          t          t          t                    dz            dk    sJ t          t          t          t          t          t          f          dz            dk    sJ t          t          t                              dk    sJ t          t          t          t                              dk    sJ t          t          t                    dz            dk    sJ t          t          t          t                    dz            dk    sJ t          t          t                              dk    sJ t          t          t                    dz            dk    sJ t          t          t                              dk    sJ t          t          t          t                              dk    sJ t          t          t                    dz            dk    sJ t          t          t          t                    dz            dk    sJ t          t          t                              dk    sJ t          t          t                    dz            dk    sJ 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/   rB  r-   r  r1   r.   r  r3  r3   r2   r4   r7   r   r   r   test_latex_numbersr    s   ((((Q<////1(****1a!!%;;;;;1q!!\11111a!#$$(BBBBB!))))!Q  $:::::!a  L0000!Q"##'AAAAAa>>X%%%%a 66666aQF##$$(DDDDDa!,,,,aQ#=====aQF##Q&''+KKKKK1(****1a!!%;;;;;1q!!\11111a!#$$(BBBBBq??h&&&&q1----A8++++Aq!!""&<<<<<A!""l2222Aq!!1$%%)CCCCC33333A":::::::r   c                     t          t          t                              dk    sJ t          t          t          t                              dk    sJ t          t          t          t                    dz            dk    sJ d S )NzE_{n}zE_{n}\left(x\right)r
  zE_{n}^{2}\left(x\right))r   r0   rB  r  r   r   r   test_latex_eulerr    sm    q??h&&&&q!!77777q!a  $>>>>>>>r   c                      t          t          d                    dk    sJ t          t          d                    dk    sJ d S )Nlamda\lambdaLamda\Lambdar  r   r   r   
test_lamdar    sF    !!Z////!!Z//////r   c                  J   t          d          } t          d          }t          |           dk    sJ t          | | di          dk    sJ t          | |z   | di          dk    sJ t          | dz  | di          dk    sJ t          | |z   | d|di          d	k    sJ d S )
Nr  r3  r)  r*  zx_i + yr
  zx_i^{2}y_jz	x_i + y_jrg  r  r3  s     r   test_custom_symbol_namesr  $  s    sAsA88t!U,,,6666QaZ000J>>>>AQJ///:====Qa5%9:::lJJJJJJr   c            	         t          ddd          } t          ddd          }t          d          }t          ddd          }t          | d|z  z
            dv sJ t          | d|z  z             d	v sJ t          |d| z  z
            d
v sJ t          |d| z  z             dv sJ t          ||z  | |j        z   ||j        z   z  z
            dk    sJ t          t	          t	          ||          t	          ||                              dk    sJ t          t          t          ||          t          ||                              dk    sJ d S )Nr+  r  r  rB  r{  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   Tr   r   )r+  r  rB  r{  s       r   test_matAddr  .  sd   S!QAS!QAAS!QAQqS>>66666QqS>>55555QqS>>77777QqS>>55555Q1"qs(q13w//004oooooq!fQll33448eeeeeq!fQll33448_______r   c                  X   t          ddd          } t          ddd          }t          d          }t          d| z            dk    sJ t          d|z  | z            dk    sJ t          d| z            d	k    sJ t          d
| z            dk    sJ t          t          d          | z            dk    sJ t          t          d           | z            dk    sJ t          dt          d          z  |z  | z            dk    sJ t          d| z  | d|z  z   z            dv sJ d S )NrU  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   rM   )rU  r  r  s      r   test_matMulr  ?  sX   S!QAS!QAsA1::1Q<<8####A;;(""""Q<<8####a},,,,$q''!////4771Q#44444Aq1Q3w   %G G G G G G Gr   c            	      d   t          dd          } t          d          \  }}}}}t          d| |           }t          ddd          }t          ddd          }t          t	          |d	d	                    d
k    sJ t          |||dz   ||dz   f                   dk    sJ t          |||dz   d||dz   df                   dk    sJ t          |d ||d f                   dk    sJ t          |d ||d f                   dk    sJ t          ||d d |f                   dk    sJ t          |||||f                   dk    sJ t          |||||||f                   dk    sJ t          ||d ||d |f                   dk    sJ t          |d ||d ||f                   dk    sJ t          |d d |d d |f                   dk    sJ t          t	          |dd                    d
k    sJ t          t	          |d | d fd | d f                    d
k    sJ t          t	          |d| d fd| d f                    d
k    sJ t          t	          |d| dfd| df                    dk    sJ t          |ddddddf                   dk    sJ t          |ddddddf                   dk    sJ t          |ddd                   d k    sJ t          |d ddd!df                   d"k    sJ t          |d ddddf                   d#k    sJ t          |dd ddf                   d$k    sJ t          |ddddf                   d%k    sJ t          |ddddddf                   d&k    sJ t          ||z   dd dd f                   d'k    sJ d S )(NrB  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  rF  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   )	rB  r  r3  r5  r  r  r  r  r  s	            r   test_latex_MatrixSlicer  N  s   sD!!!A[))NAq!QS!QAS"b!!AS"b!!AQ 24FGGHHLaaaaa1QU7Aa!eG#$%%)JJJJJ1QU19aAai'())-RRRRR2A2qrr6666662A2qrr666666122rr6666661Q3!8!:::::1Qq5!Aa%<!!%BBBBB14a4A:#>>>>>4Aa4!A:#>>>>>33Q3!8!:::::QAABBF[[[[[Qq$$4AABBF[[[[[QAtq!Tl;;<<@UUUUUQAq	Aq!95566:SSSSS1Qq5!Aa%<!!%BBBBB1Qq5!Aa%<!!%BBBBB1R6999992A2q1u9"<<<<<2A2qAv:#<<<<<1dqd7 :::::1Q3!8!888881Qq5!Aa%<!!%@@@@@!a%QRR!!%MMMMMMMr   c            	         ddl m} m}m}m}m} ddlm}  | ddd          }t           ||dk                        dk    sJ  |dd          }t           ||d	k                        d
k    sJ  |dd          } |dd          }	t           |t          ||	                    j
                  dk    sJ t           |t          t                    t          dd                              dk    sJ d S )Nr   )r   DieExponentialpspacewhere)RandomDomainr  r  z.\text{Domain: }0 < x_{1} \wedge x_{1} < \inftyd1rF  r  z'\text{Domain: }d_{1} = 5 \vee d_{1} = 6rA  r  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\})sympy.statsr   r  r	  r
  r  sympy.stats.rvr  r   r   domainr   r  )
r   r  r	  r
  r  r  r  r,  rU  r  s
             r   test_latex_RandomDomainr  o  s\   CCCCCCCCCCCCCC++++++tQAq1u"SSSSSD!Aq1u"LLLLLCACAuQ{{"$ $VW W W W illIaOO<<==BC C C C C Cr   c                     ddl m}  |                     t          t                    }| t          t          f         }t          |                    t          t          t          z   z                      t          t          t          t          z   z            k    sJ t          |                    t          t          z                       t          t          t          z             k    sJ d S )Nr   QQ)sympy.polys.domainsr  
frac_fieldr  r3  r   convert)r  Fr  s      r   test_PrettyPolyr    s    &&&&&&
aA
1a4A1a!e9%%&&%1q5	*:*:::::1q5!!""eAEll222222r   c            	      *   t          d          } t          d          }t          d          }t          d          }t          d          }t          t           ||           | |                    dk    sJ t          t	           ||          || ||                    dk    sJ t          t           ||           | |                    dk    sJ t          t           ||          || ||f                    d	k    sJ t          t           ||           | |                    d
k    sJ t          t           ||          ||                     dk    sJ t          t           ||           | |                    dk    sJ t          t           ||          ||                     dk    sJ t          t           ||           | |                    dk    sJ t          t           ||          ||                     dk    sJ d S )Nr  r;  r  rA  r  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  rA  r  s        r   test_integral_transformsr    s   sAsAAsAsA1q!,,--GH H H H'!aAq99::LM M M M !!!A$$1--..GH H H H(1q!aV<<==LM M M M !!!A$$1--..GH H H H(1q!4455LM M M M 1q!,,--IJ J J J'!a3344NO O O O qqttQ**++IJ J J J%aaddAq1122NO O O O O Or   c                      ddl m}  t          |                     t          t
                              dk    sJ t          |                     t          t
          d                    dk    sJ d S )Nr   r  z\mathbb{Q}\left[x, y\right]ilexr%  z#S_<^{-1}\mathbb{Q}\left[x, y\right])r  r  r   old_poly_ringr  r3  r  s    r   test_PolynomialRingBaser    s    &&&&&&!!!Q''((,JJJJJ!!!Qf!5566./ / / / / /r   c                  r   ddl m} m}m}m}m}m}  | d          } | d          } | d          } |||d          }	 |||d          }
 ||          } |d          }t          |          d	k    sJ t          |	          d
k    sJ t          |          dk    sJ t          |
|	z            dk    sJ t          |          dk    sJ  |            }t          |          dk    sJ  ||	d|
t          j	        i          }t          |          dk    sJ  ||	d|
t          j	        i|
|	z  di          }t          |          dk    sJ  | d          } | d          } | d          } |||d          } |||d          } |||g          } ||          }t          |          dk    sJ 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\}rU  r  r+  r  rz  z-\begin{array}{cc}
A & B \\
 & C 
\end{array}
)
sympy.categoriesr!  r"  r#  r$  r%  r&  r   r#   r	  )r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  id_A1r,  r*  rU  r  r+  r  rz  grids                       r   test_categoriesr1    sy   / / / / / / / / / / / / / / / / 
B	B	B	r2t	$	$B	r2t	$	$BR  E	$B99    9977777<<77777B<<EEEEE99)))))		A88|####Xr1:.//A88 ? ? ? ? ? 	Xr1:.b(0CDDA88 = = = = = 	sAsAsAaC  AaC  AAA;q>>D;;       r   c                  F   ddl m}  ddlm} |                     t
          t                    }|                    d          }|                    t
          t          gdt
          dz  g          }t          |          dk    sJ t          |          dk    sJ |
                    t
          dz  t                    }t          |          dk    sJ ||z  }t          |          d	k    sJ t          |                    dt
          d
z  dz  gdt          g                    dk    sJ  ||                     t
                                        d          |                     t
                                        d          ddg          }t          |          dk    sJ 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  sympy.polys.agcar3  r  r  r3  free_module	submoduler   ideal)r  r3  r  r  r  r   Qr{  s           r   test_Modulesr9    s   &&&&&&------
AA	aA	QFQ1I&&A88;;;;;88[\ \ \ \ 	
1aA88@@@@@	AA88	DD D D D aAa[1a&1122	WW W W W 	R%%a((44Q77%%a((44Q77!Q	A 	AA 88	QQ Q Q Q Q Qr   c                      ddl m}  |                     t                    t          dz  dz   gz  }t	          |          dk    sJ t	          |j                  dk    sJ 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  r  r  r   one)r  r  s     r   test_QuotientRingr<    sz    &&&&&&
QTAXJ&A88RS S S S<<LLLLLLLr   c                  |    t          dd          \  } }t          | |z            }t          |          dk    sJ d S )Nr  Fr  z!\operatorname{tr}\left(A B\right))r&   r   r   )rU  r  r  s      r   test_Trr>    sE    5e,,,DAq
1Q3A88;;;;;;;r   c                     ddl m} m}m}m}m} t          d          }t           | |                    dk    sJ t           |  ||                              dk    sJ t          ddd          }t           | |                    dk    sJ t           | ||z                       d	k    sJ t           |  | |dd          |f| |dd          ff                              d
k    sJ 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|r  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@  rA  rB  rC  rD  r   r   r   )r@  rA  rB  rC  rD  r  r  s          r   test_DeterminantrG    s|   WWWWWWWWWWWWWW  AQ  $aaaaaWWQZZ(())YZ Z Z ZS!QAQ  $88888QU##$$XY Y Y Y[[99Q??A*>+,jjA.>.>*?*A B B C C D D}~ ~ ~ ~ ~ ~r   c                  $   ddl m} m}m} t	          ddd          }t	          ddd          }t           | |                    dk    sJ t           | ||z                       dk    sJ t           | |           | |          z             dk    sJ t           | ||z                      d	k    sJ t           | |           | |          z            d
k    sJ t           | |dz                      dk    sJ t           | |          dz            dk    sJ t           |  ||                              dk    sJ t           | | |                              dk    sJ t           |  ||                              dk    sJ t           | | |                              dk    sJ t           | | |          |z                       dk    sJ t          d          }t           | |                    dk    sJ t           | ||z                       dk    sJ ddl m}m}m	} t           |  | |dd          |f| |dd          ff                              dk    sJ t	          ddd          }	t           | |	                    dk    sJ t           | |          d          dk    sJ t           | ||z             d          dk    sJ t           | |           | |          z   d          dk    sJ t           | |           | |          z            d
k    sJ t           | |dz            d          dk    sJ t           | |          dz  d          d k    sJ d S )!Nr   )AdjointrA  	Transposer  r
  r  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}rE  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}rB  rC  rD  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)adjoint_stylezX^{\ast}	hermitianz\left(X + Y\right)^{\mathsf{H}}daggerz\left(X^{2}\right)^{\ast}z\left(X^{\mathsf{H}}\right)^{2})
rF  rI  rA  rJ  r   r   r   rB  rC  rD  )
rI  rA  rJ  r  r  r  rB  rC  rD  Mxs
             r   test_AdjointrR  -  ss   ::::::::::S!QAS!QA....Q  $CCCCCggajj())-IIIII1"?????GGAJJ&''+EEEEEA#BBBBBQ#BBBBB$$%%)IIIII$$%%)IIIII1&&''+JJJJJ771::&&''+JJJJJ771::>**++/RRRRR  A fffff1ab b b bAAAAAAAAAAyyA&:'(**Q*:*:&;&= > > ? ? @ @ 	GG G G G 
eQ	"	"B!@@@@@ 6222kAAAAQ{;;;?aaaaaggajj(AAAEaaaaaGGAJJ&''+EEEEEAf5559UUUUUQk:::>```````r   c                     ddl m} m}m} t	          ddd          }t	          ddd          }t           | |                    dk    sJ t           | ||z                       dk    sJ t           |  ||d                              dk    sJ t           | | |          d                    d	k    sJ t           |  ||d                              d
k    sJ t           | | |          d                    dk    sJ t          d          }t           | |                    dk    sJ t           | ||z                       dk    sJ ddl m}m}m	} t           |  | |dd          |f| |dd          ff                              dk    sJ t	          ddd          }	t           | |	                    dk    sJ d S )Nr   )rJ  MatPowHadamardPowerr  r
  r  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}rE  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}rK  zi\left[\begin{matrix}1 & X\\\left[\begin{matrix}1 & 2\\3 & 4\end{matrix}\right] & 0\end{matrix}\right]^{T}rL  z\left(M^{x}\right)^{T})
rF  rJ  rT  rU  r   r   r   rB  rC  rD  )
rJ  rT  rU  r  r  r  rB  rC  rD  rQ  s
             r   test_TransposerV  Q  st   ??????????S!QAS!QA1(****1q5!!""&?????==A..//004UUUUUyy||Q//004UUUUU66!Q<<(())-FFFFF		!a(())-FFFFF  A1"aaaaa1Q3  Z[ [ [ [AAAAAAAAAA;;1a!(<)*JJq!,<,<(=(? @ @ A A B B@ @ @ @ 
eQ	"	"B2#<<<<<<<r   c                     ddl m} m} ddlm}m}m} t          ddd          }t          ddd          }t           | |||z                      dk    sJ t           | ||          |z            dk    sJ t           ||d                    d	k    sJ t           ||d
                    dk    sJ t           | |||          d                    dk    sJ t           | |||          d                    dk    sJ t           | ||d
          d
                    dk    sJ t           | ||d
          d
                    dk    sJ t           ||t          dz                       dk    sJ d S )Nr   )HadamardProductrU  )r   r   rT  r  r
  r  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)})
rF  rX  rU  sympy.matrices.expressionsr   r   rT  r   r   rB  )rX  rU  r   r   rT  r  r  s          r   test_HadamardrZ  i  s   ========AAAAAAAAAAS!QAS!QAAaC(())-=====A&&q())-HHHHHq!$$%%)99999q"%%&&*HHHHHvva||Q//00)* * * *vva||Q//00'( ( ( ( vva}}b112289 9 9 9a,,b112289 9 9 9 q!A#&&'')* * * * * *r   c                     ddl m}  t          ddd          }t          ddd          }t           | |d                    dk    sJ t           | ||z  d                    dk    sJ t           | ||z  d                    dk    sJ t           | ||z   d                    d	k    sJ t           | ||z   d                    d
k    sJ t          ddd          }t           | |d                    dk    sJ d S )Nr   )rT  r  r
  r  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}rL  z\left(M^{x}\right)^{2})rY  rT  r   r   )rT  r  r  rQ  s       r   test_MatPowr\    s8   111111S!QAS!QA1'))))!Q  $>>>>>!Q  $<<<<<Aq!!""&@@@@@Aq!!""&>>>>>	eQ	"	"BA#<<<<<<<r   c                      t          ddd          } | j        | z                      t                    }t	          |          dk    sJ |                     t          t          dt          z                      }t	          |          dk    sJ d S )Nr  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  	applyfuncrS   r   r   r  )r  r  s     r   test_ElementwiseApplyFunctionr_    s    S!QACES!!D;;kkkkk;;va1~~&&D;;[[[[[[[r   c                      ddl m}  t           | dd          d          dk    sJ t           | dd          d          dk    sJ d S )	Nr   rD  r  r  mat_symbol_styler  boldz
\mathbf{0})"sympy.matrices.expressions.specialrD  r   ra  s    r   test_ZeroMatrixrf    sn    ======Aq!!G<<<DDDDAq!!F;;;}LLLLLLr   c                      ddl m}  t           | dd          d          dk    sJ t           | dd          d          d	k    sJ d S )
Nr   rC  r  r  r  rb  1rd  z
\mathbf{1})re  rC  r   rh  s    r   test_OneMatrixrj    sj    <<<<<<1a7;;;tCCCC1a6:::mKKKKKKr   c                      ddl m}  t           | d          d          dk    sJ t           | d          d          dk    sJ d S )	Nr   Identityr  r  rb  z
\mathbb{I}rd  z
\mathbf{I})re  rm  r   rl  s    r   test_Identityrn    sf    ;;;;;;!w777=HHHH!v666-GGGGGGr   c                      ddl m} m} t           | d                    dk    sJ t           |t                              dk    sJ d S )Nr   DFTIDFTr  z\text{DFT}_{13}z\text{IDFT}_{x})"sympy.matrices.expressions.fourierrq  rr  r   r  rp  s     r   test_latex_DFT_IDFTrt    s`    <<<<<<<<R>>/////a>>///////r   c                     t          d          } t          |  }t          |          dk    sJ t          |  }t          |          dk    sJ t	          |  }t          |          dk    sJ t          |  }t          |          dk    sJ 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   )symsr  s     r   test_boolean_args_orderrw    s    5>>D:D;;KKKKKt9D;;AAAAAtD;;fg g g g :D;;>? ? ? ? ? ?r   c                  N    t          d          } t          |           dk    sJ d S )Nr  rV  )rM   r   )rV  s    r   test_imaginaryry    s*    RA88tr   c                  >   t          t                    dk    sJ t          t                    dk    sJ t          t                    dk    sJ t          t                    dk    sJ t          t
                    dk    sJ t          t                    dk    sJ d S )Nz\sinz\cosz\tanz\logz\operatorname{Ei}\zeta)r   rS   rQ   rT   rD   r^   r|   r   r   r   test_builtins_without_argsr|    s    ::    ::    ::    ::    99,,,,,;;(""""""r   c                  @   t          d          } t          |           dk    sJ t           | t                              dk    sJ t          d          } t          |           dk    sJ t          d          } t          |           dk    sJ t           | t                              dk    sJ t          d	          }t          |          d
k    sJ t          d          }t           |t                              dk    sJ t          |          dk    sJ d S )NAlpha
\mathrm{A}z\mathrm{A}{\left(x \right)}Beta
\mathrm{B}Eta
\mathrm{H}z\mathrm{H}{\left(x \right)}rs  \Pichiz\chi{\left(x \right)}\chir   r   r  )r  r0  r  s      r   test_latex_greek_functionsr    s    	A88}$$$$1;;88888A88}$$$$A88}$$$$1;;88888 	A88v 	A1;;2222288wr   c                  H   d} t          |           dk    sJ d} t          |           dk    sJ d} t          |           dk    sJ d} t          |           dk    sJ d	} t          |           d
k    sJ d} t          |           dk    sJ d} t          |           dk    sJ d S )Nr~  r  r  r  r  r  omicronors  r  r   rn  LamdaHatDOTz\dot{\hat{\Lambda}})r   r  s    r   test_translater    s    AQ<<=((((AQ<<=((((AQ<<=((((AQ<<4AQ<<6!!!!AQ<<6!!!!AQ<<1111111r   c                  f    ddl m}  | D ]'}t          t          |                    d|z   k    sJ (d S )Nr   )other_symbols\)sympy.printing.latexr  r   r&   )r  r  s     r   test_other_symbolsr    sS    222222 1 1WQZZ  HqL000001 1r   c                  >   t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d	                    d
k    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    d k    sJ t          t          d!                    d"k    sJ t          t          d#                    d$k    sJ t          t          d%                    d$k    sJ t          t          d&                    dk    sJ t          t          d'                    dk    sJ t          t          d(                    d(k    sJ t          t          d)                    d)k    sJ t          t          d*                    d*k    sJ t          t          d+                    d+k    sJ t          t          d,                    d,k    sJ t          t          d-                    d-k    sJ t          t          d.                    d.k    sJ t          t          d/                    d0k    sJ t          t          d1                    d1k    sJ t          t          d2                    d2k    sJ t          t          d3                    d3k    sJ t          t          d4                    d4k    sJ t          t          d5                    d5k    sJ t          t          d6                    d6k    sJ t          t          d7                    d7k    sJ t          t          d8                    d8k    sJ t          t          d9                    d9k    sJ t          t          d:                    d:k    sJ t          t          d;                    d;k    sJ t          t          d<                    d=k    sJ t          t          d>                    d?k    sJ t          t          d@                    dAk    sJ t          t          dB                    dCk    sJ t          t          dD                    dEk    sJ t          t          dF                    dGk    sJ d S )HN	xMathringz\mathring{x}xCheckz	\check{x}xBrevez	\breve{x}xAcutez	\acute{x}xGravez	\grave{x}xTildez	\tilde{x}xPrimez{x}'xddDDotz
\ddddot{x}xDdDotz	\dddot{x}xDDotz\ddot{x}xBoldz\boldsymbol{x}xnOrMz\left\|{x}\right\|xAVGz\left\langle{x}\right\ranglexHatz\hat{x}xDotz\dot{x}xBarz\bar{x}xVecz\vec{x}xAbsr  xMagxPrMxBMMathringCheckBreveAcuteGraveTildePrimeDDotz\dot{D}BoldNORmAVGHatr   BarVecr<   MagPrMBMhbarz\hbarxvecdotz\dot{\vec{x}}xDotVecz\vec{\dot{x}}xHATNormz\left\|{\hat{x}}\right\| xMathringBm_yCheckPRM__zbreveAbszC\boldsymbol{\mathring{x}}^{\left|{\breve{z}}\right|}_{{\check{y}}'} alphadothat_nVECDOT__tTildePrimez1\hat{\dot{\alpha}}^{{\tilde{t}}'}_{\dot{\vec{n}}})r   r&   r   r   r   test_modifiersr    s    %%&&/9999""##|3333""##|3333""##|3333""##|3333""##|3333""##w....##$$5555""##|3333!!""k1111!!""&77777!!""&;;;;;!!%DDDDD!!Z////!!Z////!!Z////!!Z////!!%88888!!%88888!!W,,,,  $55555$$%%4444!!""h....!!""h....!!""h....!!""h....!!""h....!!""h....!!Z////!!W,,,,!!W,,,,  F****  F****  F****  F****  F****  F****  F****  F****5((((!!X----##$$(88888##$$(88888$$%%)DDDDD;<<==NO O O O;<<==<= = = = = =r   c                     t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d	                    d
k    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    dk    sJ t          t          d                    d k    sJ t          t          d!                    d"k    sJ t          t          d#                    d$k    sJ t          t          d%                    d&k    sJ t          t          d'                    d(k    sJ t          t          d)                    d*k    sJ t          t          d+                    d,k    sJ t          t          d-                    d.k    sJ t          t          d/                    d0k    sJ t          t          d1                    d2k    sJ t          t          d3                    d4k    sJ t          t          d5                    d6k    sJ t          t          d7                    d8k    sJ t          t          d9                    d:k    sJ t          t          d;                    d<k    sJ t          t          d=                    d>k    sJ t          t          d?                    d@k    sJ t          t          dA                    dBk    sJ t          t          dC                    dDk    sJ t          t          dE                    dFk    sJ t          t          dG                    dHk    sJ t          t          dI                    dJk    sJ t          t          dK                    dLk    sJ t          t          dM                    dNk    sJ t          t          dO                    dPk    sJ t          t          dQ                    dRk    sJ t          t          dS                    dTk    sJ t          t          dU                    dVk    sJ t          t          dW                    dXk    sJ t          t          dY                    dZk    sJ t          t          d[                    d\k    sJ t          t          d]                    d^k    sJ t          t          d_                    d`k    sJ t          t          da                    dbk    sJ t          t          dc                    ddk    sJ t          t          de                    dfk    sJ t          t          dg                    dhk    sJ t          t          di                    djk    sJ t          t          dk                    dlk    sJ t          t          dm                    dnk    sJ d S )oNr!  r#  rU   r}  rb   r~  delta\deltaepsilonz\epsilonr|   r{  etaz\etar  z\thetaiotaz\iotakappaz\kappalambdar  r   z\munuz\nuxiz\xir  r  r   rn  rn  z\rhosigmaz\sigmar   rZ  upsilonz\upsilonr  rm  r  r  psiz\psirh  r&  r~  r  r  r  rl  \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}rs  r  Rhoz
\mathrm{P}Sigmaz\Sigmaro  r[  Upsilonz\UpsilonPhiz\Phir\   z
\mathrm{X}r  z\PsiOmegaz\Omega
varepsilonz\varepsilonvarkappaz	\varkappavarphiz\varphivarpiz\varpivarrhoz\varrhovarsigmaz	\varsigmavarthetaz	\varthetar  r   r   r   test_greek_symbolsr  5	  s   !!y0000  x////!!y0000!!y0000	""##{2222  x////w....!!y0000  x////!!y0000!!""z1111v----v----v----	""##t++++v----w....!!y0000w....	""##{2222w....w....w....!!y0000!!}4444  }4444!!y0000!!y0000	""##}4444  }4444}4444!!y0000  }4444!!}4444!!""z1111}4444}4444v----	""##}4444v----}4444!!y0000}4444	""##{2222w....}4444w....!!y0000%%&&.8888
##$$4444!!""j0000!!Y....!!""j0000
##$$4444
##$$444444r   c                  z   t          t          j                  dk    sJ t          t          j                  dk    sJ t          t          j                  dk    sJ t          t          j                  dk    sJ t          t          j                  dk    sJ t          t          j                  dk    sJ d S )Nz
\mathbb{Q}r=  rA  rE  z
\mathbb{R}r9  )r   r#   	Rationalsr  rB  rF  r  r:  r   r   r   test_fancyset_symbolsr  q	  s    ....----0000---->>]****......r   c                  :    t          t                    dk    sJ d S )Nz\mathcal{COS})r   r~   r   r   r   *test_builtin_without_args_mismatched_namesr  z	  s"    !!%5555555r   c                  >   t          t                    dk    sJ t          t                    dk    sJ t          t                    dk    sJ t          t                    dk    sJ t          t
                    dk    sJ t          t                    dk    sJ d S )Nz\operatorname{Chi}z\operatorname{B}r  r  r~  )r   r\   rU   rb   rv   rV   r   r   r   r   test_builtin_no_argsr  	  s    ::.....;;-----<<9$$$$  I----	))))	))))))r   c                  j    t          d          } t           | t                              dk    sJ d S )Nrs  z\Pi{\left(x \right)}r  r0  s    r   test_issue_6853r  	  s3    A1;;1111111r   c                     t          dt          dz   d          } t          |           dk    sJ t          dt          dz   d          } t          |           dk    sJ t          t          j        t          dz   d          } t          |           dk    sJ t          t
          t          dz   d          } t          |           d	k    sJ t          t
           t          dz   d          } t          |           d
k    sJ t          dt          dz             } t          |           dk    sJ t          dt          dz             } t          |           dk    sJ 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#   r4  r3  )rl  s    r   test_Mulr  	  sL   BA&&&A8800000Aq1uu%%%A88.....AFAEE***A88)))))Aq1uu%%%A88.....QBA&&&A8800000BAA88|####Aq1uA88z!!!!!!r   c                  L   t          ddd          } t          |           dk    sJ t          t          t          dd          z            dk    sJ t	          d          }t          |dz            d	k    sJ t          t          d
          t          z            dk    sJ 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#   )rl  r  s     r   test_Powr  	  s    Aq5!!!A88xXb!__%&&*BBBBB	BQ<<44444<!#$$(FFFFFFFr   c                      t          t          t          t                              dk    sJ t          t	          t          t          t                                        dk    sJ d S )Nzx \Leftrightarrow yzx \not\Leftrightarrow y)r   r   r  r3  r   r   r   r   test_issue_7180r  	  sX    Aq!!""&<<<<<Z1%%&&''+EEEEEEEr   c                  T    t          t          j        t          z            dk    sJ d S )Nz\left(\frac{1}{2}\right)^{n})r   r#   r4  rB  r   r   r   test_issue_8409r  	  s(    >>>>>>>r   c                  V    ddl m}   | dd          }t          |          dk    sJ d S )Nr   
parse_exprz-B*AFr   zA \left(- B\right)sympy.parsing.sympy_parserr  r   )r  rl  s     r   test_issue_8470r  	  sF    555555
6E***A88,,,,,,,r   c                  \   t          ddd          } t          ddd          }t          | |z                      ||                     dk    sJ t          | |z                      |d|z                      dk    sJ t          | |z                      | |                      dk    sJ d S )Nr  r
  r3  zx \left(- y\right)r.  zx \left(- 2 y\right)z\left(- x\right) y)r   r   subsr  s     r   test_issue_15439r   	  s    S!QAS!QA!a%a!$$%%)>>>>>!a%aA&&''+BBBBB!a%a!$$%%)>>>>>>>r   c                  J    t          t          d                    dk    sJ d S )Nz\frac{a_1}{b_1}r  r   r   r   test_issue_2934r  	  s+    *++,,0BBBBBBBr   c                      d} t          |           }t          |          | k    sJ t          t          |                    dk    sJ d S )Nz	C_{x_{0}}z\cos{\left(C_{x_{0}} \right)})r$   r   rQ   )latexSymbolWithBracer  s     r   test_issue_10489r  	  sR    '#$$A88+++++Q==<<<<<<<r   c                  f    t          d          \  } }t          | dz  |dz  z             dk    sJ d S )Nz
m__1, l__1r
  z/\left(l^{1}\right)^{2} + \left(m^{1}\right)^{2}ru  )m__1l__1s     r   test_issue_12886r	  	  sL    &&JD$q47"##:; ; ; ; ; ;r   c                  V    ddl m}   | dd          }t          |          dk    sJ d S )Nr   r  z5/1Fr   z\frac{5}{1}r  )r  r  s     r   test_issue_13559r  	  sE    555555:ee,,,D;;.((((((r   c                  ~    t           t          dt          t          z   d          z   } t	          |           dk    sJ d S )Nr  Fr   zc - \left(a + b\right))r  r   rA  r  r   r  s    r   test_issue_13651r  	  s=    s2q1uu----D;;3333333r   c                  4   t          d          } t          d| z            }t          |          t          d| z            cxk    rdk    sn J t          |dz            dk    sJ t          |dz             dk    sJ t          | |z            dk    sJ 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  hes     r   test_latex_UnevaluatedExprr  	  s    A	1		B99ac

4444n444444Q<<:::::a==.....2;;*******r   c                  H   t          ddd          } t          ddd          }t          ddd          }t          | d                   dk    sJ t          d| d         z            dk    sJ |d                             || |z
            }t          |          d	k    sJ t          d
          \  }}}t          d||          }t          d||          }t          ||z  ||f                   dk    sJ t          ddd          }	t          |	d                   dk    sJ d S )NrU  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&   )
rU  r  r+  r  rV  rW  r;  r  r  r  s
             r   test_MatrixElement_printingr  	  s>   S!QAS!QAS!QA4>>\))))QtW////	$QAA8844444gGAq!S!QAS!QA!A#q!t=> > > > ua
#
#CT///////r   c                     t          ddd          } t          ddd          }t          ddd          }t          |            dk    sJ t          | | |z  z
  |z
            dk    sJ t          |  |z  | |z  |z  z
  |z
            dk    sJ d S )NrU  r  r  r+  z- AzA - A B - Bz- A B - A B C - B)r   r   r  s      r   test_MatrixSymbol_printingr  	  s    S!QAS!QAS!QA!99QqS1////!A!A!""&:::::::r   c                      t          ddd          } t          ddd          }t          t          | |                    dk    sJ d S )NrU  r  r  r
  A \otimes B)r   r   r   )rU  r  s     r   test_KroneckerProduct_printingr  
  sN    S!QAS!QA!!Q''((N::::::r   c            	         t          t          t          dz  z  t          z
  t          dz  t          dz  z
  t                    } t          t          t          z
  t          t          z   t                    }t          t          t          dz  z  t          t
          z  t          z  z
  t
          z   t          t          z
  t                    }t          t          | |                    dk    sJ t          t          | ||                    dk    sJ t          t          | |                     dk    sJ t          dt          z  gddt          z  z  gg          }t          j        |t                    }t          ddt          dz  z  gg          }t          j        |t                    }t          |||z   z            dcxk    r/t          t          t          ||          |                    k    sn J t          ddgddt          z  gg          }t          j        |t                    }t          ||z  |z             d	cxk    r/t          t          t          ||          |                    k    sn J 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  rF  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  r3  r5  r  r  r   r   r   r  r   from_Matrixr   r   )	tf1tf2tf3M_1T_1M_2T_2M_3T_3s	            r   test_Series_printingr$  
  s   
1QT6A:q!tad{A
6
6C
1q5!a%
+
+C
1QT6AqDF?Q.Aq
9
9CS!!""\] ] ] ]S#&&'' 	NN N N Nc""##^_ _ _ _ 1Q3%!QqS'#
$
$C
 
,S!
4
4C
1a1f+

C
 
,S!
4
4CcCi!!	K> > > > ZS# 6 6<<==> > > > > >
 1a&1ac(#
$
$C
 
,S!
4
4CS3 $3 e e e e6;LTWY\I]I]_b<c<c6d6de e e e e e e er   c                  ~   t          t          dz
  t          dz   t                    } t          |           dk    sJ t          t          dz   dt          z
  t                    }t          |          dk    sJ t          t          t          dz  dt          z  z   dz   t                    }t          |          dk    sJ 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   r3  r  r  r  s      r   test_TransferFunction_printingr'  '
  s    
1q5!a%
+
+C:://///
1q5!a%
+
+C:://///
1adQqSj1na
0
0C::5555555r   c            
      ,   t          t          t          dz  z  t          z
  t          dz  t          dz  z
  t                    } t          t          t          z
  t          t          z   t                    }t          t          | |                    dk    sJ t          t          | |                     dk    sJ t          ddgddt          z  gg          }t          j
        |t                    }t          dt          z  dgddt          dz
  z  gg          }t          j
        |t                    }t          ddt          t          dz
  z  z  gddgg          }t          j
        |t                    }t          ||z   |z             dcxk    rt          t          |||                    cxk    r_t          t          |t          ||                              cxk    r/t          t          t          ||          |                    k    sn J 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  rF  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  r3  r5  r  r   r   r   r  r   r  r   )r  r  r  r  r   r!  r"  r#  s           r   test_Parallel_printingr)  0
  sg   
1QT6A:q!tad{A
6
6C
1q5!a%
+
+C#s##$$DE E E E3$$$%%FG G G G 1a&1ac(#
$
$C
 
,S!
4
4C
1Q3(Q1q5	N+
,
,C
 
,S!
4
4C
1aAEm$q!f-
.
.C
 
,S!
4
4CsS!! &o ^ ^ ^ ^ c34455^ ^ ^ ^ :?|CQ]^acfQgQg?h?h9i9i^ ^ ^ ^ nss  AM  NQ  SV  AW  AW  Y\  t]  t]  n^  n^^ ^ ^ ^ ^ ^ ^ ^r   c                     t          t          t          t          z   t                    } t          t           t          z   t          t          z   t                    }t          t          t          dz  dt          z  z   dz   t                    }t          t          | g|gg                    dk    sJ t          t          | |g||  gg                    dk    sJ 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   r0  r  r  r3  r   r   r&  s      r   $test_TransferFunctionMatrix_printingr+  D
  s    
1a!eQ
'
'C
A261q5!
,
,C
1adQqSj1na
0
0C'#7788[\ \ \ \'#scC4[(ABBCC 	ZZ Z Z Z Z Zr   c            
         t          t          t          t          z   t                    } t          t           t          z   t          t          z   t                    }t	          t          | |                    dk    sJ t	          t          | |z  t          ddt                                        dk    sJ t	          t          | |d                    dk    sJ t	          t          | |z  d                    dk    sJ 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   r0  r  r  r   r   )r  r  s     r   test_Feedback_printingr.  N
  s    
1a!eQ
'
'C
A261q5!
,
,C#s##$$no o o o#c'#3Aq!#<#<==>> 	]] ] ] ] #sA&&''no o o o#c'***++ 	]] ] ] ] ] ]r   c                     t          dt          t                    } t          t          t          dz  dz
  t                    }t          t          t          dz
  t                    }t          t          dz  t          dz  dz
  t                    }t          | |g||gg          }t          ||g|| gg          }t          t	          ||                    dk    sJ t          t	          ||z  |d                    dk    sJ 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  tf4tfm_1tfm_2s         r   test_MIMOFeedback_printingr3  ]
  s   
1a
#
#C
1adQh
*
*C
1a!eQ
'
'C
1a4A1
-
-C"S#Jc
#;<<E"S#Jc
#;<<E eU++,,	pp p p p eEk5!4455	22 2 2 2 2 2r   c                     t          t          t          t          t                    } t          |           dk    sJ t          t          t          t          t          t          z            } t          |           dk    sJ t          t          t          t          t          t          z             } t          |           dk    sJ 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  r3  r5  r  r   )qs    r   test_Quaternion_latex_printingr6  u
  s    1aAA88-----1aAaC  A88/////1aAE""A88>>>>>>>r   c                      ddl m}  t          ddd          }t          ddd          }t           | ||                    dk    sJ d S )Nr   )TensorProductrU  r  r  r  )sympy.tensor.functionsr8  r   r   )r8  rU  r  s      r   test_TensorProduct_printingr:  ~
  sa    444444S!QAS!QAq!$$%%777777r   c                  t    ddl m}  ddlm}  || j        | j                  }t          |          dk    sJ d S )Nr   R2)WedgeProductz*\operatorname{d}x \wedge \operatorname{d}y)sympy.diffgeom.rnr=  sympy.diffgeomr>  dxdyr   )r=  r>  r'  s      r   test_WedgeProduct_printingrC  
  sY    $$$$$$++++++	beRU	#	#B99EEEEEEEr   c                  ^   t          ddd          } t          |           dk    sJ t          dt          ddd          d          }t          |          dk    sJ t          ddd          }t          |          d	k    sJ t          ddd          }t          |          d
k    sJ d S )Nr  r  Fr   z1^{-1}z
1^{1^{-1}}r  r.  z\frac{1}{9}z1^{-2})r    r   )expr_1expr_2expr_3expr_4s       r   test_issue_9216rI  
  s    B'''F==I%%%%C2...???F==M))))B'''F==N****B'''F==I%%%%%%r   c                  h
   ddl m} m}m}m}  | d          } |d|          \  }}}} |d|          }	 |d|g          \  }
}}} |d||g          } |d||||g          }t          |          d	k    sJ t          |           d
k    sJ  |
|          }t          |          dk    sJ  |
|	          }t          |          dk    sJ  |
|           }t          |          dk    sJ d |
|          z  }t          |          dk    sJ  |||| |	           }t          |          dk    sJ  ||| | |	          }t          |          dk    sJ  ||| ||	           }t          |          dk    sJ  |||           }t          |          dk    sJ  |||          }t          |          dk    sJ  || |           }t          |          dk    sJ dt          z    |
|          z  }t          |          dk    sJ  |||           }t          |          dk    sJ  |||            |
|          z   ||          z  }t          |          dk    sJ  |
|          d ||          z  z   }t          |          dk    sJ ddl m}  | |||||          |d|di          }t          |          dk    sJ  | |||||          |di          }t          |          dk    sJ  | ||| ||          |d|di          }t          |          d k    sJ  | ||| ||           |d|di          }t          |          d!k    sJ  | |||| |           |d| di          }t          |          d"k    sJ  | |||| |           |di          }t          |          d#k    sJ t           |
|           |
|                    }t          |          d$k    sJ t           |
|            |
|                     }t          |          d%k    sJ t           |||| |            |
t                     |
t                               }t          |          d&k    sJ t           ||            |
|           z    |
|            |
t                               }t          |          d'k    sJ t          d |
|           z   |
|            |
t                               }t          |          d(k    sJ d S ))Nr   )TensorIndexTypetensor_indices
TensorHeadtensor_headsLzi j k l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)})sympy.tensor.tensorrK  rL  rM  rN  r   r  rS  r   r  rB  )rK  rL  rM  rN  rO  rV  rW  r;  r_  i0rU  r  r+  r,  rQ  rR  r  rS  s                     r   test_latex_printer_tensorrV  
  sB   ]]]]]]]]]]]]A	1--JAq!Q	q	!	!Bi!--JAq!Q
3AA
3Aq!%%A88y    !99	!!!!1Q44D;;*$$$$1R55D;;.((((1aR55D;;*$$$$aadd7D;;,&&&&1QA2sD;;000001QQBD;;555551QAsD;;:::::1Q88D;;*****1Q77D;;+%%%%1aR!99D;;+%%%%aC1:D;;666661Q88D;;222221Q88AAaDD=1D;;@@@@@1Q44!AAaDD&=D;;///// 211111=1aAAq!55D;;.....=1aAA//D;;*****=1qb!Q!Q166D;;66666=1qb!aR1aA,77D;;:::::=1a!aR1a!Q-88D;;22222=1a!aR1a&11D;;/////QQqTT11Q44((D;;QQQQQQQrUUAAqbEE**D;;IIIIIQQq!aR!__aaddAAqbEE::D;;hhhhhQQrUUQQrUU]AAqbEE11aR5599D;;wwwwwQqq!uuWaaeeQQrUU33D;;nnnnnnnr   c                     t          d          \  } }}}}|  d|z  z   d|z  z
  d|z  z   d|z  z
  d}t          d          |k    sJ d	}t          dd          |k    sJ d
}t          dd          |k    sJ d}t          ddd          |k    sJ d}	t          d          |	k    sJ t          dd          |	k    sJ d}
t          dd          |
k    sJ t          t          f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}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)rZ  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}IEEEeqnarrayc                  (    t           d          S )Nr  rY  )r   )r  r  s   r   r  z&test_multiline_latex.<locals>.<lambda>'  s    q$EJJJ r   )r&   r   r   r  )rA  r  r  r*  rl  r  	expected2	expected3expected3dotsexpected3alignexpected2ieeer  r  s              @@r   test_multiline_latexrc  
  s   }--Aq!Q12!8QqS=!A#qs"DH 1d
;;;xGGGGI 1dA:>>>)KKKKI
 1dA:>>>)KKKKM
 1dA:MMMQ^^^^^N
 1dA&&.88881dA8<<<NNNNM 1dA>BBBmSSSS
:JJJJJKKKKKr   c            
      *   t          d          \  } }t          t          ||           t          t	          | |z            d          t          t          | |z            d          z  t          j        dz            }t          |          dk    sJ 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!   rS   rQ   r#   r:  r   )rA  r  sols      r   test_issue_15353rf  )  s    5>>DAq
aRAaC!__r#ac((A6QH HC::	00 0 0 0 0 0r   c                     t          d          } t          dd          }t          d| |          }t          t          |                    dk    sJ t          t	          |                    dk    sJ t          t          |dk                        d	k    sJ t          d
| |          }t          t          ||                    dk    sJ d S )Nr   r  Tr1  r  z\operatorname{E}\left[X\right]z \operatorname{Var}\left(X\right)r   z"\operatorname{P}\left(X > 0\right)r  z#\operatorname{Cov}\left(X, Y\right))r&   r   r   r   r   r   r   )r   r  r  r  s       r   test_latex_symbolic_probabilityrh  4  s    	BGd+++EsBAQ  $EEEEE!!DDDDDQU##$$(MMMMMsBAAq!!""&LLLLLLLr   c                      ddl m}  t          ddd          }t           | |                    dk    sJ t           | |dz                      dk    sJ d S )Nr   tracerU  r
   \operatorname{tr}\left(A \right)z$\operatorname{tr}\left(A^{2} \right) sympy.matrices.expressions.tracerk  r   r   )rk  rU  s     r   
test_tracero  ?  sq    666666S!QAq??AAAAAq!t!HHHHHHHr   c                  .   ddl m ddlm}   G fdd|           fd}fd}t	           |t
                              dk    sJ t	           |t
          d	z                      d
k    sJ t	           |t
                              dk    sJ d S )Nr   Basic)Exprc                       e Zd Z fdZdS )+test_print_basic.<locals>.UnimplementedExprc                 0                         | |          S N)__new__)r  rl  rr  s     r   rx  z3test_print_basic.<locals>.UnimplementedExpr.__new__O  s    ==a(((r   N)r   r   r   rx  rq  s   r   UnimplementedExprru  N  s.        	) 	) 	) 	) 	) 	) 	)r   ry  c                 >     |                                            S rw  )r  )r  ry  s    r   unimplemented_exprz,test_print_basic.<locals>.unimplemented_exprS  s       &&++---r   c                 6     |           }d|j         _        |S )NzUnimplementedExpr_x^1)	__class__r   )r  resultry  s     r   unimplemented_expr_sup_subz4test_print_basic.<locals>.unimplemented_expr_sup_subW  s#    ""4(($;!r   z.\operatorname{UnimplementedExpr}\left(x\right)r
  z2\operatorname{UnimplementedExpr}\left(x^{2}\right)z6\operatorname{UnimplementedExpr^{1}_{x}}\left(x\right))sympy.core.basicrr  sympy.core.exprrs  r   r  )rs  r{  r  rr  ry  s      @@r   test_print_basicr  G  s&   &&&&&&$$$$$$) ) ) ) ) ) )D ) ) )
. . . . .    
 ##A&&''+\\\\\##AqD))**=> > > >++A..//AB B B B B Br   c                  x   ddl m}  t          ddd          }t           | |          d          dk    sJ t           | |          d          d	k    sJ t          dd
d
          }t          dd
d
          }t          dd
d
          }t          | d          dk    sJ t          |||z  z
  |z
  d          dk    sJ t          | |z  ||z  |z  z
  |z
  d          dk    sJ t          dd
d
          }t          |d          dk    sJ t          dd
d
          }t          |d          dk    sJ d S )Nr   rj  rU  r
  rd  rb  z)\operatorname{tr}\left(\mathbf{A} \right)r  rl  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}rm  )rk  rU  r  r+  r  s        r   test_MatrixSymbol_boldr  c  s   666666S!QAqF33345 5 5 5qG444+, , , , 	S!QAS!QAS!QA!f---@@@@QqS1v666:; ; ; ;!A!A!F;;;RS S S S ua
#
#Cv...2CCCCC[!Q''AV,,,0FFFFFFFr   c                      t          ddd          } t          d          }t          t          | |                    dk    sJ d S )Nr   r  r
  r  z#\sigma_{\left( 0\; 1\; 2\right)}(x))r	   r$   r   r
   )r0  r  s     r   test_AppliedPermutationr  |  sU    Aq!AsA#Aq))**./ / / / / /r   c                      t          ddd          } t          t          |                     dk    sJ  t          dd          dd          } t          t          |                     dk    sJ 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  s    r   test_PermutationMatrixr    s    Aq!A"1%%&&*HHHHHAq!QA"1%%&&56 6 6 6 6 6r   c                     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          z  t          |t          z            z  |z  dt          |t          z            z  |dz  z  z   |t           k    |t          k     z  t          |d          z  fd	          t          ||z            z  t          z  |dt          f          f          }t           | |                    d
k    sJ t           |||t           t          fdt          d|dt          f          t          d|dt          f          f                    dk    sJ 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   rN   rQ   rS   r"   r   )r  r  r  r;  rB  fos         r   test_issue_21758r    s   CCCCCC222222sA5>>DAq	q1rc2,Jq1a*,E,Ez2b5QrT?1$qQrT{1a4'77!rc'a"f9MPRSTVWPXPX9XY	 	 1XX	&&(	)+,a*H6 H6 )7 
8 
8B ##$$ )C C C C C q1rc2,Jq1a*4M4M1;A1bz1J1J1L M M N NQTU U U U U Ur   c                  j   t          dt          z             dk    sJ t          dt          z   d          dk    sJ t          dt          z   d          dk    sJ t          dt          z   d          dk    sJ t          t          d	          d
k    sJ t          t          d          dk    sJ d S )Nr  z1 + irV  imaginary_unitrW  z1 + jr  z1 + footiz\text{i}tjz\text{j})r   r   r   r   r   test_imaginary_unitr    s    Q<<8####Qs+++x7777Qs+++x7777Qu---;;;;4(((K77774(((K777777r   c                  N   t          t          t                    d          dk    sJ t          t          t                    d          dk    sJ t          t          t                    d          dk    sJ t          t          t                    d          dk    sJ d S )NT)gothic_re_imz\Im{\left(x\right)}Fr  z\Re{\left(x\right)}r  )r   r?   r  rA   r   r   r   test_text_re_imr    s    AT***.DDDDDAU+++/SSSSSAT***.DDDDDAU+++/SSSSSSSr   c                     ddl m} m}m}m}m} ddlm} t          dd          \  }} | dd          }t          |          d	k    sJ  |d
|          }	t          |	          dk    sJ  |d|	||g          }
t          |
          dk    sJ  ||
d          }t          |          dk    sJ t          d          } ||j        |j                  }t           ||                    dk    sJ 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}rz  zC\operatorname{d}\left(g{\left(\mathbf{x},\mathbf{y} \right)}\right))r@  r  r  r  r  r  r?  r=  r&   r   r   r  r3  )r  r  r  r  r  r=  r  r3  r  r0  r  r  rz  s_fields                 r   test_latex_diffgeomr    sT   ZZZZZZZZZZZZZZ$$$$$$
%d
#
#
#CAaaA88{""""c1A88-----;vq1a&))D;;>>>>>a  A88}$$$$AabdmmGg&&''NO O O O O Or   c                     t          dt          z            dk    sJ t          dt          z            dk    sJ t          dt          z  t          z            dk    sJ t          dt
          z  t          z  t          z            dk    sJ t          dt          z  t          z            dk    sJ t          t                    d	k    sJ 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   test_unit_printingr    s    5>>]****8 444449V#$$(IIIII5f$%%)KKKKK5#99999<<;&&&&&&r   c                  l    t          d          } t          t          | | d                    dk    sJ d S )Nr  r
  z,\frac{d^{2}}{d \left(x^{*}\right)^{2}} x^{*})r$   r   r   )r:  s    r   test_issue_17092r    s9    E]]FFF1--..2aaaaaaar   c                     t          d          \  } }}}t          dd          \  }}}t          dt                    \  }}}	t          g dd	          d
k    sJ t          t          ddd          d	          dk    sJ t          dd	          dk    sJ t          dd	          dk    sJ t          g dd	          dk    sJ t          t          ddd          d	          dk    sJ t          dd	          dk    sJ t          dd	          dk    sJ t          g d          dk    sJ t          t          ddd                    dk    sJ t          d          dk    sJ t          d          dk    sJ t          t	          dd          d	          dk    sJ t          dd	          dk    sJ t          d          } t          d          }t          d          }t          | dz  d|dz  z  z   dz   |z   d	          d k    sJ t          d!d	          d"k    sJ t          t          d!          d	          d"k    sJ t          d#d	          d$k    sJ t          t          d#          d	          d$k    sJ t          d%d	          d&k    sJ t          t          d'          d(z  d	          d)k    sJ t          t          d*          d	          d)k    sJ t          d          } t          d+| z  dz   d	          d,k    sJ t          t          ddd          d	          dk    sJ t          t          d-            t          t          d.            t          t          d/            d S )0Nzx y z tr   Tr   zf g hr  r  ffffff@      @commadecimal_separatorz#\left[ 1; \  2{,}3; \  4{,}5\right]r  r  r  z\left\{1; 2{,}3; 4{,}5\right\})r  r  gffffff@z#\left( 1; \  2{,}3; \  4{,}6\right))r  z\left( 1;\right)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{,}02gQ2@r  r3  r5  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@gHz>z5{,}7 \cdot 10^{-7}g<sAC >g333333?z1{,}2 x + 3{,}4c                  (    t          g dd          S )Nr  &non_existing_decimal_separator_in_listr  r  r   r   r   r  z.test_latex_decimal_separator.<locals>.<lambda>  s    u[[[Dlmmm r   c                  B    t          t          ddd          d          S )Nr  r  r  %non_existing_decimal_separator_in_setr  )r   r   r   r   r   r  z.test_latex_decimal_separator.<locals>.<lambda>  s     uYqS%9%9Mtuuu r   c                  $    t          dd          S )Nr  'non_existing_decimal_separator_in_tupler  r  r   r   r   r  z.test_latex_decimal_separator.<locals>.<lambda>  s    u[Dmnnn r   )r&   r   r   r   r   r#   r   r  )
r  r3  r5  r  r;  r  rB  r  rz  r{  s
             r   test_latex_decimal_separatorr    s   ##JAq!Qgt,,,GAq!g8,,,GAq! ':::>ddddd1c3''7CCCGhhhhhG<<<@fffff1115HHHHH (;;;?aaaaa1c3''8DDDHeeeeeH===Accccc2226IIIII #EEEEE1c3''((,IIIII#EEEEE;;-----S7;;;zIIIIg666*DDDDAAA3AsF"S(1,'JJJNttttt'222j@@@@5W555CCCCw///8;;;;2'222h>>>> 999=SSSSS3G<<<@VVVVV<G<<<@VVVVVAQsg666:LLLLL1c3''8DDDHeeeee :mmnnn
:uuvvv
:nnooooor   c                  N    ddl m}  t           | d                    dk    sJ d S )Nr   Strr  )sympy.core.symbolr  strr  s    r   test_Strr    s9    %%%%%%ss3xx==D      r   c                  Z    t          d          d                    g d          k    sJ d S )Nz
~^\&%$#_{}r  )
z\textasciitildez\textasciicircumz\textbackslashz\&z\%z\$z\#z\_z\{z\})r   joinr   r   r   test_latex_escaper    sJ    &&"'' 3 3 3 + +      r   c                       G d d          } t           |                       dk    sJ t           |             f          dk    sJ d S )Nc                       e Zd Zd ZdS )#test_emptyPrinter.<locals>.MyObjectc                     dS )Nz<MyObject with {...}>r   )r   s    r   __repr__z,test_emptyPrinter.<locals>.MyObject.__repr__  s    **r   N)r   r   r   r  r   r   r   MyObjectr    s#        	+ 	+ 	+ 	+ 	+r   r  z'\mathtt{\text{<MyObject with \{...\}>}}z6\left( \mathtt{\text{<MyObject with \{...\}>}},\right)r  )r  s    r   test_emptyPrinterr    sv    + + + + + + + +
  JJJJJ ((**#\\\\\\\r   c                  8   dd l } |                     t                    j        d         j        dk    sJ t          t
                    dk    sJ 	 t          j        d           |                     t                    j        d         j        dk    sJ t          t
                    dk    sJ 	 t          j        d= n# t          j        d= w xY w|                     t                    j        d         j        dk    sJ t          t
                    dk    sJ d S )Nr   r  rV  rW  r  )	inspect	signaturer   
parametersdefaultr   r   set_global_settings_global_settings)r  s    r   test_global_settingsr    s!   NNN U##./?@HDPPPP88t	<(<<<<  ''23CDLPTTTTTQxx4 )*:;;L)*:;;;;; U##./?@HDPPPP88ts   AB> >Cc                  z    dd l } |                     |                     t                              t          u sJ d S )Nr   )pickleloadsdumpsr   )r  s    r   test_pickleabler  0  s:    MMM<<U++,,555555r   c            	      L   t          t          dd                    dk    sJ t          t          ddddt          z
  z  df                    dk    sJ t	          ddd          } t	          d	dd          }t          t          | |z  t          dg                    d
k    sJ d S )NrU  )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  s     r   %test_printing_latex_array_expressionsr  5  s    S),,--4444cAq!A#w?33448XXXXXS!QAS!QAacAq6**++/NNNNNNNr   c                      t          t          d                    } t          |           dk    sJ t          t          d                    } t          |           dk    sJ 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   )arrs    r   
test_Arrayr  <  s^    
b		

C::hhhhh
b		

C::xxxxxxxr   c                      t          d          5  t          t          t          z            dk    sJ 	 d d d            d S # 1 swxY w Y   d S )NFza a)r   r   rA  r   r   r   test_latex_with_unevaluatedr  D  s    	% & &QU||v%%%%%& & & & & & & & & & & & & & & & & &s   #AAA(  sympyr   r   r   sympy.algebras.quaternionr   !sympy.calculus.accumulationboundsr    sympy.combinatorics.permutationsr   r	   r
   sympy.concrete.productsr   sympy.concrete.summationsr   sympy.core.containersr   r   r  r   sympy.core.functionr   r   r   r   r   sympy.core.modr   sympy.core.mulr   sympy.core.numbersr   r   r   r   r   r   r   sympy.core.parametersr   sympy.core.powerr    sympy.core.relationalr!   r"   sympy.core.singletonr#   r  r$   r%   r&   (sympy.functions.combinatorial.factorialsr'   r(   r)   r*   r+   r,   %sympy.functions.combinatorial.numbersr-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   $sympy.functions.elementary.complexesr<   r=   r>   r?   r@   rA   &sympy.functions.elementary.exponentialrB   rC   rD   %sympy.functions.elementary.hyperbolicrE   rF   #sympy.functions.elementary.integersrG   rH   rI   (sympy.functions.elementary.miscellaneousrJ   rK   rL   rM   r  rN   (sympy.functions.elementary.trigonometricrO   rP   rQ   rR   rS   rT   &sympy.functions.special.beta_functionsrU   'sympy.functions.special.delta_functionsrV   rW   *sympy.functions.special.elliptic_integralsrX   rY   rZ   r[   r  r\   r]   r^   r_   r`   ra   'sympy.functions.special.gamma_functionsrb   rc   sympy.functions.special.hyperrd   re   )sympy.functions.special.mathieu_functionsrf   rg   rh   ri   #sympy.functions.special.polynomialsrj   rk   rl   rm   rn   ro   rp   rq   rr   -sympy.functions.special.singularity_functionsrs   +sympy.functions.special.spherical_harmonicsrt   ru   (sympy.functions.special.tensor_functionsrv   rw   &sympy.functions.special.zeta_functionsrx   ry   rz   r{   r|   sympy.integrals.integralsr}   sympy.integrals.transformsr~   r   r   r   r   r   r   r   r   r   sympy.logicr   sympy.logic.boolalgr   r   r   r   r   r   r   sympy.matrices.denser   $sympy.matrices.expressions.kroneckerr   "sympy.matrices.expressions.matexprr   &sympy.matrices.expressions.permutationr    sympy.matrices.expressions.slicer   sympy.physics.control.ltir   r   r   r   r   r   r   r   sympy.physics.quantumr   r   sympy.physics.quantum.tracer   sympy.physics.unitsr   r   r   r   r   r   r   sympy.polys.domains.integerringr   sympy.polys.fieldsr   sympy.polys.polytoolsr   sympy.polys.ringsr   sympy.polys.rootoftoolsr   r   sympy.series.formalr   r  r   sympy.series.limitsr   sympy.series.orderr   sympy.series.sequencesr   r   r   r   sympy.sets.conditionsetr   sympy.sets.containsr   sympy.sets.fancysetsr   r   r   sympy.sets.ordinalsr   r   r   sympy.sets.powersetr   sympy.sets.setsr   r   r   r   r   r   r   sympy.sets.setexprr   sympy.stats.crv_typesr    sympy.stats.symbolic_probabilityr   r   r   r   sympy.tensor.arrayr   r   r   r   r   0sympy.tensor.array.expressions.array_expressionsr   r   sympy.tensor.indexedr   r   r   sympy.tensor.toperatorsr   sympy.vectorr   r   r   r   r   r   r   sympy.testing.pytestr   r   r   r   r  r   r   r   r   r   r   r   symr  r   r   r   r  r3  r5  r  r  rA  r  r  r  r0  r;  r  rB  r  r<  r>  rC  rI  rN  rS  rX  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(  r7  r;  r>  rC  rG  rJ  rM  rP  rR  rT  rV  rZ  r^  r`  rc  re  ri  ru  rw  rz  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r1  r9  r<  r>  rG  rR  rV  rZ  r\  r_  rf  rj  rn  rt  rw  ry  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.  r3  r6  r:  rC  rI  rV  rc  rf  rh  ro  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   <module>r#     sf   ' ' ' ' ' ' ' ' ' ' 0 0 0 0 0 0 9 9 9 9 9 9 S S S S S S S S S S + + + + + + ) ) ) ) ) ) - - - - - - - - + + + + + + J J J J J J J J J J J J J J             U U U U U U U U U U U U U U U U U U * * * * * *             ( ( ( ( ( ( ( ( " " " " " " 5 5 5 5 5 5 5 5 5 5 H  H  H  H  H  H  H  H  H  H  H  H  H  H  H  HM M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M [ Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z G G G G G G G G G G ? ? ? ? ? ? ? ? F F F F F F F F F F K K K K K K K K K K K K : : : : : : U U U U U U U U U U U U U U U U 7 7 7 7 7 7 K K K K K K K K h h h h h h h h h h h h R R R R R R R R R R R R R R R R G G G G G G G G : : : : : : : : h h h h h h h h h h h h Z  Z  Z  Z  Z  Z  Z  Z  Z  Z  Z  Z  Z  Z  Z  Z  Z  Z  Z  Z  Z  Z M M M M M M B B B B B B B B Q Q Q Q Q Q Q Q f f f f f f f f f f f f f f . . . . . . u  u  u  u  u  u  u  u  u  u  u  u  u  u  u  u  u  u  u  u  u  u  u  u       L L L L L L L L L L L L L L L L L L ' ' ' ' ' ' A A A A A A ; ; ; ; ; ; D D D D D D 8 8 8 8 8 8 S  S  S  S  S  S  S  S  S  S  S  S  S  S  S  S  S  S  S  S 6 6 6 6 6 6 6 6 * * * * * * V V V V V V V V V V V V V V V V V V . . . . . . $ $ $ $ $ $ & & & & & & " " " " " " 5 5 5 5 5 5 5 5 # # # # # # / / / / / / % % % % % % $ $ $ $ $ $ G G G G G G G G G G G G 0 0 0 0 0 0 ( ( ( ( ( ( A A A A A A A A A A A A A A A A A A A A ( ( ( ( ( ( s s s s s s s s s s s s s s s s s s & & & & & & ( ( ( ( ( (E E E E E E E E E E E E/ / / / / / / / / / / / / /
 W V V V V V V V < < < < < < < < < < 5 5 5 5 5 5 V V V V V V V V V V V V V V V V V V: : : : : : : : : : : :> > > > > > > > > > > > > > > > > >            	 	 	 	 	 	 	 	  'w'<== 1aAq!Q1
''4
(
(
(1a	! 	! 	!SE SE SEl+ + +; ; ;8/ / /4 4 4.* * */P /P /PbI I I4 ; ; ; j3 j3 j3\K K K2 2 2"< < <$; ; ;4 4 41 1 1*=m =m =m@^ ^ ^%g %g %gP@ @ @A A AJ J J>6" 6" 6"r? ? ?/ / /
E E E2 2 2- - -2 2 22 2 26 6 64 4 4
9 9 9+ + +
2 2 2V V V
Z Z Zt- t- t-n/ / /. . .1 1 1. . .y y y4 4 4n n nA A A
C C C	/ 	/ 	/- - -"	$ 	$ 	$4 4 4A A AG G GE E E
G G G) ) )2 2 2F F FN N N
) ) )J J J	8 	8 	8U U UG G G*H H H(     $+o +o +o\9 9 9H H H? ? ?.
8 
8 
8- - -O O O@ @ @
7 7 7.O O O6V V V
X 
X 
XB B B
o o o
< < <; ; ;>? ? ?0 0 0
K K K` ` `"G G GN N NBC C C&3 3 3O O OB/ / /7 7 7tQ Q QBM M M< < <~ ~ ~"a "a "aH= = =0* * *0= = =\ \ \M M ML L LH H H0 0 0? ? ?$  
# # #  .2 2 2"1 1 15= 5= 5=p95 95 95x/ / / 6 6 6* * *2 2 2
" " ""G G GF F F
? ? ?- - -? ? ?C C C= = =; ; ;) ) )4 4 4
+ + +0 0 0,; ; ;; ; ;e e e86 6 6^ ^ ^(Z Z Z] ] ]2 2 20? ? ?8 8 8F F F& & &Xo Xo Xov2L 2L 2Lh0 0 0M M MI I IB B B8G G G2/ / /6 6 6U U U 8 8 8T T TO O O&' ' 'b b b
0p 0p 0pd! ! !  	] 	] 	]  *6 6 6
O O Oy y y& & & & &r   