a
    khM                 
   @   sP  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 d0lmZ d d1lmZmZmZmZmZmZmZmZ d d2lmZmZ d d3lmZ d d4lmZmZmZmZmZmZmZ d d5lmZ d d6lmZ d d7lmZ d d8lmZ d d9lmZmZ d d:lmZ d d;lmZ d d<lmZ d d=lmZ d d>lmZmZmZmZ d d?lmZ d d@lmZ d dAlmZmZmZ d dBlmZmZmZ d dClmZ d dDlmZm Z mZmZmZmZmZ d dElmZ d dFlm	Z	 d dGl
mZmZmZmZ d dHlmZmZmZmZmZ d dIlmZmZ d dJlmZmZmZ d dKlmZ d dLlmZm Z m!Z!m"Z"m#Z#m$Z$m%Z% d dMl&m'Z'm(Z(m)Z)m*Z* d dNl+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2 d dOl Z3d dPl4m5Z5m6Z6 G dQdR dRe3j7Z7e3dS\
Z8Z9Z:Z;Z<Z=Z>Z?Z@ZAe3dTdUdV\ZBZCZDdWdX ZEdYdZ ZFd[d\ ZGd]d^ ZHd_d` ZIdadb ZJdcdd ZKdedf ZLdgdh ZMe'didj ZNe)dkdl ZOdmdn ZPdodp ZQdqdr ZRdsdt ZSdudv ZTdwdx ZUdydz ZVd{d| ZWd}d~ ZXdd ZYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zadd Zbdd Zcdd Zddd Zedd Zfdd Zgdd Zhdd Zidd Zjdd Zkdd Zldd Zmdd Zndd Zodd Zpdd Zqdd Zrdd Zsdd Ztdd Zudd Zvdd Zwdd Zxdd Zydd ZzddĄ Z{ddƄ Z|ddȄ Z}ddʄ Z~dd̄ Zdd΄ ZddЄ Zdd҄ ZddԄ Zddք Zdd؄ Zddڄ Zdd܄ Zddބ Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Zd=d> Ze'd?d@ ZdAdB ZdCdD ZdEdF ZdGdH ZdIdJ ZdKdL ZdMdN ZdOdP ZdQdR ZdSdT ZÐdUdV ZĐdWdX ZŐdYdZ ZƐd[d\ Zǐd]d^ ZȐd_d` Zɐdadb Zʐdcdd Zːdedf Z̐dgdh Z͐didj Zΐdkdl Zϐdmdn ZАdodp Zѐdqdr ZҐdsdt ZӐdudv ZԐdwdx ZՐdydz Z֐d{d| Zאd}d~ Zؐdd Zِdd Zڐdd Zېdd Zܐdd Zݐdd Zސdd Zߐdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZdOS (      )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)
DotProduct)TransferFunctionSeriesParallelFeedbackTransferFunctionMatrix
MIMOSeriesMIMOParallelMIMOFeedback)
CommutatorOperator)Tr)metergibibytegram	microgramsecondmillimicro)ZZ)field)Poly)ring)RootSumrootof)fps)fourier_series)Limit)Order)SeqAdd
SeqFormulaSeqMulSeqPer)ConditionSet)Contains)ComplexRegionImageSetRange)OrdinalOrdinalOmega
OmegaPower)PowerSet)	FiniteSetIntervalUnionIntersection
ComplementSymmetricDifference
ProductSet)SetExpr)Normal)
CovarianceExpectationProbabilityVariance)ImmutableDenseNDimArrayImmutableSparseNDimArrayMutableSparseNDimArrayMutableDenseNDimArraytensorproduct)ArraySymbolArrayElement)IdxIndexedIndexedBase)PartialDerivative)
CoordSys3DCrossCurlDot
DivergenceGradient	Laplacian)XFAILraises_both_exp_powwarns_deprecated_sympy)latex	translategreek_letters_settex_greek_dictionarymultiline_latexlatex_escapeLatexPrinterN)mutauc                   @   s   e Zd ZdS )
lowergammaN__name__
__module____qualname__ r   r   M/var/www/auris/lib/python3.9/site-packages/sympy/printing/tests/test_latex.pyr   b   s   r   zx y z t w a b c s pk m nTintegerc                  C   sL   G dd dt } t| tdks$J G dd dt } t| tdksHJ d S )Nc                   @   s   e Zd Zdd ZdS )test_printmethod.<locals>.Rc                 S   s   d| | jd  S )Nzfoo(%s)r   )Z_printargsselfprinterr   r   r   _latexl   s    "test_printmethod.<locals>.R._latexNr   r   r   r   r   r   r   r   Rk   s   r   zfoo(x)c                   @   s   e Zd Zdd ZdS )r   c                 S   s   dS )Nfoor   r   r   r   r   r   q   s    r   Nr   r   r   r   r   r   p   s   r   )r;   r   x)r   r   r   r   test_printmethodj   s    r   c                  C   s@  t dt dksJ t td dks(J t tdt  dks@J t td t d td  dksdJ t dt t dks|J t dt t d	d
dksJ t dtd  t dd
dksJ t ddt  dd
dksJ t ttjd  dksJ t ttjtd ddddksJ t ttjtd ddddks6J t tdddddksRJ t tdddddksnJ t ttjdtjdddksJ t tdtddddksJ t tdtddddksJ t tttdtjt d dksJ t tttdtddt d dks J t tttddt d dksFJ t td dddd!ksbJ t tdd ddd"ks~J t tddddd#ksJ t td$dddd%ksJ t tdddddd&ksJ t tddddd'ksJ t tdtjddd(ksJ t tddtjddd)ks.J t tddddtddd*ksPJ t tdd$ddd+kslJ t td,dddd ttddd-ksJ t td,dddt	 d ttddd.ksJ t ttddtdd/ddd0ksJ t dt d1ksJ t dt d2d3d4ksJ t td d d5ks0J t td d d2d3d6ksPJ t dtd  d7ksjJ t dtt  d d8ksJ t td d9ksJ t td d2d3d:ksJ t tt dt  d;ksJ t tt dt  d2d3d<ksJ t tt dt  d d=d>ksJ t tt t d?ks4J t tt t dd=d?ksRJ t dt
d t d d@kstJ t dt
d t d dd=dAksJ t tttdBksJ tdC} tdD}t | d dEksJ t | d ddFdGksJ t t|| | ddHksJ t t|| | dddFdIks2J t dttt d dJksRJ t dttt d d2d3dKksvJ t t
tdLksJ t ttdd dMksJ t ttdd ddNdOksJ t t
td dPksJ t t
td2dQdLksJ t ttdd d2dQdRksJ t t
td d2dQdPks:J t ttdd, dSksVJ t ttdd, d2dTdUksvJ t td tdd, dVksJ t td tdd, d2dTdWksJ t tt
ddXksJ t tt
dddYgdZksJ t tt
dd[d\d]ksJ t tt
dddYgd[d\d^ks6J t tdtdd  g d_d`d\daksbJ td}t |jg dbdcksJ t |jg dbdddedfksJ t |dgd  dhksJ t |dgd  dddediksJ t |d/d  djk	sJ t dkt dlk	sJ t dkt d	d
dmk	s4J t dkt dnd
dok	sNJ t dtt dpk	shJ t ttd$ dpk	sJ t tttdd dqk	sJ t tttdd d2dTdrk	sJ t t dsk	sJ t tt@ dtk	sJ t tt@ t	@ duk
s
J t ttB dvk
s J t ttB t	B dwk
s:J t tt@ t	B dxk
sTJ t tttdyk
slJ t tt ?  dzk
sJ t ttttt	d{k
sJ t tt	tttd|k
sJ t tt@  d}k
sJ t t td~iddk
sJ t tt@ td~tdiddksJ t tt@ t	@ td~tdt	diddksBJ t ttB td~tdiddksdJ t ttB t	B td~tdt	diddksJ t tt@ t	B td~tdt	diddksJ t ttttd~tdiddksJ t ttddd$dddksJ t ttddddddks J t ttdd d$dddksDJ tdd2d}t t| t| dkspJ t ttddd$dddksJ t ttd,dd$dddksJ t ttdd,d$dddksJ t ttdd,d$dddksJ t ttddd$dddksJ t ttd$dd$dd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Z
mul_symbolz2 \cdot x \cdot yz\,z3\,x^{2}\,y      ?z1.5 \cdot 3^{x}   z\sqrt[32]{x}Fr   z!\frac{1}{2} x^{2} \left(-5\right)z\frac{1}{2} x^{2} \cdot 5z\left(-5\right) \left(-5\right)z5 \left(-5\right)z'\frac{1}{2} \left(-5\right) \frac{1}{2}z5 i 5z5 i \left(-5\right)z"x^{2} \left(\frac{x}{2} + 1\right)z$x^{3} \left(\frac{2 x}{3} + 1\right)   zx^{11} \left(2 x + 1\right)r   z	0 \cdot 1z	1 \cdot 0z	1 \cdot 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)Zfold_short_fracz1 / xz- \frac{3}{2}z- 3 / 2z\frac{1}{x^{2}}z\frac{1}{2 \left(x + y\right)}z\frac{x}{2}zx / 2z\frac{x + y}{2 x}z\left(x + y\right) / 2 x)Zlong_frac_ratioz \frac{1}{2 x} \left(x + y\right)z\frac{x + y}{x}z\frac{2 \sqrt{2} x}{3}z\frac{2 x}{3} \sqrt{2}z{\binom{x}{y}}x^*fz\left(x^{*}\right)^{2})Zparenthesize_superz{x^{*}}^{2}z=\frac{d^{2}}{d \left(x^{*}\right)^{2}} f{\left(x^{*} \right)}z2\frac{d^{2}}{d {x^{*}}^{2}} f{\left(x^{*} \right)}z\frac{2 \int x\, dx}{3}z\left(2 \int x\, dx\right) / 3z\sqrt{x}z\sqrt[3]{x})Zroot_notationzx^{\frac{1}{3}}zx^{\frac{3}{2}}itexz\root{3}{x}zx^{\frac{3}{4}})Zfold_frac_powerszx^{3/4}z \left(x + 1\right)^{\frac{3}{4}}z\left(x + 1\right)^{3/4}z\sqrt{2}z-7 + 3 \sqrt{2}alpha)alias\alphaz3 \alpha - 7)r   r  r  rT   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Zsymbol_namesz\neg x_iZy_izx_i \wedge y_iZz_izx_i \wedge y_i \wedge z_izx_i \vee y_izx_i \vee y_i \vee z_iz$z_i \vee \left(x_i \wedge y_i\right)zx_i \Rightarrow y_iz\frac{1}{\frac{1}{3}}z\frac{1}{(\frac{1}{3})^{2}}d   z\frac{1}{\frac{1}{100}}ppositiveze^{- p} \log{\left(p \right)}z\frac{1}{\frac{2}{3}}z\frac{1}{\frac{4}{3}}z\frac{1}{- \frac{3}{4}}z\frac{1}{-1}z\frac{1}{- \frac{1}{3}})r   r   yr"   Halfr   r   r   r   zrL   r(   r#   r   r   r|   r   r   Zcyclotomic_fieldextZfield_elementZprimes_aboverR   r   r   r   rB   rC   )x_starr  kr  r   r   r   test_latex_basicv   sH   $ $$"(,&




 

"
" 
   

 
 










"


""$ """""r*  c                   C   sT   t ddksJ t ddks J t d dks0J t tdks@J t tdksPJ d S )NTz\text{True}Fz\text{False}z\text{None})r   r   r   r   r   r   r   test_latex_builtins  s
    r+  c                   C   sF  t ttdddksJ t ttdddks0J t ttdddksHJ t ttttdks`J t ttdd	d
ksxJ t ttdddksJ t ttddd dksJ t ttddd dksJ t ttddd dksJ t ttttd dksJ t ttdd	d dks J t ttddd d dksBJ d S )Nr  r  z&{\left\langle x - 4 \right\rangle}^{5}r"  z&{\left\langle x + 3 \right\rangle}^{4}r   z"{\left\langle x \right\rangle}^{4}z({\left\langle - a + x \right\rangle}^{n}r  z'{\left\langle x - 4 \right\rangle}^{-2}r
  z'{\left\langle x - 4 \right\rangle}^{-1}r  z.{\left({\langle x - 4 \rangle}^{5}\right)}^{3}z.{\left({\langle x + 3 \rangle}^{4}\right)}^{3}z*{\left({\langle x \rangle}^{4}\right)}^{3}z0{\left({\langle - a + x \rangle}^{n}\right)}^{3}z/{\left({\langle x - 4 \rangle}^{-2}\right)}^{3}z/{\left({\langle x - 4 \rangle}^{-1}\right)}^{9})r   rr   r   anr   r   r   r   test_latex_SingularityFunction  sH    

r.  c                   C   sL   t tddddksJ t tddddddks6J t t dksHJ d S )	Nr   r  r  \left( 1\; 2\; 4\right)r     *\left( 1\; 2\right)\left( 4\; 5\; 6\right)\left( \right))r   r   r   r   r   r   test_latex_cycle6  s
    r3  c                  C   s$  t tddddksJ t tddddddks6J t t dksHJ t tddtd d	ksfJ t tdd
kszJ t tdddddksJ t tdddddddksJ t t dddksJ t > tj} dt_t tdddddksJ | t_W d    n1 s0    Y  d S )Nr   r  r  r/  r  r0  r1  r2  z"\left( 2\; 4\right)\left( 5\right)z\left( 5\right)r   F)Zperm_cyclicz,\begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}r  z<\begin{pmatrix} 0 & 1 & 2 & 3 \\ 1 & 0 & 3 & 2 \end{pmatrix})r   r   r   Zprint_cyclic)Zold_print_cyclicr   r   r   test_latex_permutation=  s2    r4  c                   C   s   t t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ddks\J t tdd	d
dddksxJ t tdd	d
dddksJ t tddd
dddksJ 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  )Z	full_precminmaxz1.0 \cdot 10^{4}r  r  z0.099999Tz9.99990000000000 \cdot 10^{-2})r   r   r   r   r   r   test_latex_FloatT  s"    r7  c                  C   s  t d} tt| j| j| j d | j dks2J tt| j| jdksLJ ttt| j| j dksjJ ttt| j | jdksJ ttd| j | j dksJ ttd| j | j | j dksJ ttdt | j | j d	ksJ tttd| j | j  d
ksJ ttd| j | j | j dks@J ttd| j | j dksbJ tttd| j | j  dksJ tt	| j| j| j d | j dksJ tt	| j| jdksJ tt	t| j | jdksJ ttt	| j| j dksJ tt
| jdks(J tt
| jd| j  dksJJ ttt
| j dksfJ tt
t| j dksJ tt| jdksJ tt| jd| j  dksJ ttt| j dksJ ttt| j dksJ d S )NAr  zs\mathbf{\hat{i}_{A}} \times \left(\left(3 \mathbf{{x}_{A}}\right)\mathbf{\hat{j}_{A}} + \mathbf{\hat{k}_{A}}\right)z0\mathbf{\hat{i}_{A}} \times \mathbf{\hat{j}_{A}}z?x \left(\mathbf{\hat{i}_{A}} \times \mathbf{\hat{j}_{A}}\right)zM- \mathbf{\hat{j}_{A}} \times \left(\left(x\right)\mathbf{\hat{i}_{A}}\right)zM\nabla\times \left(\left(3 \mathbf{{x}_{A}}\right)\mathbf{\hat{j}_{A}}\right)zd\nabla\times \left(\mathbf{\hat{i}_{A}} + \left(3 \mathbf{{x}_{A}}\right)\mathbf{\hat{j}_{A}}\right)zO\nabla\times \left(\left(3 \mathbf{{x}_{A}} x\right)\mathbf{\hat{j}_{A}}\right)z\x \left(\nabla\times \left(\left(3 \mathbf{{x}_{A}}\right)\mathbf{\hat{j}_{A}}\right)\right)zc\nabla\cdot \left(\mathbf{\hat{i}_{A}} + \left(3 \mathbf{{x}_{A}}\right)\mathbf{\hat{j}_{A}}\right)zL\nabla\cdot \left(\left(3 \mathbf{{x}_{A}}\right)\mathbf{\hat{j}_{A}}\right)z[x \left(\nabla\cdot \left(\left(3 \mathbf{{x}_{A}}\right)\mathbf{\hat{j}_{A}}\right)\right)zr\mathbf{\hat{i}_{A}} \cdot \left(\left(3 \mathbf{{x}_{A}}\right)\mathbf{\hat{j}_{A}} + \mathbf{\hat{k}_{A}}\right)z/\mathbf{\hat{i}_{A}} \cdot \mathbf{\hat{j}_{A}}zJ\mathbf{\hat{j}_{A}} \cdot \left(\left(x\right)\mathbf{\hat{i}_{A}}\right)z>x \left(\mathbf{\hat{i}_{A}} \cdot \mathbf{\hat{j}_{A}}\right)z\nabla \mathbf{{x}_{A}}z9\nabla \left(\mathbf{{x}_{A}} + 3 \mathbf{{y}_{A}}\right)z&x \left(\nabla \mathbf{{x}_{A}}\right)z&\nabla \left(\mathbf{{x}_{A}} x\right)z\Delta \mathbf{{x}_{A}}z9\Delta \left(\mathbf{{x}_{A}} + 3 \mathbf{{y}_{A}}\right)z&x \left(\Delta \mathbf{{x}_{A}}\right)z&\Delta \left(\mathbf{{x}_{A}} x\right))r   r   r   ijr   r)  r   r   r   r   r$  r   )r8  r   r   r   test_latex_vector_expressionsc  st     



 





r;  c                  C   s  t d\} }}t d\}}}}t|dks.J t|dks>J t|dksNJ t|dks^J dd tD }t|tt  dksJ t| | dksJ t| | d	ksJ ttd
dksJ ttddksJ ttddksJ 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sDJ ttddksZJ ttddkspJ ttddksJ ttddksJ ttdtd  d!ksJ d S )"NzGamma, lambda, rhoztau, Tau, TAU, taU\tau
\mathrm{T}c                 S   s   h | ]}|  qS r   )
capitalize).0lr   r   r   	<setcomp>      z%test_latex_symbols.<locals>.<setcomp>r   z\Gamma + \lambdaz\Gamma \lambdaZq1zq_{1}Zq21zq_{21}Zepsilon0z\epsilon_{0}omega1
\omega_{1}Z91Z	alpha_newz\alpha_{new}zC^origzC^{orig}zx^alphaz
x^{\alpha}z
beta^alphaz\beta^{\alpha}ze^Alphaze^{\mathrm{A}}zomega_alpha^betaz\omega^{\beta}_{\alpha}omegarT   z\omega^{\beta})r%   r   r   lensetr   keysr#   )GammaZlmbdarhor   TauZTAUZtaUZcapitalized_lettersr   r   r   test_latex_symbols  s,    rL  c                  C   sb   t d\} }}t||  |kdks&J t|| |  dkdksBJ t|d |d  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   )rJ  Zmassvolumer   r   r   test_latex_symbols_failing  s    
rO  c                  C   s  t ttdksJ t tdtd dks0J td} t | tdksLJ t | dks\J td}t |ttdkszJ t |dksJ td	}t |tttd
ksJ t |d	ksJ td}t |dksJ t |tdksJ td}t |tttdksJ t tttdks J t ttdddks:J t tttd dksVJ t |tdkslJ t |dks~J td}t |tttdksJ t |tdksJ t |dksJ td}t |dksJ t |tdksJ 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sPJ t td$d!ksfJ t td%d#ks|J t td&d'ksJ t td(d)ksJ t tdtd*d+ksJ t td td*d,ksJ 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 d0ksxJ t td  d d1ksJ t td" d d2ksJ t td$ d d1ksJ t td% d d2ksJ t tdtd*d d3ks
J t td td*d d4ks,J t td"td*d d5ksNJ t td$td*d d4kspJ t td%td*d d5ksJ t td6d6ksJ t td7dksJ t td8d9ksJ t tddksJ t td:d9ks J t td6 d;ksJ t td7 d<ks0J t td8 d=ksHJ t td d<ks`J t td: d=ksxJ t td6 d d>ksJ t td7 d d?ksJ t td8 d d@ksJ t td d d?ksJ t td: d d@ksJ t td6td*d dAks&J t td7td*d dBksHJ t td8td*d dCksjJ t tdtd*d dBksJ t td:td*d dCksJ t td6 dD dEksJ t td7 dD dFksJ t td8 dD dGksJ t td dD dFksJ t td: dD dGks:J t td6td*dD dHks\J t td7td*dD dIks~J t td8td*dD dJksJ t tdtd*dD dIksJ t td:td*dD dJksJ t td6 t dKks J t td7 t dLksJ t td8 t dMks8J t td t dLksTJ t td: t dMkspJ t td6td*t dNksJ t td7td*t dOksJ t td8td*t dPksJ t tdtd*t dOksJ t td:td*t dPk	sJ td}t td6 | dQk	s>J t td7 | dRk	sZJ t td8 | dSk	svJ t td | dRk	sJ t td: | dSk	sJ t td6td*| dTk	sJ t td7td*| dUk	sJ t td8td*| dVk
sJ t tdtd*| dUk
s6J t td:td*| dVk
sXJ t tdWtdXk
srJ t tdWt| dYk
sJ t tdZtdXk
sJ t tdZt| dYk
sJ t td[td\k
sJ td]}t |d^k
sJ t |td_ksJ t t	td`ks(J t t	tdadbdcksBJ t t	dtd  dadbddksdJ t t	td dadbdeksJ t t
td dfksJ t t
td dgdhdiksJ t t
td djdhdkksJ t t
td djdadldmksJ t ttdgdhdnksJ t ttdgdhdoks,J t ttdpksBJ t tt dqksZJ t ttd drkstJ t ttdsksJ t tt dtksJ t ttd duksJ t ttdvksJ t tt dwksJ t ttd dxksJ t tdtdyksJ t tdtd dzks8J t td{td|ksPJ t td{td}kshJ t ttd~ks~J t ttdksJ t ttdksJ t ttd dksJ t ttd dksJ t ttd dksJ t ttdtd{ dksJ t tttd dks2J t ttdtd{ dksPJ t tttd dkslJ t ttdksJ t ttd dksJ t ttdksJ t ttt dksJ t ttdksJ t ttdksJ t ttd dksJ t ttd dks,J t ttdksBJ td}t t|dks`J t ttdksvJ t tttdksJ t tttdfdksJ t tttt fdksJ t ttt ttfdksJ 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 t!ttdksTJ t t!ttd dkspJ t t"ttdksJ t t"ttd dksJ t t#tdksJ t t$tdksJ t ttdksJ t ttdksJ t t%ttdksJ t t&tdks*J t t'tdks@J t t'td dksZJ t t'ttdksrJ t t'ttd dksJ t t(tdksJ t t(td dksJ t t)ttdksJ t t)ttd dksJ t t*ttt+dksJ t t*ttt+d dks*J t t,tdks@J t t,td dksZJ t t,ttdksrJ t t,ttd dksJ t t-tdksJ t t-td dksJ t t.ttdksJ t t.ttd dksJ t t/ttdks
J t t/ttd dks&J t t/tdks<J t t/td dksVJ t t0tttdkspJ t t0tttd dksJ t t0ttdksJ t t0ttd dksJ t t1tdksJ t t1td dksJ t t2ttdks
J t t2ttd dks&J t t3td dks@J t t4td dksZJ t t5td dkstJ t t6td dksJ t t6tdksJ t t7t+tt8tdksJ t t7t+tt8td dksJ t t9t+ttdksJ t t9t+ttd dksJ t t:t+tdks0J t t:t+td dksLJ t t;t+tdksdJ t t;t+td dksJ t t<t+tdksJ t t<t+td dksJ t t=t+ttdksJ t t=t+ttd dksJ t t>t+tdksJ t t>t+td dks J t t?t+ttdks:J t t?t+ttd dksXJ t t@t+tdkspJ t t@t+td dksJ tddad֍}	tddad֍}
t tAt+tB|	|
dksJ t tAt+tB|	|
d{ dksJ t tCt+tB|	|
dksJ t tCt+tB|	|
d{ dksJ t tDddks2J t tDdd{ dksLJ t tEt+dksbJ t tEt+d dks|J t tFt+dksJ t tFt+d dksJ t tGtdksJ t tGtd dksJ t tGttdksJ t tGttd dksJ t tHtdks&J t tHtd dks@J t tHttdksXJ t tHttd dkstJ t tIt+dksJ t tIt+d dksJ t tJt+dksJ t tJt+d dksJ t tKt+dksJ t tKt+ddksJ t tKt+tdksJ t tKt+tKt+ dks8J t tLtKt+ddksTJ t tKt+t dksnJ t tKt+ttM dksJ t tNtddksJ t tNtd ddksJ t tNdtd dksJ t tNdt ddksJ t tNddt dksJ t tNtdd dks.J t dtNtd dksJJ t tNddt t+ dksjJ td}t |tdksJ t |d ksJ d S (  Nze^{x}r   r  z	e + e^{2}r  zf{\left(x \right)}gzg{\left(x,y \right)}hzh{\left(x,y,z \right)}Liz\operatorname{Li}z"\operatorname{Li}{\left(x \right)}rT   z\beta{\left(x,y,z \right)}z!\operatorname{B}\left(x, y\right)Fr   z!\operatorname{B}\left(x, x\right)z%\operatorname{B}^{2}\left(x, y\right)z\beta{\left(x \right)}\betara   z\gamma{\left(x,y,z \right)}z\gamma{\left(x \right)}\gammaa_1za_{1}za_{1}{\left(x \right)}abz\operatorname{ab}Zab1z\operatorname{ab}_{1}Zab12z\operatorname{ab}_{12}Zab_1Zab_12Zab_cz\operatorname{ab}_{c}Zab_cdz\operatorname{ab}_{cd}r   z"\operatorname{ab}{\left(x \right)}z&\operatorname{ab}_{1}{\left(x \right)}z'\operatorname{ab}_{12}{\left(x \right)}z&\operatorname{ab}_{c}{\left(x \right)}z'\operatorname{ab}_{cd}{\left(x \right)}z%\operatorname{ab}^{2}{\left( \right)}z)\operatorname{ab}_{1}^{2}{\left( \right)}z*\operatorname{ab}_{12}^{2}{\left( \right)}z&\operatorname{ab}^{2}{\left(x \right)}z*\operatorname{ab}_{1}^{2}{\left(x \right)}z+\operatorname{ab}_{12}^{2}{\left(x \right)}r,  Za1Za12za_{12}Za_12za{\left( \right)}za_{1}{\left( \right)}za_{12}{\left( \right)}za^{2}{\left( \right)}za_{1}^{2}{\left( \right)}za_{12}^{2}{\left( \right)}za^{2}{\left(x \right)}za_{1}^{2}{\left(x \right)}za_{12}^{2}{\left(x \right)}    za^{32}{\left( \right)}za_{1}^{32}{\left( \right)}za_{12}^{32}{\left( \right)}za^{32}{\left(x \right)}za_{1}^{32}{\left(x \right)}za_{12}^{32}{\left(x \right)}za^{a}{\left( \right)}za_{1}^{a}{\left( \right)}za_{12}^{a}{\left( \right)}za^{a}{\left(x \right)}za_{1}^{a}{\left(x \right)}za_{12}^{a}{\left(x \right)}za^{ab}{\left( \right)}za_{1}^{ab}{\left( \right)}za_{12}^{ab}{\left( \right)}za^{ab}{\left(x \right)}za_{1}^{ab}{\left(x \right)}za_{12}^{ab}{\left(x \right)}za^12za^{12}{\left(x \right)}z)\left(a^{12}\right)^{ab}{\left(x \right)}Za__12Za_1__1_2za^{1}_{1 2}{\left(x \right)}rC  rD  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})rZ  rX  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   rB   r   r   r$  r&  rT   r#   r,  rR   rO   rN   rD   r)   r)  r+   r*   r(   r&   r'   rG   rF   rH   rJ   rI   r;   r@   r>   r=   ra   r$   r   r   r   rb   rQ   rE   rK   r<   r{   rw   ry   rx   r-  rz   rY   rX   rW   rZ   r]   r`   r^   r_   r\   r[   ro   brm   rk   rl   rq   rj   rp   ri   rn   rs   mrt   r?   r9   r:   r4   r5   r7   r8   rA   r   r  r   )r  rP  rQ  rR  ZmybetarU  rV  rC  r_  ra  rd  re  r   r   r   test_latex_functions  s   """"
""""""""""""""""""""






























 rh  c                  C   s8   G dd dt } t| dks J t| tdks4J d S )Nc                   @   s   e Zd ZdS )z6test_function_subclass_different_name.<locals>.mygammaNr   r   r   r   r   mygamma)  s   ri  z\operatorname{mygamma}z'\operatorname{mygamma}{\left(x \right)})ra   r   r   )ri  r   r   r   %test_function_subclass_different_name(  s    rj  c               
   C   s   ddl m} m} ttttt| tddtdddt |dksDJ ttt tddt |d	kshJ tt| dfd
|dksJ ttt td|dksJ d S )Nr   r   r&  r   )r   r   r  r  zt{G_{4, 5}^{2, 3}\left(\begin{matrix} \pi, \pi, x & 1 \\0, 1 & 1, 2, \frac{3}{\pi} \end{matrix} \middle| {z} \right)})r   zS{G_{1, 1}^{1, 0}\left(\begin{matrix}  & 1 \\0 &  \end{matrix} \middle| {z} \right)})r  zL{{}_{2}F_{1}\left(\begin{matrix} 2, x \\ 3 \end{matrix}\middle| {z} \right)}zH{{}_{0}F_{1}\left(\begin{matrix}  \\ 1 \end{matrix}\middle| {z} \right)})	sympy.abcr   r&  r   rd   r   r   rc   rk  r   r   r   test_hyper_printing/  s    rm  c                  C   s0  ddl m} m}m}m}m}m}m}m}m	}m
}	 ddlm}
 t| t|
d t dksZJ t|t|
dkspJ t|t|
dksJ t|t|
dksJ t|t|
d d d	ksJ t|t|
d
ksJ t|t|
dksJ t|t|
dksJ 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r&  r  zJ^{k}_{n}\left(z^{2}\right)zY_{n}\left(z\right)zI_{n}\left(z\right)zK_{n}\left(z\right)z.\left(H^{(1)}_{n}\left(z^{2}\right)\right)^{2}zH^{(2)}_{n}\left(z\right)zj_{n}\left(z\right)zy_{n}\left(z\right)zh^{(1)}_{n}\left(z\right)zh^{(2)}_{n}\left(z\right))Zsympy.functions.special.besselrn  ro  rp  rq  rr  rs  rt  ru  rv  rw  rl  r&  r   r-  r)  )rn  ro  rp  rq  rr  rs  rt  ru  rv  rw  r&  r   r   r   test_latex_bessel@  s    0ry  c                  C   sx   ddl m} m} ddlm} t| |dks0J t||dksDJ t| |d dks\J t||d dkstJ d S )	Nr   )fresnelsfresnelcrx  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_functionsrz  r{  rl  r&  r   )rz  r{  r&  r   r   r   test_latex_fresnelR  s    r}  c                   C   s   t dt dksJ d S )Nr
  z\left(-1\right)^{x}r   r   r   r   r   r   test_latex_brackets[  s    r  c                  C   sd  t dddd} tt dddd}t| t|  }t|d t|d  }|dksTJ |dks`J d	}ttd
t ddks~J ttdtddksJ ttdtdt dd| d ksJ ttdtdt dd d| d ksJ ttdtdt dt dfd| d ksJ ttddks4J ttddksJJ ttddks`J d S )NZPsi_0TF)complexrc  Psir   z\Psi_{0} \overline{\Psi_{0}}z \overline{{\Psi}_{0}} {\Psi}_{0}z\mathrel{..}\nobreak x1r9  z{x_{1}}_{i}x2z{x_{2}}_{i}Zx3Nz{x_{3}}_{{i}_{0zN - 1}}r   zN}}Zx4r,  rf  z{x_{4}}_{{i}_{azb}}ra   rT  za bZa_bza_{b})r#   r   r   r=   r   r   )Z
Psi_symbolZPsi_indexedZsymbol_latexZindexed_latexintervalr   r   r   test_latex_indexed_  s    (,2r  c               	   C   s  t ttd tdddksJ t ttttd  tdddksDJ t tttttd  tdddddksrJ t ttttttd  tdddddddksJ t tttt tddd	ksJ t tttt td  tddd
ksJ t ttttt td  tddtdddks*J t tttttt td  tddtddtdddksjJ td} t tt| tttddtdddt | tt ksJ t ttt| tttddtddtdddt | tt ksJ t tttd tdd tdddksJ t ttttttddtdd tddtdddksXJ t tttt t tdtftdddksJ t tttddd dksJ t t| ttd dksJ t t| ttt	fdksJ 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snJ t t| ttddd ksJ d S )!Nr  Fr   z\frac{d}{d x} x^{3}r  z8\frac{d}{d x} \left(x^{2} + \sin{\left(x \right)}\right)z@\frac{d^{2}}{d x^{2}} \left(x^{2} + \sin{\left(x \right)}\right)z@\frac{d^{3}}{d x^{3}} \left(x^{2} + \sin{\left(x \right)}\right)z3\frac{\partial}{\partial x} \sin{\left(x y \right)}zH\frac{\partial}{\partial x} \left(x^{2} + \sin{\left(x y \right)}\right)zP\frac{\partial^{2}}{\partial x^{2}} \left(x^{2} + \sin{\left(x y \right)}\right)zP\frac{\partial^{3}}{\partial x^{3}} \left(x^{2} + \sin{\left(x y \right)}\right)r  z*\frac{\partial^{2}}{\partial y\partial x} z.\frac{\partial^{3}}{\partial y\partial x^{2}} z0\frac{d}{d x} \left(- \frac{d}{d x} y^{2}\right)z<\frac{d^{2}}{d x^{2}} \left(- \frac{d^{2}}{d x^{2}} y\right)r   z5\frac{d}{d y} \int\limits_{0}^{\infty} e^{- x y}\, dxz \left(\frac{d}{d x} x\right)^{2}z1\left(\frac{d}{d x} f{\left(x \right)}\right)^{2}z(\frac{d^{n}}{d x^{n}} f{\left(x \right)}r  r  z<\frac{\partial}{\partial x_{1}} f{\left(x_{1},x_{2} \right)}n1z0\frac{d^{n_{1}}}{d x^{n_{1}}} f{\left(x \right)}n2z`\frac{d^{\max\left(n_{1}, n_{2}\right)}}{d x^{\max\left(n_{1}, n_{2}\right)}} f{\left(x \right)}rdZdiff_operatorz2\frac{\mathrm{d}}{\mathrm{d} x} f{\left(x \right)})r   r   r   rR   r$  r   r|   rB   r   r-  r#   rI   )r  r  r  r  r  r   r   r   test_latex_derivativest  sr    $, *
4
 
*
,0
&



 
r  c                   C   s$   t ttt 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   r$  r   r   r   r   test_latex_subs  s    r  c                	   C   s  t ttttdksJ t ttd tddfdks:J t ttd tddfdksZJ t tttd  tddftd	ksJ t tttd  tddftd
ddksJ t tttd  tddftd
dddksJ t tttdfdksJ t ttt ttdksJ t ttt t tttdks2J t ttt t t 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sJ t tttd t tdksJ t ttttt t tdksJ t tttd dksJ t ttt tdks$J t tttd  tdksDJ t ttt tdks`J t tttdddks|J t tttddfdddksJ d S ) Nz\int \log{\left(x \right)}\, dxr  r   r   z\int\limits_{0}^{1} x^{2}\, dx
      z \int\limits_{10}^{20} x^{2}\, dxz)\int\int\limits_{0}^{1} x^{2} y\, dx\, dy	equation*modezI\begin{equation*}\int\int\limits_{0}^{1} x^{2} y\, dx\, dy\end{equation*}Tr  r  z&$$\int\int_{0}^{1} x^{2} y\, dx\, dy$$z\int\limits^{0} x\, dxz\iint x y\, dx\, dyz\iiint x y z\, dx\, dy\, dzz#\iiiint t x y z\, dx\, dy\, dz\, dtz8\int\int\int\int\int\int x\, dx\, dx\, dx\, dx\, dx\, dxz,\int\limits_{0}^{1}\int\int x\, dx\, dy\, dzz(\int \left(- \int y^{2}\, dx\right)\, dxz=\int \left(- \int \left(- \int y\, dx\right)\, dx\right)\, dxz\left(\int z\, dz\right)^{2}z\int \left(x + z\right)\, dzz&\int \left(x + \frac{z}{2}\right)\, dzz\int x^{y}\, dzr  r  z\int x\, \mathrm{d}xz#\int\limits_{0}^{1} x\, \mathrm{d}x)r   r|   rC   r   r$  r&  tr   r   r   r   test_latex_integrals  sT     "$





r  c                  C   s   t tfD ]X} t| tt td gdks,J t| tdddksFJ t| tdddksJ qt} t| tt td g dksJ t| tdd dksJ t| tdd dksJ d S )Nr  z\left\{x^{2}, x y\right\}r   r0  z\left\{1, 2, 3, 4, 5\right\}   z4\left\{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12\right\})	frozensetrG  r   r   r$  ranger   sr   r   r   test_latex_sets  s     
 r  c                  C   s&   t dd} t| }t|dks"J d S )Nr   r  z%SetExpr\left(\left[1, 3\right]\right))r   r   r   )Zivser   r   r   test_latex_SetExpr  s    
r  c                  C   s  t tdddksJ t tdddks,J t tddddksDJ t tdd	dd
ks\J t td	dddkstJ t tdtddksJ t ttdddksJ t tdt ddksJ t tt tdksJ t ttt ddksJ td\} }}t t| ||dksJ t t| dddks2J t td|ddksLJ t tdd|dksfJ tddd}tdddd}tdddd }t t||d d!ksJ t tt |dd"ksJ t t|td#ksJ t t| | d d$ksJ 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)r9  Tr   r-  )negativer   r  )r!  r   z\left\{i, i + 1, i + 2\right\}z#\left\{\ldots, n - 4, n - 2\right\}z\left\{p, p + 1, \ldots\right\}z!\text{Range}\left(a, a + 3\right))r   r   r   r%   r#   )r,  rf  cr9  r-  r  r   r   r   test_latex_Range  s,    r  c            
      C   s  t td dtf} td}d}t| |ks.J d}t||ksBJ t td d}tdd}d}t||ksnJ d}t||ksJ t td t df}tdt df}d	}t||ksJ d
}t||ksJ d}tt| ||ksJ d}tt|||ksJ d}tt|||ks J d}tt| ||ks<J d}tt|||ksXJ d}tt|||kstJ t td tdtf}d}t||ksJ td}t |td  tddf}	d}t|	|ksJ 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}rf  z\left[0, b, 4 b\right])	r   r,  r   r   r   r   r   r   r#   )
s1s2	latex_strZs3Zs4Zs5Zs6Zs7rf  Zs8r   r   r   test_latex_sequences  sJ    
r  c                  C   s&   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  r   r   r   test_latex_FourierSeriesL  s    r  c                  C   s$   d} t ttdt | ks J d S )Nz;\sum_{k=1}^{\infty} - \frac{\left(-1\right)^{- k} x^{k}}{k}r   )r   r   rC   r   r  r   r   r   test_latex_FormalPowerSeriesR  s    r  c                  C   s   t ddd} ttdddks"J ttd| dks8J ttd| dddksRJ ttd| dddkslJ ttd| ddd	ksJ ttd| ddd
ksJ d S )Nr,  Trb  r   z\left\{0\right\}z\left[0, a\right]Fz\left(0, a\right]z\left[0, a\right)z\left(0, a\right))r#   r   r   r,  r   r   r   test_latex_intervalsW  s    r  c                  C   sZ   t ddd} ttdddks"J ttd| dks8J tt| d | d d	ksVJ d S )
Nr,  Trb  r   r   z\left\langle 0, 1\right\ranglez\left\langle 0, a\right\rangler  z&\left\langle a + 1, a + 2\right\rangle)r#   r   r   r  r   r   r   test_latex_AccumuBoundsa  s    r  c                   C   s   t tjdksJ d S )N	\emptyset)r   r"   EmptySetr   r   r   r   test_latex_emptyseti  s    r  c                   C   s   t tjdksJ d S )Nz
\mathbb{U})r   r"   UniversalSetr   r   r   r   test_latex_universalsetm  s    r  c                  C   s2   t d} t d}t|| }t| dks.J d S )Nr8  Bz- (A B - B A))r   r   r   doit)r8  r  Zcommr   r   r   test_latex_commutatorq  s    
r  c                   C   sP   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sLJ d S )Nr   r   r  r  z(\left[0, 1\right] \cup \left[2, 3\right]r  z*\left\{1, 2\right\} \cup \left[3, 4\right])r   r   r   r   r   r   r   test_latex_unionx  s     r  c                   C   s&   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   r$  r   r   r   r   test_latex_intersection  s    r  c                   C   s*   t ttddtd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   r   test_latex_symmetric_difference  s
    r  c                   C   s   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   r   test_latex_Complement  s    r  c                  C   s   t dd} t dd}tddd}t| d dt|  ks<J t| d dt|  ksXJ t| | |  dt| t|t|f ksJ d S )	Nr   r   r  r  r  z%s^{2}z%s^{10}z%s \times %s \times %s)r   r   r   flatten)lineZbiglinefsetr   r   r   test_latex_productset  s    

r  c                  C   s$   t ddd} tt| dks J d S )Nr   r  r  z.\mathcal{P}\left(\left\{1, 2, 3\right\}\right))r   r   r   )r  r   r   r   test_latex_powerset  s    r  c                  C   sr   t  } t| dksJ tdd}t|dks0J tt|tdddksLJ tttddtdddksnJ d S )N\omegar  r  z3 \omega^{2}r   z3 \omega^{2} + \omegaz\omega^{2} + 2 \omega)r   r   r   r   )r_  wpr   r   r   test_latex_ordinals  s    
r  c                  C   s`  t d\} }}}t| }t|}t|}t|}t||dd}t||dd}	t||dd}
t||dd}t||dd}t||dd}t||dd}t||dd}t||}t||}tt||	dddksJ tt||	dddksJ 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sXJ tt|
|ddd
kstJ tt||dddksJ tt||dddksJ tt||dddksJ tt||dddksJ tt||	dddks J tt|
|dddksJ tt||dddks8J tt||dddksTJ tt||dddkspJ tt||	dddksJ tt|
|dddksJ tt||dddksJ tt||dddksJ tt|| dksJ tt||	dksJ tt|
|dks,J tt||dksDJ 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  )r,  rf  r  dr8  r  CDZU1ZU2ZI1ZI2ZC1ZC2ZD1ZD2ZP1ZP2r   r   r   test_set_operators_parenthesis  s    























r  c                   C   s   t tjdksJ d S )N
\mathbb{C})r   r"   	Complexesr   r   r   r   test_latex_Complexes  s    r  c                   C   s   t tjdksJ d S )N
\mathbb{N})r   r"   r  r   r   r   r   test_latex_Naturals"  s    r  c                   C   s   t tjdksJ d S )N\mathbb{N}_0)r   r"   	Naturals0r   r   r   r   test_latex_Naturals0&  s    r  c                   C   s   t tjdksJ d S )N
\mathbb{Z})r   r"   Integersr   r   r   r   test_latex_Integers*  s    r  c                  C   s   t d} ttt| | d tjdks*J t d}tt| |f| | h dddh}t|dksdJ tt| |ff| | th dddh}t|d	ksJ d S )
Nr   r  z2\left\{x^{2}\; \middle|\; x \in \mathbb{N}\right\}r$  >   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   r$  Zimgsetr   r   r   test_latex_ImageSet.  s    "(r  c                  C   sT   t d} tt| t| d dtjdks,J tt| t| d dtjdksPJ d S )Nr   r  r   z@\left\{x\; \middle|\; x \in \mathbb{R} \wedge x^{2} = 1 \right\}z(\left\{x\; \middle|\; x^{2} = 1 \right\})r#   r   r   r    r"   r  r  r   r   r   r   test_latex_ConditionSet=  s    r  c                   C   sT   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sPJ d S )Nr  r  r  r0  zX\left\{x + y i\; \middle|\; x, y \in \left[3, 5\right] \times \left[4, 6\right] \right\}r   r   r  T)Zpolarz\left\{r \left(i \sin{\left(\theta \right)} + \cos{\left(\theta \right)}\right)\; \middle|\; r, \theta \in \left[0, 1\right] \times \left[0, 2 \pi\right) \right\})r   r   r   r   r   r   r   r   test_latex_ComplexRegionE  s    "r  c                  C   s$   t d} tt| tjdks J d S )Nr   zx \in \mathbb{N})r#   r   r   r"   r  r  r   r   r   test_latex_ContainsM  s    r  c                   C   s   t tttd  tddftddfdks,J t ttd tddfdksLJ t ttd t tddfdkspJ t ttd t tddfd dksJ d S )	Nr  r  r  r  z<\sum_{\substack{-2 \leq x \leq 2\\-5 \leq y \leq 5}} x y^{2}z\sum_{x=-2}^{2} x^{2}z&\sum_{x=-2}^{2} \left(x^{2} + y\right)z7\left(\sum_{x=-2}^{2} \left(x^{2} + y\right)\right)^{2})r   r   r   r$  r   r   r   r   test_latex_sumR  s    "r  c                   C   s   t tttd  tddftddfdks,J t ttd tddfdksLJ t ttd t tddfdkspJ t tttddfd dksJ d S )	Nr  r  r  r  z=\prod_{\substack{-2 \leq x \leq 2\\-5 \leq y \leq 5}} x y^{2}z\prod_{x=-2}^{2} x^{2}z'\prod_{x=-2}^{2} \left(x^{2} + y\right)z#\left(\prod_{x=-2}^{2} x\right)^{2})r   r
   r   r$  r   r   r   r   test_latex_product]  s    "r  c                  C   s   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sZJ t t| ttdd dkszJ t t| ttdd	d
dksJ d S )Nz\lim_{x \to \infty} xr  r   z#\lim_{x \to 0^+} f{\left(x \right)}-z#\lim_{x \to 0^-} f{\left(x \right)}r  z4\left(\lim_{x \to 0^+} f{\left(x \right)}\right)^{2}z+-)dirz!\lim_{x \to 0} f{\left(x \right)})r   r   r   r   r   )r  r   r   r   test_latex_limitsi  s    r  c                   C   s   t ttdksJ t ttdddks,J t tttt dksHJ t tttt dddkshJ t ttttdksJ t ttttdddksJ d S )	Nz\log{\left(x \right)}T)Zln_notationz\ln{\left(x \right)}z-\log{\left(x \right)} + \log{\left(y \right)}z+\ln{\left(x \right)} + \ln{\left(y \right)}z\log{\left(x \right)}^{x}z\ln{\left(x \right)}^{x})r   rC   r   r$  powr   r   r   r   test_latex_logz  s    r  c                  C   sD   t d} | t }t|dv s J t d} | t }t|dv s@J d S )NrS  )z	\beta + xz	x + \betarT   )r#   r   r   )rT   r$  r   r   r   test_issue_3568  s    r  c                   C   s   t dt tdd dksJ t dt tdd dddks@J t dt tdd ddd	d
ksdJ t dt 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   r$  r   r   r   r   
test_latex  s    r  c                  C   sL   t ddtd dtdtd di} t| dks0J t| }t|dksHJ d S )Nr   r  r  r  z;\left\{ 1 : 1, \  x : 3, \  x^{2} : 2, \  x^{3} : 4\right\})r   r   r   r   )r  r  r   r   r   test_latex_dict  s     r  c                  C   s*   t dt dt dg} t| dks&J d S )NrC  r,  r  z)\left[ \omega_{1}, \  a, \  \alpha\right]r#   r   )Zllr   r   r   test_latex_list  s    r  c                   C   sp   t tjdksJ t tjdks$J t tjdks6J t tjdksHJ t tjdksZJ t tjdkslJ d S )NGrT  e\phi\piz\text{TribonacciConstant})r   r"   ZCatalanZ
EulerGammaZExp1ZGoldenRatioPiZTribonacciConstantr   r   r   r   test_latex_NumberSymbols  s    r  c                   C   s   t tdd dksJ t tdddks.J t tdddksDJ t tdd dks\J t tdd t dksxJ t tdd t tddt  d	ksJ d S )
Nr   r  z- \frac{1}{2}r
  r  z\frac{1}{2}z- \frac{x}{2}r  z- \frac{x}{2} - \frac{2 y}{3})r   r   r   r$  r   r   r   r   test_latex_rational  s     r  c                   C   s0   t dt dksJ t dtt  dks,J d S )Nr   r  z\frac{1}{x + y}r   r   r$  r   r   r   r   test_latex_inverse  s    r  c                   C   sv   t ttdksJ t ttd dks,J t ttddksBJ t ttddksXJ t ttdd dksrJ d S )Nz\delta\left(x\right)r  z%\left(\delta\left(x\right)\right)^{2}r   r  z)\delta^{\left( 5 \right)}\left( x \right)z:\left(\delta^{\left( 5 \right)}\left( x \right)\right)^{2})r   rU   r   r   r   r   r   test_latex_DiracDelta  s    r  c                   C   s0   t ttdksJ t ttd dks,J d S )Nz\theta\left(x\right)r  z%\left(\theta\left(x\right)\right)^{2})r   rV   r   r   r   r   r   test_latex_Heaviside  s    r  c                   C   sn   t tttdksJ t tttd dks0J t ttd tdksJJ t ttttddddksjJ d S )	Nz\delta_{x y}r   z\delta_{x, y + 1}z\delta_{y, x + 1}r  Fr   z\left(\delta_{x y}\right)^{2})r   ru   r   r$  r   r   r   r   r   test_latex_KroneckerDelta  s    r  c                   C   s   t ttttdksJ t ttttd dks4J t ttttd dksPJ t tttd tdkslJ t ttd ttdksJ d S )Nz\varepsilon_{x y z}r  z$\left(\varepsilon_{x y z}\right)^{2}r   z\varepsilon_{x, y, z + 1}z\varepsilon_{x, y + 1, z}z\varepsilon_{x + 1, y, z})r   rv   r   r$  r&  r   r   r   r   test_latex_LeviCivita  s    r  c                      s~   t t  t dksJ t dddks,J t dddks@J t dddksTJ t ddd	kshJ tt fd
d d S )Nzx + yplainr  inlinez$x + y$r  z%\begin{equation*}x + y\end{equation*}r  z#\begin{equation}x + y\end{equation}c                      s   t  ddS )Nr   r  r   r   exprr   r   <lambda>  rB  ztest_mode.<locals>.<lambda>)r   r$  r   r   
ValueErrorr   r   r  r   	test_mode  s    r  c                   C   s   t ttttdksJ t ttttdks0J t ttttd dksLJ t ttttd dkshJ t ttttdksJ t ttttdksJ t ttttd dksJ t ttttd d	ksJ d S )
NzC\left(x, y, z\right)zS\left(x, y, z\right)r  zC\left(x, y, z\right)^{2}zS\left(x, y, z\right)^{2}zC^{\prime}\left(x, y, z\right)zS^{\prime}\left(x, y, z\right)z"C^{\prime}\left(x, y, z\right)^{2}z"S^{\prime}\left(x, y, z\right)^{2})r   re   r   r$  r&  rg   rf   rh   r   r   r   r   test_latex_mathieu  s    r  c                  C   s  t ttdk ftd df} t| dks*J t| dddks>J t ttdk fdtdkf} t| dkshJ td	d
d\}}t |d t||f|| df} d}t| |ksJ t||  d| ksJ t| | d| ksJ tt ttdk ftd 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ZcommutativezM\begin{cases} A^{2} & \text{for}\: A = B \\A B & \text{otherwise} \end{cases}zA \left(%s\right)z\left(%s\right) AzM\begin{cases} x & \text{for}\: x < 1 \\x^{2} & \text{for}\: x < 2 \end{cases})rM   r   r   r%   r    )r  r8  r  r  r   r   r   test_latex_Piecewise  s     
  r  c                  C   s   t dt tgttd gg} t| dks,J t| dddks@J t| dddksTJ t| d	dd
kshJ t| d d	ddks~J t ddtd}t|dksJ d S )Nr   z;\left[\begin{matrix}x + 1 & y\\y & x - 1\end{matrix}\right]r  r  zG$\left[\begin{smallmatrix}x + 1 & y\\y & x - 1\end{smallmatrix}\right]$array)mat_strz=\left[\begin{array}{cc}x + 1 & y\\y & x - 1\end{array}\right]Zbmatrixz=\left[\begin{bmatrix}x + 1 & y\\y & x - 1\end{bmatrix}\right])Z	mat_delimr  z0\begin{bmatrix}x + 1 & y\\y & x - 1\end{bmatrix}r	  \\left[\begin{array}{ccccccccccc}0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\end{array}\right])r   r   r$  r   r  )MM2r   r   r   test_latex_Matrix  s(    


r  c                  C   sl   t d} t dtd}tt|| t|| gt|| | t|| | gg}d}t||kshJ d S )Nr  theta1clsa  \left[\begin{matrix}\sin{\left(\theta_{1}{\left(t \right)} \right)} & \cos{\left(\theta_{1}{\left(t \right)} \right)}\\\cos{\left(\frac{d}{d t} \theta_{1}{\left(t \right)} \right)} & \sin{\left(\frac{d}{d t} \theta_{1}{\left(t \right)} \right)}\end{matrix}\right])r%   r   r   rR   rP   r   r   )r  r  r   expectedr   r   r    test_latex_matrix_with_functions!  s    "r  c                  C   s,  t d\} }}}ttttfD ]}|| }t|dks:J |d|  |g||gg}|d|  ||g}t||}t||}t|dksJ t|dksJ t|dksJ t|dksJ || |d| gg}	|| g|gd| gg}
||
 g}t|	dksJ t|
d	ksJ t|d
ksJ qd S )Nzx y z wr   r   z=\left[\begin{matrix}\frac{1}{x} & y\\z & w\end{matrix}\right]z:\left[\begin{matrix}\frac{1}{x} & y & z\end{matrix}\right]a  \left[\begin{matrix}\left[\begin{matrix}\frac{1}{x^{2}} & \frac{y}{x}\\\frac{z}{x} & \frac{w}{x}\end{matrix}\right] & \left[\begin{matrix}\frac{y}{x} & y^{2}\\y z & w y\end{matrix}\right] & \left[\begin{matrix}\frac{z}{x} & y z\\z^{2} & w z\end{matrix}\right]\end{matrix}\right]a]  \left[\begin{matrix}\left[\begin{matrix}\frac{1}{x^{2}} & \frac{y}{x}\\\frac{z}{x} & \frac{w}{x}\end{matrix}\right] & \left[\begin{matrix}\frac{y}{x} & y^{2}\\y z & w y\end{matrix}\right]\\\left[\begin{matrix}\frac{z}{x} & y z\\z^{2} & w z\end{matrix}\right] & \left[\begin{matrix}\frac{w}{x} & w y\\w z & w^{2}\end{matrix}\right]\end{matrix}\right]zG\left[\left[\begin{matrix}x & y & \frac{1}{z}\end{matrix}\right]\right]z8\left[\begin{matrix}x\\y\\\frac{1}{z}\end{matrix}\right]z_\left[\begin{matrix}\left[\begin{matrix}x\\y\\\frac{1}{z}\end{matrix}\right]\end{matrix}\right])r%   r   r   r   r   r   r   tolist)r   r$  r&  r_  	ArrayTyper   ZM1r  ZM3ZMrowZMcolumnZMcol2r   r   r   test_latex_NDimArray3  sD    




r
  c                   C   s   t ddt  dddksJ t ddt  dddks8J t ddt  dddksTJ t dt ddd	kslJ t dt ddd
ksJ t dt dddksJ d S )Nr  r  r  z4 \times 4^{x}r  z4 \cdot 4^{x}Zldotz4 \,.\, 4^{x}z
4 \times xz	4 \cdot xz	4 \,.\, xr~  r   r   r   r   test_latex_mul_symbola  s    r  c                  C   s8   ddt d  } t| dks J td|  dks4J d S )Nr  r  z!4 \cdot 4^{\log{\left(2 \right)}}r   z+\frac{1}{4 \cdot 4^{\log{\left(2 \right)}}})rC   r   )r$  r   r   r   test_latex_issue_4381k  s    r  c                   C   s  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sPJ t td	d
ksdJ t tddksxJ t tddksJ t tddksJ t tddksJ t tddksJ t tddksJ t tddksJ t tddksJ t tddksJ t tddks2J t tddksHJ t tddks^J t td d!kstJ t td"d#ksJ t td$d#ksJ d S )%NZ	beta_13_2z\beta_{13 2}Zbeta_132_20z\beta_{132 20}Zbeta_13z
\beta_{13}Zx_a_bzx_{a b}Zx_1_2_3z	x_{1 2 3}Zx_a_b1zx_{a b1}Zx_a_1zx_{a 1}Zx_1_azx_{1 a}zx_1^aaz
x^{aa}_{1}Zx_1__aazx_11^az
x^{a}_{11}Zx_11__aZ	x_a_a_a_azx_{a a a a}z	x_a_a^a^azx^{a a}_{a a}Zx_a_a__a__aZalpha_11z\alpha_{11}Zalpha_11_11z\alpha_{11 11}Zalpha_alphaz\alpha_{\alpha}zalpha^alephz\alpha^{\aleph}Zalpha__alephr   r#   r   r   r   r   test_latex_issue_4576q  s(    r  c                  C   sP   t d} dtt|  d ddv s*J dtd|   d ddv sLJ d S )Nr   ze^{-x}r    z3^{-x}r  )r#   r   rB   replacer  r   r   r   test_latex_pow_fraction  s    "r  c                  C   sj   t ddd\} }}t| | |d  dks.J t|d |  | dksJJ t| |d  | dksfJ d S )NzA,B,CFr  r
  z
A B C^{-1}z
C^{-1} A Bz
A C^{-1} BrM  r8  r  r  r   r   r   test_noncommutative  s    r  c                  C   sl   t d t d t  td  dt  td   } t| dddks@J t| dddksTJ t| d	dd
kshJ d S )Nr  r  r  lexr  z#x^{3} + x^{2} y + 3 x y^{3} + y^{4}zrev-lexz#y^{4} + 3 x y^{3} + x^{2} y + x^{3}nonez#x^{3} + y^{4} + y x^{2} + 3 x y^{3})r   r$  r   r  r   r   r   test_latex_order  s    ,r  c                   C   sR   t tttd dksJ t tttftd dks8J t tttdksNJ d S )Nr   z\left( x \mapsto x + 1 \right)z2\left( \left( x, \  y\right) \mapsto x + 1 \right)z\left( x \mapsto x \right))r   r   r   r$  r   r   r   r   test_latex_Lambda  s    r  c                  C   s  t dt\} }}t d| \}}}}t|| dks6J t|d dksJJ t|d dks^J t|d d| |  d |d  | | d d	ksJ t|d d| |  d |d  | |d |  d
ksJ t|d d| |  d |d  | |d |  d dksJ t|d  d| |  d |d  | |d |  d dksXJ t|d | d  | d| |  d dksJ t|d | d  | d| |  d dksJ 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   )ZRuvuvZRxyzr   r$  r&  r   r   r   test_latex_PolyElement  s.    .26
8
(
(r  c                  C   s  t dt\} }}t d| \}}}}}t|| dks8J t|d dksLJ t|d dks`J t|d dkstJ t|| d	ksJ t|| | d
ksJ t|||  dksJ t|| ||  dksJ t|d | dksJ 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kszJ t|d | | d |d | d  dksJ t|d | | d |d | || |  d  dksJ 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   )ZFuvr  r  ZFxyztr   r$  r&  r  r   r   r   test_latex_FracElement  s,    &
2r  c                   C   s\   t ttd dt  tdks"J t ttt tdks<J t tdt t dksXJ d S )Nr  zE\operatorname{Poly}{\left( x^{2} + 2 x, x, domain=\mathbb{Z} \right)}zU\operatorname{Poly}{\left( \frac{1}{y} x, x, domain=\mathbb{Z}\left(y\right) \right)}g       @zJ\operatorname{Poly}{\left( 2.0 x + 1.0 y, x, y, domain=\mathbb{R} \right)})r   r   r   r$  r   r   r   r   test_latex_Poly  s    r   c                   C   s   t ttdtdtdgtdks"J t ttdtt ddgtdksFJ t tttd  td t  tt  ttd   tt td   t tt  t ttfdksJ d S )Nr   r  r  z{\operatorname{Poly}{\left( a x^{5} + x^{4} + b x^{3} + 2 x^{2} + c x + 3, x, domain=\mathbb{Z}\left[a, b, c\right] \right)}z\operatorname{Poly}{\left( a x^{4} + x^{3} + \left(b + c\right) x^{2} + 2 x + 3, x, domain=\mathbb{Z}\left[a, b, c\right] \right)}z\operatorname{Poly}{\left( a x^{3} + x^{2}y -  b xy^{2} - xy -  a x -  c y^{3} + y + b, x, y, domain=\mathbb{Z}\left[a, b, c\right] \right)})r   r   r,  rf  r  r   r$  r   r   r   r   test_latex_Poly_order  s    Nr!  c                   C   s&   t ttd t d ddks"J d S )Nr  r  r   z6\operatorname{CRootOf} {\left(x^{5} + x + 3, 0\right)})r   r   r   r   r   r   r   test_latex_ComplexRootOf  s    r"  c                   C   s&   t ttd t d tdks"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   rR   r   r   r   r   test_latex_RootSum  s    r#  c                   C   s   t tdd  d S )Nc                   S   s   t tt ddS )Ngarbage)methodr  r   r   r   r   r    rB  ztest_settings.<locals>.<lambda>)r   	TypeErrorr   r   r   r   test_settings  s    r'  c                   C   s  t ttdksJ t ttd dks,J t ttdks@J t tttdksVJ t ttd dksnJ t tttd dksJ t ttdksJ t tttd	ksJ t ttd d
ksJ t tttd dksJ t ttdksJ t tttdksJ t tttttfdks.J t ttd dksHJ t tttd dksdJ t tttttfd dksJ t t	tdksJ t t	ttdksJ t t	td dksJ t t	ttd dksJ t t
tdks J t t
td dksJ t ttdks0J t tttdksHJ t ttd dksbJ t tttd dks~J t ttdksJ t ttd dksJ d S )NzC_{n}r  z	C_{n}^{2}zB_{n}zB_{n}\left(x\right)z	B_{n}^{2}zB_{n}^{2}\left(x\right)zG_{n}zG_{n}\left(x\right)z	G_{n}^{2}zG_{n}^{2}\left(x\right)zB_{n, m}\left(x, y\right)zB_{n, m}^{2}\left(x, y\right)zF_{n}zF_{n}\left(x\right)z	F_{n}^{2}zF_{n}^{2}\left(x\right)zL_{n}z	L_{n}^{2}zT_{n}r`  z	T_{n}^{2}zT_{n}^{2}\left(x\right)z\mu\left(n\right)z\mu^{2}\left(n\right))r   r.   r-  r,   r   r0   r-   rg  r$  r2   r1   r3   r6   r   r   r   r   test_latex_numbers  s8    "r(  c                   C   sH   t ttdksJ t tttdks*J t tttd dksDJ d S )NzE_{n}zE_{n}\left(x\right)r  zE_{n}^{2}\left(x\right))r   r/   r-  r   r   r   r   r   test_latex_euler   s    r)  c                   C   s,   t tddksJ t tddks(J d S )NZlamda\lambdaZLamda\Lambdar  r   r   r   r   
test_lamda&  s    r,  c                  C   s   t d} t d}t| dks J t| | diddks8J t| | | diddksTJ t| d | diddkspJ t| | | d|didd	ksJ d S )
Nr   r$  r  r  zx_i + yr  zx_i^{2}Zy_jz	x_i + y_jr  r   r$  r   r   r   test_custom_symbol_names+  s    r.  c                  C   s   t ddd} t ddd}td}t ddd}t| d|  dv sDJ t| d|  d	v s\J t|d|   d
v stJ t|d|   dv sJ t|| | |j ||j   dksJ ttt||t||dksJ ttt||t||dksJ d S )Nr  r  r  r-  rQ  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  r-  rQ  r   r   r   test_matAdd5  s    *"r0  c                  C   s   t ddd} t ddd}td}td|  dks4J td| |  dksLJ td|  d	ks`J td
|  dkstJ ttd|  dksJ ttd |  dksJ tdtd | |  dksJ td|  | d|   dv sJ d S )Nr8  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   rL   )r8  r  r   r   r   r   test_matMulF  s     r1  c            	      C   s  t ddd} td\}}}}}td| | }tddd}tddd}tt|d	d	d
ksZJ t|||d ||d f dksJ t|||d d||d df dksJ t|d ||d f dksJ t|d ||d f dksJ t||d d |f dksJ t|||||f dks2J t|||||||f dksXJ t||d ||d |f dks~J t|d ||d ||f dksJ t|d d |d d |f dksJ tt|ddd
ksJ tt|d | d fd | d fd
ks
J tt|d| d fd| d fd
ks0J tt|d| dfd| dfdksVJ t|ddddddf dks|J t|ddddddf dksJ t|ddd d ksJ t|d ddd!df d"ksJ 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sHJ t|ddddddf d&ksnJ t|| dd dd f d'ksJ d S )(Nr-  Tr   z	x y z w tXYr  Z)NNNzX\left[:, :\right]r   zX\left[x:x + 1, y:y + 1\right]r  z"X\left[x:x + 1:2, y:y + 1:2\right]zX\left[:x, y:\right]zX\left[x:, :y\right]zX\left[x:y, z:w\right]zX\left[x:y:t, w:t:x\right]zX\left[x::y, t::w\right]zX\left[:x:y, :t:w\right]zX\left[::x, ::y\right])r   NNr   zX\left[::2, ::2\right]r  r  r  r0  zX\left[1:2:3, 4:5:6\right]   zX\left[1:3:5, 4:6:8\right]zX\left[1:10:2, :\right]	   zY\left[:5, 1:9:2\right]zY\left[:5, 1::2\right]zY\left[5:6, :5:2\right]zX\left[:1, :1\right]zX\left[:1:2, :1:2\right]z%\left(Y + Z\right)\left[2:, 2:\right])r#   r%   r   r   r   )	r-  r   r$  r&  r_  r  r2  r3  r4  r   r   r   test_latex_MatrixSliceU  s:    (,  ""&&&&&&&&&$$ "&r7  c            
      C   s   ddl m} m}m}m}m} ddlm} | ddd}t||dkdksLJ |dd}t||d	kd
ksnJ |dd}|dd}	t|t	||	j
dksJ t|tttdddksJ d S )Nr   )r   DieExponentialpspacewhere)RandomDomainr  r   z.\text{Domain: }0 < x_{1} \wedge x_{1} < \inftyd1r0  r  z'\text{Domain: }d_{1} = 5 \vee d_{1} = 6r,  rf  zK\text{Domain: }0 \leq a \wedge 0 \leq b \wedge a < \infty \wedge b < \inftyr  z7\text{Domain: }\left\{x\right\} \in \left\{1, 2\right\})Zsympy.statsr   r8  r9  r:  r;  Zsympy.stats.rvr<  r   r   domainr   r   )
r   r8  r9  r:  r;  r<  r2  r  r8  r  r   r   r   test_latex_RandomDomainv  s     


r?  c                  C   st   ddl m}  | tt}| ttf }t|ttt  tttt  ksNJ t|tt ttt kspJ d S )Nr   QQ)sympy.polys.domainsrA  Z
frac_fieldr   r$  r   convert)rA  Fr   r   r   r   test_PrettyPoly  s
    *rE  c                  C   sT  t d} t d}td}t d}t d}tt|| | |dksDJ tt|||| ||dksdJ tt|| | |dksJ tt|||| ||fd	ksJ tt|| | |d
ksJ tt|||| dksJ tt	|| | |dksJ tt
|||| dksJ tt|| | |dks2J tt|||| dksPJ d S )Nr   r)  r  r,  rf  z<\mathcal{M}_{x}\left[f{\left(x \right)}\right]\left(k\right)zA\mathcal{M}^{-1}_{k}\left[f{\left(k \right)}\right]\left(x\right)z<\mathcal{L}_{x}\left[f{\left(x \right)}\right]\left(k\right)zA\mathcal{L}^{-1}_{k}\left[f{\left(k \right)}\right]\left(x\right)z<\mathcal{F}_{x}\left[f{\left(x \right)}\right]\left(k\right)zA\mathcal{F}^{-1}_{k}\left[f{\left(k \right)}\right]\left(x\right)z>\mathcal{COS}_{x}\left[f{\left(x \right)}\right]\left(k\right)zC\mathcal{COS}^{-1}_{k}\left[f{\left(k \right)}\right]\left(x\right)z>\mathcal{SIN}_{x}\left[f{\left(x \right)}\right]\left(k\right)zC\mathcal{SIN}^{-1}_{k}\left[f{\left(k \right)}\right]\left(x\right))r#   r   r   r   r   r   r   r~   r   r}   r   r   r   )r   r)  r  r,  rf  r   r   r   test_integral_transforms  sF    

rF  c                  C   sD   ddl m}  t| ttdks$J t| jttdddks@J d S )Nr   r@  z\mathbb{Q}\left[x, y\right]Zilexr  z#S_<^{-1}\mathbb{Q}\left[x, y\right])rB  rA  r   old_poly_ringr   r$  r@  r   r   r   test_PolynomialRingBase  s
    rH  c                  C   st  ddl m} m}m}m}m}m} | d}| d}| d}|||d}	|||d}
||}|d}t|d	kspJ t|	d
ksJ t|dksJ t|
|	 dksJ t|dksJ | }t|dksJ ||	d|
tj	i}t|dksJ ||	d|
tj	i|
|	 di}t|dksJ | d}| d}| d}|||d}|||d}|||g}||}t|dkspJ 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\}r8  r  r  r  rP  z-\begin{array}{cc}
A & B \\
 & C 
\end{array}
)
Zsympy.categoriesrI  rJ  rK  rL  rM  rN  r   r"   r  )rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  Zid_A1rT  r  r8  r  r  r  rP  Zgridr   r   r   test_categories  s6     
rV  c                  C   s  ddl m}  ddlm} | tt}|d}|ttgdtd g}t	|dksVJ t	|dksfJ |
td t}t	|dksJ || }t	|d	ksJ t	|dtd
 d gdtgdksJ || td| tdddg}t	|dksJ 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}})rB  rA  Zsympy.polys.agcarW  rG  r   r$  Zfree_module	submoduler   Zideal)rA  rW  r   rD  r   r   QrQ  r   r   r   test_Modules  s0    
rZ  c                  C   sJ   ddl m}  | ttd d g }t|dks4J t|jdksFJ 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})rB  rA  rG  r   r   Zone)rA  r   r   r   r   test_QuotientRing  s    r[  c                  C   s0   t ddd\} }t| | }t|dks,J d S )Nr  Fr  z!\operatorname{tr}\left(A B\right))r%   r   r   )r8  r  r  r   r   r   test_Tr  s    r\  c                  C   s   ddl m} m}m}m}m} td}t| |dks8J t| ||dksPJ tddd}t| |dkspJ t| || d	ksJ t| ||dd|f||ddffd
ksJ 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|r2  r  z\left|{X}\right|zF\left|{\left[\begin{matrix}1 & 2\\3 & 4\end{matrix}\right] + X}\right|zg\left|{\begin{matrix}1 & X\\\left[\begin{matrix}1 & 2\\3 & 4\end{matrix}\right] & 0\end{matrix}}\right|)	sympy.matricesr]  r^  r_  r`  ra  r   r   r   )r]  r^  r_  r`  ra  rg  r2  r   r   r   test_Determinant%  s     rd  c            
      C   s  ddl m} m}m} tddd}tddd}t| |dks@J t| || dksXJ t| || | dkstJ t| || d	ksJ t| || | d
ksJ t| |d dksJ t| |d dksJ t| ||dksJ t|| |dks
J t| ||dks$J t|| |dks>J t|| || dks\J td}t| |dkszJ t| || dksJ ddl m}m}m	} t| ||dd|f||ddffdksJ tddd}	t| |	dksJ t| |dddksJ t| || dddks4J t| || | dddksVJ t| || | d
kstJ t| |d dddksJ t| |d ddd ksJ d S )!Nr   )Adjointr^  	Transposer2  r  r3  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}rb  z=\left[\begin{matrix}1 & 2\\3 & 4\end{matrix}\right]^{\dagger}zN\left(\left[\begin{matrix}1 & 2\\3 & 4\end{matrix}\right] + X\right)^{\dagger}r_  r`  ra  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}Zstar)Zadjoint_stylezX^{\ast}Z	hermitianz\left(X + Y\right)^{\mathsf{H}}daggerz\left(X^{2}\right)^{\ast}z\left(X^{\mathsf{H}}\right)^{2})
rc  re  r^  rf  r   r   r   r_  r`  ra  )
re  r^  rf  r2  r3  rg  r_  r`  ra  Mxr   r   r   test_Adjoint4  sD    

"rk  c            
      C   s`  ddl m} m}m} tddd}tddd}t| |dks@J t| || dksXJ t| ||ddksrJ t|| |dd	ksJ t| ||dd
ksJ t|| |ddksJ td}t| |dksJ t| || dksJ 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   )rf  MatPowHadamardPowerr2  r  r3  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}rb  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}rg  zi\left[\begin{matrix}1 & X\\\left[\begin{matrix}1 & 2\\3 & 4\end{matrix}\right] & 0\end{matrix}\right]^{T}rh  z\left(M^{x}\right)^{T})
rc  rf  rl  rm  r   r   r   r_  r`  ra  )
rf  rl  rm  r2  r3  rg  r_  r`  ra  rj  r   r   r   test_TransposeX  s,    
rn  c                  C   s.  ddl m} m} ddlm}m}m} tddd}tddd}t| ||| dksVJ t| ||| dkspJ t||dd	ksJ t||d
dksJ t||||ddksJ t||||ddksJ t|||d
d
dksJ t|||d
d
dksJ t||t	d dks*J d S )Nr   )HadamardProductrm  )r   r   rl  r2  r  r3  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)})
rc  ro  rm  sympy.matrices.expressionsr   r   rl  r   r   r-  )ro  rm  r   r   rl  r2  r3  r   r   r   test_Hadamardp  s.    
rq  c                  C   s   ddl m}  tddd}tddd}t| |ddks:J t| || ddksTJ t| || ddksnJ t| || dd	ksJ t| || dd
ksJ tddd}t| |ddksJ d S )Nr   )rl  r2  r  r3  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}rh  z\left(M^{x}\right)^{2})rp  rl  r   r   )rl  r2  r3  rj  r   r   r   test_MatPow  s    rr  c                  C   sT   t ddd} | j|  t}t|dks,J | ttdt }t|dksPJ d S )Nr2  r  zN{\left( d \mapsto \sin{\left(d \right)} \right)}_{\circ}\left({X^{T} X}\right)r   z>{\left( x \mapsto \frac{1}{x} \right)}_{\circ}\left({X}\right))r   r/  Z	applyfuncrR   r   r   r   )r2  r  r   r   r   test_ElementwiseApplyFunction  s
    rs  c                  C   sD   ddl m}  t| dddddks&J t| dddddks@J d S )	Nr   ra  r   r  Zmat_symbol_styler  boldz
\mathbf{0})"sympy.matrices.expressions.specialra  r   rt  r   r   r   test_ZeroMatrix  s    rx  c                  C   sD   ddl m}  t| dddddks&J t| ddddd	ks@J d S )
Nr   r`  r  r  r  ru  1rv  z
\mathbf{1})rw  r`  r   ry  r   r   r   test_OneMatrix  s    r{  c                  C   s@   ddl m}  t| ddddks$J t| ddddks<J d S )	Nr   Identityr   r  ru  z
\mathbb{I}rv  z
\mathbf{I})rw  r}  r   r|  r   r   r   test_Identity  s    r~  c                  C   s<   ddl m} m} t| ddks$J t|tdks8J d S )Nr   DFTIDFTr  z\text{DFT}_{13}z\text{IDFT}_{x})Z"sympy.matrices.expressions.fourierr  r  r   r   r  r   r   r   test_latex_DFT_IDFT  s    r  c                  C   sl   t d} t|  }t|dks J t|  }t|dks8J t|  }t|dksPJ t|  }t|dkshJ 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   )Zsymsr  r   r   r   test_boolean_args_order  s    r  c                  C   s   t d} t| dksJ d S )Nr
  r9  )rL   r   )r9  r   r   r   test_imaginary  s    r  c                   C   sd   t tdksJ t tdks J t tdks0J t tdks@J t tdksPJ t tdks`J d S )Nz\sinz\cosz\tanz\logz\operatorname{Ei}\zeta)r   rR   rP   rS   rC   r]   r{   r   r   r   r   test_builtins_without_args  s    r  c                  C   s   t d} t| dksJ t| tdks,J t d} t| dksDJ t d} t| dks\J t| tdkspJ t d	}t|d
ksJ t d}t|tdksJ t|dksJ d S )NAlpha
\mathrm{A}z\mathrm{A}{\left(x \right)}Beta
\mathrm{B}Eta
\mathrm{H}z\mathrm{H}{\left(x \right)}r  \Pichiz\chi{\left(x \right)}\chir   r   r   )r  r  r  r   r   r   test_latex_greek_functions  s    r  c                  C   s   d} t | dksJ d} t | dks(J d} t | dks<J d} t | dksPJ d	} t | d
ksdJ d} t | dksxJ d} t | dksJ d S )Nr  r  r  r  r  r  omicronor  r  r   r  ZLamdaHatDOTz\dot{\hat{\Lambda}})r   r  r   r   r   test_translate  s    r  c                  C   s2   ddl m}  | D ]}tt|d| ksJ qd S )Nr   )other_symbols\)sympy.printing.latexr  r   r%   )r  r  r   r   r   test_other_symbols  s    r  c                   C   s  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sPJ t td	d
ksdJ t tddksxJ t tddksJ t tddksJ t tddksJ t tddksJ t tddksJ t tddksJ t tddksJ t tddksJ t tddks2J t tdd ksHJ t td!d"ks^J t td#d$kstJ t td%d$ksJ t td&dksJ t td'dksJ t td(d(ksJ t td)d)ksJ t td*d*ksJ 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sPJ t td/d0ksfJ t td1d1ks|J t td2d2ksJ t td3d3ksJ t td4d4ksJ t td5d5ksJ t td6d6ksJ t td7d7ks J t td8d8ksJ t td9d9ks,J t td:d:ksBJ t td;d;ksXJ t td<d=ksnJ t td>d?ksJ t td@dAksJ t tdBdCksJ t tdDdEksJ t tdFdGksJ d S )HNZ	xMathringz\mathring{x}ZxCheckz	\check{x}ZxBrevez	\breve{x}ZxAcutez	\acute{x}ZxGravez	\grave{x}ZxTildez	\tilde{x}ZxPrimez{x}'ZxddDDotz
\ddddot{x}ZxDdDotz	\dddot{x}ZxDDotz\ddot{x}ZxBoldz\boldsymbol{x}ZxnOrMz\left\|{x}\right\|ZxAVGz\left\langle{x}\right\rangleZxHatz\hat{x}ZxDotz\dot{x}ZxBarz\bar{x}ZxVecz\vec{x}ZxAbsr\  ZxMagZxPrMZxBMZMathringZCheckZBreveZAcuteZGraveZTildePrimeZDDotz\dot{D}ZBoldZNORmZAVGZHatr   BarZVecr;   ZMagZPrMZBMZhbarz\hbarZxvecdotz\dot{\vec{x}}ZxDotVecz\vec{\dot{x}}ZxHATNormz\left\|{\hat{x}}\right\|Z xMathringBm_yCheckPRM__zbreveAbszC\boldsymbol{\mathring{x}}^{\left|{\breve{z}}\right|}_{{\check{y}}'}Z alphadothat_nVECDOT__tTildePrimez1\hat{\dot{\alpha}}^{{\tilde{t}}'}_{\dot{\vec{n}}})r   r%   r   r   r   r   test_modifiers	  sd    


r  c                   C   s  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sPJ t td	d
ksdJ t tddksxJ t tddksJ t tddksJ t tddksJ t tddksJ t tddksJ t tddksJ t tddksJ t tddksJ t tddks2J t tdd ksHJ t td!d"ks^J t td#d$kstJ t td%d&ksJ t td'd(ksJ t td)d*ksJ t td+d,ksJ t td-d.ksJ t td/d0ksJ t td1d2ksJ t td3d4ks$J t td5d6ks:J t td7d8ksPJ t td9d:ksfJ t td;d<ks|J t td=d>ksJ t td?d@ksJ t tdAdBksJ t tdCdDksJ t tdEdFksJ t tdGdHks J t tdIdJksJ t tdKdLks,J t tdMdNksBJ t tdOdPksXJ t tdQdRksnJ t tdSdTksJ t tdUdVksJ t tdWdXksJ t tdYdZksJ t td[d\ksJ t td]d^ksJ t td_d`ksJ t tdadbksJ t tdcddks4J t tdedfksJJ t tdgdhks`J t tdidjksvJ t tdkdlksJ t tdmdnksJ d S )oNr  r  rT   rS  ra   rT  delta\deltaepsilonz\epsilonr{   r  etaz\etara  z\thetaiotaz\iotakappaz\kappalambdar*  r   z\munuz\nuxiz\xir  r  r   r  rJ  z\rhosigmaz\sigmar   r<  upsilonz\upsilonrd  r  r  r  psiz\psirE  r  r  r  r  r  rI  \GammaDeltaz\DeltaEpsilonz
\mathrm{E}Zetaz
\mathrm{Z}r  r  Thetaz\ThetaIotaz
\mathrm{I}Kappaz
\mathrm{K}r   r+  Muz
\mathrm{M}Nuz
\mathrm{N}Xiz\XiOmicronz
\mathrm{O}r  r  Rhoz
\mathrm{P}Sigmaz\SigmarK  r=  Upsilonz\UpsilonPhiz\Phir[   z
\mathrm{X}r  z\PsiOmegaz\OmegaZ
varepsilonz\varepsilonZvarkappaz	\varkappaZvarphiz\varphiZvarpiz\varpiZvarrhoz\varrhoZvarsigmaz	\varsigmaZvarthetaz	\varthetar  r   r   r   r   test_greek_symbols<	  sn    r  c                   C   sp   t tjdksJ t tjdks$J t tjdks6J t tjdksHJ t tjdksZJ t tjdkslJ d S )Nz
\mathbb{Q}r  r  r  z
\mathbb{R}r  )r   r"   Z	Rationalsr  r  r  r  r  r   r   r   r   test_fancyset_symbolsx	  s    r  c                   C   s   t tdksJ d S )Nz\mathcal{COS})r   r}   r   r   r   r   *test_builtin_without_args_mismatched_names	  s    r  c                   C   sd   t tdksJ t tdks J t tdks0J t tdks@J t tdksPJ t tdks`J d S )Nz\operatorname{Chi}z\operatorname{B}r  r  rT  )r   r[   rT   ra   ru   rU   r   r   r   r   r   test_builtin_no_args	  s    r  c                  C   s    t d} t| tdksJ d S )Nr  z\Pi{\left(x \right)}r  r  r   r   r   test_issue_6853	  s    r  c                  C   s   t dtd dd} t| dks"J t dtd dd} t| dksDJ t tjtd dd} t| dkshJ t ttd dd} t| d	ksJ t t td dd} t| d
ksJ t dtd } t| dksJ t dtd } t| dksJ d S )Nr  r   Fr   z- 2 \left(x + 1\right)r  z2 \left(x + 1\right)z\frac{x + 1}{2}zy \left(x + 1\right)z- y \left(x + 1\right)z	- 2 x - 2z2 x + 2)r   r   r   r"   r%  r$  )r  r   r   r   test_Mul	  s    r  c                  C   sp   t dddd} t| dksJ tttdd dks8J td}t|d d	ksTJ ttd
t dkslJ d S )Nr  Fr   z2^{2}r
  r  z\frac{1}{\sqrt[3]{x}}zx^2z\left(x^{2}\right)^{2}z
1.453e4500z{1.453 \cdot 10^{4500}}^{x})r   r   r   r   r#   r"   )r  r  r   r   r   test_Pow	  s    r  c                   C   s4   t tttdksJ t ttttdks0J d S )Nzx \Leftrightarrow yzx \not\Leftrightarrow y)r   r   r   r$  r   r   r   r   r   test_issue_7180	  s    r  c                   C   s   t tjt dksJ d S )Nz\left(\frac{1}{2}\right)^{n})r   r"   r%  r-  r   r   r   r   test_issue_8409	  s    r  c                  C   s,   ddl m}  | ddd}t|dks(J d S )Nr   
parse_exprz-B*AFr   zA \left(- B\right)Zsympy.parsing.sympy_parserr  r   )r  r  r   r   r   test_issue_8470	  s    r  c                  C   sx   t ddd} t ddd}t| | || dks6J t| | |d| dksVJ t| | | |  dkstJ d S )Nr   r  r$  zx \left(- y\right)r  zx \left(- 2 y\right)z\left(- x\right) y)r   r   subsr-  r   r   r   test_issue_15439	  s
     r  c                   C   s   t tddksJ d S )Nz\frac{a_1}{b_1}r  r   r   r   r   test_issue_2934	  s    r  c                  C   s4   d} t | }t|| ksJ tt|dks0J d S )Nz	C_{x_{0}}z\cos{\left(C_{x_{0}} \right)})r#   r   rP   )ZlatexSymbolWithBracer  r   r   r   test_issue_10489	  s    r  c                  C   s,   t d\} }t| d |d  dks(J d S )Nz
m__1, l__1r  z/\left(l^{1}\right)^{2} + \left(m^{1}\right)^{2}rM  )Zm__1Zl__1r   r   r   test_issue_12886	  s    r  c                  C   s,   ddl m}  | ddd}t|dks(J d S )Nr   r  z5/1Fr   z\frac{5}{1}r  )r  r  r   r   r   test_issue_13559	  s    r  c                  C   s*   t tdtt dd } t| dks&J d S )Nr
  Fr   zc - \left(a + b\right))r  r   r,  rf  r   r  r   r   r   test_issue_13651	  s    r  c                  C   sz   t d} td|  }t|td|    kr4dks:n J t|d dksNJ t|d dksbJ t| | dksvJ 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   her   r   r   test_latex_UnevaluatedExpr	  s    &r  c            
      C   s   t ddd} t ddd}t ddd}t| d dks8J td| d  dksPJ |d || | }t|d	kstJ td
\}}}t d||}t d||}t|| ||f dksJ t ddd}	t|	d dksJ d S )Nr8  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%   )
r8  r  r  rD  r9  r:  r)  r   r  r  r   r   r   test_MatrixElement_printing	  s    r  c                  C   s|   t ddd} t ddd}t ddd}t|  dks6J t| | |  | dksRJ t|  | | | |  | dksxJ d S )Nr8  r  r  r  z- AzA - A B - Bz- A B - A B C - B)r   r   r  r   r   r   test_MatrixSymbol_printing
  s    r  c                  C   sn   t ddd} t ddd}td}tt| |dks6J tt||  |dksPJ t|t| | dksjJ d S )	Nr2  r  r   r3  r,  z	X \cdot Yza X \cdot Yza \left(X \cdot Y\right))r   r#   r   r   )r2  r3  r,  r   r   r   test_DotProduct_printing
  s    r  c                  C   s2   t ddd} t ddd}tt| |dks.J d S )Nr8  r  r  r  A \otimes B)r   r   r   )r8  r  r   r   r   test_KroneckerProduct_printing
  s    r  c            	      C   s  t ttd  t td td  t} t tt tt t}t ttd  tt t  t tt t}tt| |dksvJ tt| ||dksJ tt| | dksJ tdt	 gddt	  gg}t
|t	}tddt	d  gg}t
|t	}t|||  d  kr$ttt|||ks*n J tddgddt	 gg}t
|t	}t|| | d	  krttt|||ksn 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  r0  z\left[\begin{matrix}\frac{5}{s}\\\frac{5}{2 s}\end{matrix}\right]_\tau\cdot\left(\left[\begin{matrix}\frac{5}{1} & \frac{6 s^{3}}{1}\end{matrix}\right]_\tau + \left[\begin{matrix}\frac{5}{1} & \frac{6 s^{3}}{1}\end{matrix}\right]_\tau\right)z\left[\begin{matrix}\frac{5}{s}\\\frac{5}{2 s}\end{matrix}\right]_\tau\cdot\left[\begin{matrix}\frac{5}{1} & \frac{6 s^{3}}{1}\end{matrix}\right]_\tau + \left[\begin{matrix}\frac{5}{1} & \frac{6}{1}\\\frac{6}{1} & \frac{5}{s}\end{matrix}\right]_\tau)r   r   r$  r&  r  r_  r   r   r   r  r   from_Matrixr   r   )	tf1tf2tf3M_1T_1M_2T_2M_3T_3r   r   r   test_Series_printing
  s4    $(
r  c                  C   sx   t td td t} t| dks$J t td dt t}t|dksHJ t ttd dt  d t}t|dkstJ d S )Nr   z\frac{x - 1}{x + 1}r  z\frac{x + 1}{2 - y}r  z\frac{y}{y^{2} + 2 y + 3})r   r   r   r$  r  r  r  r   r   r   test_TransferFunction_printing7
  s    r  c                  C   sT  t ttd  t td td  t} t tt tt t}tt| |dksNJ tt| | dksfJ tddgddt gg}t	
|t}tdt dgddtd  gg}t	
|t}tddttd   gddgg}t	
|t}t|| | d  krJtt|||  krJtt|t||  krJttt|||ksPn 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  r0  r   a=  \left[\begin{matrix}\frac{5}{1} & \frac{6}{1}\\\frac{6}{1} & \frac{5}{s}\end{matrix}\right]_\tau + \left[\begin{matrix}\frac{5}{s} & \frac{6}{1}\\\frac{6}{1} & \frac{5}{s - 1}\end{matrix}\right]_\tau + \left[\begin{matrix}\frac{6}{1} & \frac{5}{s \left(s - 1\right)}\\\frac{5}{1} & \frac{6}{1}\end{matrix}\right]_\tau)r   r   r$  r&  r  r   r   r   r  r   r  r   )r  r  r  r  r  r  r  r  r   r   r   test_Parallel_printing@
  s*    $  

r  c                  C   s   t ttt t} t t t tt t}t ttd dt  d t}tt| g|ggdks^J tt| |g||  ggdksJ d S )Nr  r  zP\left[\begin{matrix}\frac{p}{p + x}\\\frac{p - s}{p + s}\end{matrix}\right]_\tauz\left[\begin{matrix}\frac{p}{p + x} & \frac{p - s}{p + s}\\\frac{p}{y^{2} + 2 y + 3} & \frac{\left(-1\right) p}{p + x}\end{matrix}\right]_\tau)r   r  r   r  r$  r   r   r  r   r   r   $test_TransferFunctionMatrix_printingT
  s    r  c                  C   s   t ttt t} t t t tt t}tt| |dks<J tt| | t ddtdks^J tt| |ddksvJ tt| | dddksJ d S )Nzc\frac{\frac{p}{p + x}}{\frac{1}{1} + \left(\frac{p}{p + x}\right) \left(\frac{p - s}{p + s}\right)}r   z\frac{\left(\frac{p}{p + x}\right) \left(\frac{p - s}{p + s}\right)}{\frac{1}{1} + \left(\frac{p}{p + x}\right) \left(\frac{p - s}{p + s}\right)}zc\frac{\frac{p}{p + x}}{\frac{1}{1} - \left(\frac{p}{p + x}\right) \left(\frac{p - s}{p + s}\right)})signz\frac{\left(\frac{p}{p + x}\right) \left(\frac{p - s}{p + s}\right)}{\frac{1}{1} - \left(\frac{p}{p + x}\right) \left(\frac{p - s}{p + s}\right)})r   r  r   r  r   r   )r  r  r   r   r   test_Feedback_printing^
  s    r  c                  C   s   t dtt} t ttd d t}t ttd t}t td td d t}t| |g||gg}t||g|| gg}tt||dksJ tt|| |ddksJ 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  Ztf4Ztfm_1Ztfm_2r   r   r   test_MIMOFeedback_printingm
  s    r  c                  C   sf   t tttt} t| dksJ t ttttt } t| dks@J t ttttt } t| dksbJ d S )Nzx + y i + z j + t kzx + y i + z j + t x kz$x + y i + z j + \left(t + x\right) k)r   r   r$  r&  r  r   )qr   r   r   test_Quaternion_latex_printing
  s    r  c                  C   s>   ddl m}  tddd}tddd}t| ||dks:J d S )Nr   )TensorProductr8  r  r  r  )Zsympy.tensor.functionsr  r   r   )r  r8  r  r   r   r   test_TensorProduct_printing
  s    r  c                  C   s:   ddl m}  ddlm} || j| j}t|dks6J d S )Nr   R2)WedgeProductz*\operatorname{d}x \wedge \operatorname{d}y)sympy.diffgeom.rnr  sympy.diffgeomr  ZdxZdyr   )r  r  r  r   r   r   test_WedgeProduct_printing
  s    r  c                  C   s   t dddd} t| dksJ t dt dddddd}t|dksFJ t dddd}t|d	ksdJ t dddd}t|d
ksJ d S )Nr   r
  Fr   z1^{-1}z
1^{1^{-1}}r  r  z\frac{1}{9}z1^{-2})r   r   )Zexpr_1Zexpr_2Zexpr_3Zexpr_4r   r   r   test_issue_9216
  s    r  c                  C   sn  ddl m} m}m}m} | d}|d|\}}}}|d|}	|d|g\}
}}}|d||g}|d||||g}t|d	ksJ t| d
ksJ |
|}t|dksJ |
|	}t|dksJ |
| }t|dksJ d|
| }t|dksJ |||| |	 }t|dksJ ||| | |	}t|dks@J ||| ||	 }t|dksdJ ||| }t|dksJ |||}t|dksJ || | }t|dksJ dt |
| }t|dksJ ||| }t|dksJ ||| |
| || }t|dks,J |
|d||  }t|dksRJ ddl m} |||||||d|di}t|dksJ |||||||di}t|dksJ |||| |||d|di}t|d ksJ |||| || |d|di}t|d!ksJ ||||| | |d| di}t|d"ksLJ ||||| | |di}t|d#kszJ t|
||
|}t|d$ksJ t|
| |
| }t|d%ksJ t|||| | |
t	|
t
 }t|d&ksJ t|| |
|  |
| |
t
 }t|d'ks6J td|
|  |
| |
t
 }t|d(ksjJ d S ))Nr   )TensorIndexTypetensor_indices
TensorHeadtensor_headsLzi j k lZi_0zA B C DHKz{}^{i}z{}_{i}zA{}^{i}zA{}^{i_{0}}zA{}_{i}r"  z	-3A{}^{i}zK{}^{ij}{}_{ki_{0}}zK{}^{i}{}_{jk}{}^{i_{0}}zK{}^{i}{}_{j}{}^{k}{}_{i_{0}}zH{}^{i}{}_{j}zH{}^{ij}zH{}_{ij}r   z\left(x + 1\right)A{}^{i}zH{}^{L_{0}}{}_{L_{0}}z#H{}^{i}{}_{L_{0}}A{}^{L_{0}}B{}^{k}r  z3B{}^{i} + A{}^{i})TensorElementr  zK{}^{i=3,j,k=2,l}zK{}^{i=3,jkl}zK{}^{i=3}{}_{j}{}^{k=2,l}zK{}^{i=3}{}_{j}{}^{k=2}{}_{l}zK{}^{i=3,j}{}_{k=2,l}zK{}^{i=3,j}{}_{kl}z4\frac{\partial}{\partial {A{}^{L_{0}}}}{A{}^{L_{0}}}z,\frac{\partial}{\partial {A{}_{j}}}{A{}_{i}}zK\frac{\partial^{2}}{\partial {A{}^{m}} \partial {A{}_{n}}}{K{}^{ij}{}_{kl}}zZ\frac{\partial^{2}}{\partial {A{}_{j}} \partial {A{}_{n}}}{\left(A{}_{i} + B{}_{i}\right)}zQ\frac{\partial^{2}}{\partial {A{}_{j}} \partial {A{}_{n}}}{\left(3A{}_{i}\right)})Zsympy.tensor.tensorr  r  r  r  r   r   r  r   rg  r-  )r  r  r  r  r  r9  r:  r)  r@  Zi0r8  r  r  r  r  r  r  r  r   r   r   test_latex_printer_tensor
  sx    


 "$("r  c                     s  t d\} }}}}|  d|  d|  d|  d|   d}t dd|ksTJ d	}t ddd|kspJ d
}t ddd|ksJ d}t dddd|ksJ d}	t d|	ksJ t ddd|	ksJ d}
t ddd|
ksJ tt fdd d S )Nza b c d e fr  r  r  r  z\begin{eqnarray}
f & = &- a \nonumber\\
& & + 2 b \nonumber\\
& & - 3 c \nonumber\\
& & + 4 d \nonumber\\
& & - 5 e 
\end{eqnarray}Zeqnarrayenvironmentzc\begin{eqnarray}
f & = &- a + 2 b \nonumber\\
& & - 3 c + 4 d \nonumber\\
& & - 5 e 
\end{eqnarray}zS\begin{eqnarray}
f & = &- a + 2 b - 3 c \nonumber\\
& & + 4 d - 5 e 
\end{eqnarray}zX\begin{eqnarray}
f & = &- a + 2 b - 3 c \dots\nonumber\\
& & + 4 d - 5 e 
\end{eqnarray}T)r  Zuse_dotszB\begin{align*}
f = &- a + 2 b - 3 c \\
& + 4 d - 5 e 
\end{align*}zalign*zp\begin{IEEEeqnarray}{rCl}
f & = &- a + 2 b \nonumber\\
& & - 3 c + 4 d \nonumber\\
& & - 5 e 
\end{IEEEeqnarray}ZIEEEeqnarrayc                      s   t  ddS )Nr   r  )r   r   r  r  r   r   r  7  rB  z&test_multiline_latex.<locals>.<lambda>)r%   r   r   r  )r,  rf  r  r  r  r  Z	expected2Z	expected3Zexpected3dotsZexpected3alignZexpected2ieeer   r  r   test_multiline_latex  s     &r  c                  C   sX   t d\} }tt|| tt| | dtt| | d@ tjd }t|dksTJ d S )Nza xr   r  z\left\{\left( x, \  a\right)\; \middle|\; \left( x, \  a\right) \in \mathbb{C}^{2} \wedge \sin{\left(a x \right)} = 0 \wedge \cos{\left(a x \right)} = 0 \right\})	r%   r   r   r    rR   rP   r"   r  r   )r,  r   Zsolr   r   r   test_issue_153539  s    2r  c                  C   s   t d} t ddd}td| |}tt|dks4J tt|dksHJ tt|dkd	ks`J td
| |}tt||dksJ d S )Nr   r  Tr   r2  z\operatorname{E}\left[X\right]z \operatorname{Var}\left(X\right)r   z"\operatorname{P}\left(X > 0\right)r3  z#\operatorname{Cov}\left(X, Y\right))r%   r   r   r   r   r   r   )r   r  r2  r3  r   r   r   test_latex_symbolic_probabilityD  s    r   c                  C   sH   ddl m}  tddd}t| |dks,J t| |d dksDJ d S )Nr   tracer8  r   \operatorname{tr}\left(A \right)z$\operatorname{tr}\left(A^{2} \right)Z sympy.matrices.expressions.tracer  r   r   )r  r8  r   r   r   
test_traceO  s    r  c                     s   ddl m  ddlm}  G  fddd| fdd}fdd	}t|td
ksXJ t|td dkspJ t|tdksJ d S )Nr   Basic)Exprc                       s   e Zd Z fddZdS )z+test_print_basic.<locals>.UnimplementedExprc                    s     | |S N)__new__)r  r  r  r   r   r
  _  s    z3test_print_basic.<locals>.UnimplementedExpr.__new__N)r   r   r   r
  r   r  r   r   UnimplementedExpr^  s   r  c                    s    |   S r	  )r  r  r  r   r   unimplemented_exprc  s    z,test_print_basic.<locals>.unimplemented_exprc                    s    | }d|j _|S )NzUnimplementedExpr_x^1)	__class__r   )r  resultr  r   r   unimplemented_expr_sup_subg  s    z4test_print_basic.<locals>.unimplemented_expr_sup_subz.\operatorname{UnimplementedExpr}\left(x\right)r  z2\operatorname{UnimplementedExpr}\left(x^{2}\right)z6\operatorname{UnimplementedExpr^{1}_{x}}\left(x\right))Zsympy.core.basicr  sympy.core.exprr  r   r   )r  r  r  r   )r  r  r   test_print_basicW  s    
r  c                  C   s  ddl m}  tddd}t| |dddks0J t| |ddd	ksHJ tdd
d
}tdd
d
}tdd
d
}t| dddksJ t|||  | dddksJ t| | || |  | dddksJ tdd
d
}t|dddksJ tdd
d
}t|dddksJ d S )Nr   r  r8  r  rv  ru  z)\operatorname{tr}\left(\mathbf{A} \right)r  r  r  r  r  z- \mathbf{A}z/\mathbf{A} - \mathbf{A} \mathbf{B} - \mathbf{B}zG- \mathbf{A} \mathbf{B} - \mathbf{A} \mathbf{B} \mathbf{C} - \mathbf{B}A_kz\mathbf{A}_{k}z\nabla_kz\mathbf{\nabla}_{k}r  )r  r8  r  r  r  r   r   r   test_MatrixSymbol_bolds  s,     r  c                  C   s.   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	   )r  r   r   r   r   test_AppliedPermutation  s
    r  c                  C   sH   t ddd} tt| dks J t dddd} tt| dksDJ d S )Nr   r   r  zP_{\left( 0\; 1\; 2\right)}r  z*P_{\left( 0\; 3\right)\left( 1\; 2\right)})r   r   r   r  r   r   r   test_PermutationMatrix  s    
r  c                  C   s  ddl m}  ddlm} td}td\}}|||t tfdtd|dtftt	dt t
|t  | dt|t  |d   |t k|tk @ t|d@ fd	t||  t |dtff}t| |d
ksJ 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   rM   rP   rR   r!   r   )r  r  r   r)  r-  for   r   r   test_issue_21758  s(     L
 r  c                   C   s   t dt dksJ t dt dddks,J t dt dddksDJ t dt dddks\J t td	dd
kspJ t tdddksJ d S )Nr   z1 + ir9  imaginary_unitr:  z1 + jr   z1 + fooZtiz\text{i}Ztjz\text{j})r   r   r   r   r   r   test_imaginary_unit  s    r  c                   C   sd   t ttdddksJ t ttdddks0J t ttdddksHJ t ttdddks`J d S )NT)Zgothic_re_imz\Im{\left(x\right)}Fr^  z\Re{\left(x\right)}r]  )r   r>   r   r@   r   r   r   r   test_text_re_im  s    r   c                  C   s   ddl m} m}m}m}m} ddlm} tddd\}}| dd}t	|d	ksRJ |d
|}	t	|	dkslJ |d|	||g}
t	|
dksJ ||
d}t	|dksJ t
d}||j|j}t	||dksJ d S )Nr   )ManifoldPatchCoordSystemBaseScalarFieldDifferentialr  zx yTrb  r   r  z\text{M}Pz\text{P}_{\text{M}}rectz!\text{rect}^{\text{P}}_{\text{M}}z
\mathbf{x}rP  zC\operatorname{d}\left(g{\left(\mathbf{x},\mathbf{y} \right)}\right))r  r!  r"  r#  r$  r%  r  r  r%   r   r   r   r$  )r!  r"  r#  r$  r%  r  r   r$  rg  r  r'  rf  rP  Zs_fieldr   r   r   test_latex_diffgeom  s     



r(  c                   C   s   t dt dksJ t dt dks(J t dt t dks@J t dt t t dks\J t dt t dkstJ t td	ksJ d S )
Nr  z
5 \text{m}r  z3 \text{gibibyte}r  z\frac{4 \mu\text{g}}{\text{s}}z\frac{4 \mu \text{g}}{\text{s}}z5 \text{m} \text{m}z\text{m})r   r   r   r   r   r   r   r   r   r   r   r   test_unit_printing  s    r)  c                  C   s$   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(  r   r   r   test_issue_17092  s    r*  c            
      C   s  t d\} }}}t ddd\}}}t dtd\}}}	tg ddd	d
ksLJ ttddddd	dkshJ tddd	dks|J tddd	dksJ tg ddd	dksJ ttddddd	dksJ tddd	dksJ tddd	dksJ 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	dks\J tddd	dksrJ t d} t d}t d}t| d d|d   d | dd	d ksJ td!dd	d"ksJ ttd!dd	d"ksJ td#dd	d$ksJ ttd#dd	d$ksJ td%dd	d&ks.J ttd'd( dd	d)ksLJ ttd*dd	d)ksfJ t d} td+|  d dd	d,ksJ ttddddd	dksJ ttd-d.  ttd/d.  ttd0d.  d S )1Nzx y z tr   Tr   zf g hr  r   ffffff@      @commaZ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)Zperiodz\left[ 1, \  2.3, \  4.5\right]z\left\{1, 2.3, 4.5\right\}z\left( 1, \  2.3, \  4.6\right)z\left( 1,\right)g333333@g333333@z18{,}02gQ2@r   r$  r&  r  z#2^{y^{3{,}4}} + 5{,}3 x + z + 4{,}5g/$?z0{,}987g333333?z0{,}3g|)v>z5{,}8 \cdot 10^{-7}g@gHz>z5{,}7 \cdot 10^{-7}g<sAC >g333333?z1{,}2 x + 3{,}4c                   S   s   t g dddS )Nr+  Z&non_existing_decimal_separator_in_listr/  r  r   r   r   r   r  
  rB  z.test_latex_decimal_separator.<locals>.<lambda>c                   S   s   t tdddddS )Nr   r,  r-  Z%non_existing_decimal_separator_in_setr/  )r   r   r   r   r   r   r    rB  c                   S   s   t dddS )Nr+  Z'non_existing_decimal_separator_in_tupler/  r  r   r   r   r   r    rB  )r%   r   r   r   r   r"   r   r  )
r   r$  r&  r  r)  rg  r-  r  rP  rQ  r   r   r   test_latex_decimal_separator  sD    .r0  c                  C   s$   ddl m}  t| ddks J d S )Nr   Strr   )sympy.core.symbolr2  strr1  r   r   r   test_Str  s    r5  c                   C   s   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   r   test_latex_escape  s    r7  c                  C   s8   G dd d} t |  dks J t |  fdks4J d S )Nc                   @   s   e Zd Zdd ZdS )z#test_emptyPrinter.<locals>.MyObjectc                 S   s   dS )Nz<MyObject with {...}>r   )r   r   r   r   __repr__"  s    z,test_emptyPrinter.<locals>.MyObject.__repr__N)r   r   r   r8  r   r   r   r   MyObject!  s   r9  z'\mathtt{\text{<MyObject with \{...\}>}}z6\left( \mathtt{\text{<MyObject with \{...\}>}},\right)r  )r9  r   r   r   test_emptyPrinter   s    r:  c                  C   s   dd l } | tjd jdks"J ttdks2J zBtjdd | tjd jdksZJ ttdksjJ W tjd= n
tjd= 0 | tjd jdksJ ttdksJ d S )Nr   r  r9  r:  r  )	inspect	signaturer   
parametersdefaultr   r   Zset_global_settingsZ_global_settings)r;  r   r   r   test_global_settings+  s    r?  c                  C   s$   dd l } | | ttu s J d S )Nr   )pickleloadsdumpsr   )r@  r   r   r   test_pickleable@  s    rC  c                  C   st   t tdddksJ t tddddt  dfdks:J tddd} td	dd}t t| | tdgd
kspJ d S )Nr8  )r  r  r  r  r   r   z{{A}_{2, \frac{1}{1 - x}, 0}}r   r  r  z{{\left(M N\right)}_{x, 0}})r   r   r   r   r   )r   r  r   r   r   %test_printing_latex_array_expressionsE  s
    $rD  c                  C   s<   t td} t| dksJ t td} t| dks8J 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   )Zarrr   r   r   
test_ArrayL  s    rE  c                   C   s@   t d$ ttt dksJ W d    n1 s20    Y  d S )NFza a)r   r   r,  r   r   r   r   test_latex_with_unevaluatedT  s    
rF  c                   C   sH   t tddksJ t tddddks,J t tddddksDJ d S )Nzu^a_bz	u^{a}_{b}F)Zdisable_split_super_subTzu\^a\_br  r   r   r   r   "test_latex_disable_split_super_subY  s    rG  (  Zsympyr   r   r   Zsympy.algebras.quaternionr   Z!sympy.calculus.accumulationboundsr   Z sympy.combinatorics.permutationsr   r   r	   Zsympy.concrete.productsr
   Zsympy.concrete.summationsr   Zsympy.core.containersr   r   r  r   Zsympy.core.functionr   r   r   r   r   Zsympy.core.modr   Zsympy.core.mulr   Zsympy.core.numbersr   r   r   r   r   r   r   Zsympy.core.parametersr   Zsympy.core.powerr   Zsympy.core.relationalr    r!   Zsympy.core.singletonr"   r3  r#   r$   r%   Z(sympy.functions.combinatorial.factorialsr&   r'   r(   r)   r*   r+   Z%sympy.functions.combinatorial.numbersr,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   Z$sympy.functions.elementary.complexesr;   r<   r=   r>   r?   r@   Z&sympy.functions.elementary.exponentialrA   rB   rC   Z%sympy.functions.elementary.hyperbolicrD   rE   Z#sympy.functions.elementary.integersrF   rG   rH   Z(sympy.functions.elementary.miscellaneousrI   rJ   rK   rL   r  rM   Z(sympy.functions.elementary.trigonometricrN   rO   rP   rQ   rR   rS   Z&sympy.functions.special.beta_functionsrT   Z'sympy.functions.special.delta_functionsrU   rV   Z*sympy.functions.special.elliptic_integralsrW   rX   rY   rZ   r|  r[   r\   r]   r^   r_   r`   Z'sympy.functions.special.gamma_functionsra   rb   Zsympy.functions.special.hyperrc   rd   Z)sympy.functions.special.mathieu_functionsre   rf   rg   rh   Z#sympy.functions.special.polynomialsri   rj   rk   rl   rm   rn   ro   rp   rq   Z-sympy.functions.special.singularity_functionsrr   Z+sympy.functions.special.spherical_harmonicsrs   rt   Z(sympy.functions.special.tensor_functionsru   rv   Z&sympy.functions.special.zeta_functionsrw   rx   ry   rz   r{   Zsympy.integrals.integralsr|   Zsympy.integrals.transformsr}   r~   r   r   r   r   r   r   r   r   Zsympy.logicr   Zsympy.logic.boolalgr   r   r   r   r   r   r   Zsympy.matrices.denser   Z$sympy.matrices.expressions.kroneckerr   Z"sympy.matrices.expressions.matexprr   Z&sympy.matrices.expressions.permutationr   Z sympy.matrices.expressions.slicer   Z%sympy.matrices.expressions.dotproductr   Zsympy.physics.control.ltir   r   r   r   r   r   r   r   Zsympy.physics.quantumr   r   Zsympy.physics.quantum.tracer   Zsympy.physics.unitsr   r   r   r   r   r   r   Zsympy.polys.domains.integerringr   Zsympy.polys.fieldsr   Zsympy.polys.polytoolsr   Zsympy.polys.ringsr   Zsympy.polys.rootoftoolsr   r   Zsympy.series.formalr   r  r   Zsympy.series.limitsr   Zsympy.series.orderr   Zsympy.series.sequencesr   r   r   r   Zsympy.sets.conditionsetr   Zsympy.sets.containsr   Zsympy.sets.fancysetsr   r   r   Zsympy.sets.ordinalsr   r   r   Zsympy.sets.powersetr   Zsympy.sets.setsr   r   r   r   r   r   r   Zsympy.sets.setexprr   Zsympy.stats.crv_typesr   Z sympy.stats.symbolic_probabilityr   r   r   r   Zsympy.tensor.arrayr   r   r   r   r   Z0sympy.tensor.array.expressions.array_expressionsr   r   Zsympy.tensor.indexedr   r   r   Zsympy.tensor.toperatorsr   Zsympy.vectorr   r   r   r   r   r   r   Zsympy.testing.pytestr   r   r   r   r  r   r   r   r   r   r   r   symrl  r   r   r   r   r$  r&  r  r_  r,  rf  r  r  r  r)  rg  r-  r   r*  r+  r.  r3  r4  r7  r;  rL  rO  rh  rj  rm  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  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r'  r(  r)  r,  r.  r0  r1  r7  r?  rE  rF  rH  rV  rZ  r[  r\  rd  rk  rn  rq  rr  rs  rx  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r   r(  r)  r*  r0  r5  r7  r:  r?  rC  rD  rE  rF  rG  r   r   r   r   <module>   s  $ D   ,0$($<*2"B*B
0

 





1

  p



	


@

(



9















	
w














	
	

	





	
	






.


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