o
    8Var                 	   @   s  d dl mZmZmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQ d dl mRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZY d dlZm[Z[ d dl\m]Z] d dl^m_Z_m`Z`maZa d dlbmcZcmdZdmeZemfZfmgZgmhZh d dlimjZjmkZkmlZlmmZm d dlnmoZo d d	lpmqZqmrZr d d
lsmtZtmuZumvZv d dlwmxZx d dlymzZzm{Z{m|Z|m}Z} d dl~mZmZmZmZmZmZ d dlmZ d dlmZmZmZmZmZ d dlmZmZmZmZ d dlmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZmZmZmZmZmZmZ d dl mZ e-d\	ZZZZZZZZZe Ze Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Zd=d> Zd?d@ ZdAdB ZdCdD ZdEdF ZdGdH ZdIdJ ZdKdL ZdMdN ZdOdP ZdQdR ZdSdT ZdUdV ZdWdX ZdYdZ Zd[d\ Zd]d^ Zd_d` Zdadb Zdcdd Zdedf Zdgdh Zdidj Zdkdl Zdmdn Zdodp Zdqdr Zdsdt Zdudv Zdwdx Zdydz Zd{d| Zd}d~ Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Z dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZddĄ Z	ddƄ Z
ddȄ Zddʄ Zdd̄ Zdd΄ ZddЄ Zdd҄ ZddԄ Zddք Zdd؄ Zddڄ Zdd܄ Zddބ Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )    )QdiffIntegralLimitsinSymbolIntegerRationalcostanasinacosatansinhcoshtanhasinhacoshatanhEIoopiGoldenRatio
EulerGammaSumEqNeGeLtFloatMatrixBasicSMatrixSymbolFunction
DerivativelogtruefalseRangeMinMaxLambdaIndexedBasesymbolszoo
elliptic_f
elliptic_eelliptic_piEiexpintjacobi
gegenbauer
chebyshevt
chebyshevulegendreassoc_legendrelaguerreassoc_laguerrehermiteeuler	stieltjesmathieucmathieusmathieucprimemathieusprimeTribonacciConstantContainsLambertWcotcothacotacothcscacsccschacschsecasecsechasech)
elliptic_ktotientreduced_totientprimenu
primeomegafresnelcfresnels	Heaviside)AccumBounds)Tuple)	factorial
factorial2binomial)	bernoullibelllucas	fibonacci
tribonaccicatalan)reimAbs	conjugate)exp)floorceiling)gamma
lowergamma
uppergamma)SingularityFunction)polyloglerchphizetadirichlet_eta)AndOrImplies
EquivalentXorNot)Determinant)ComplexSpaceHilbertSpace	FockSpacehbarDagger)mathmlMathMLContentPrinterMathMLPresentationPrinterMathMLPrinter)	FiniteSetUnionIntersection
ComplementSymmetricDifferenceIntervalEmptySet
ProductSet)RandomSymbol)raises)
CoordSys3DCrossCurlDot
DivergenceGradient	Laplacian)sympifyz	x:z a:e nc                  C   s*   t  } | dt tdt ksJ d S N   )r   doprintxmp)m r   B/usr/lib/python3/dist-packages/sympy/printing/tests/test_mathml.pytest_mathml_printer*   s   $r   c                   C   s   t dt dksJ d S )Nr   *<apply><plus/><ci>x</ci><cn>1</cn></apply>)r   r   r   r   r   r   r   test_content_printmethod/      r   c                  C   s  t dt } | jdksJ | j}t|dksJ |d jdks"J |d  du s,J |d jd u s5J |d jdv s>J |d jdkr^|d jd jd	ksQJ |d
 jd jdks]J n|d jd jdksjJ |d
 jd jd	ksvJ t td
 }|jdksJ |j}|d jd jdksJ |d
 jd jdksJ t d
t }|jdksJ |j}|d jdksJ |d jd jdksJ |d
 jd jdksJ t tdd
t }|jdksJ |j}|d jdksJ |d jd jdksJ |d
 jd jdksJ d S )Nr   apply   r   plusF)cncir   1   r   2times      ?1.0)	r   _printr   nodeName
childNodeslenZhasChildNodes	nodeValuer   mml_1Znodesmml_2mml_3mmlr   r   r   test_content_mathml_core3   s<   r   c                  C   s  t tt} | jdksJ | jd jdksJ | jd jdks"J t ttttdd}|jdks5J |jd jdks?J |jd jd	ksIJ |jd jd jdksVJ t tttt tdd}|jdkskJ |jd jd
ksuJ |jd jd	ksJ |jd jd jdksJ d S )Nr   r   r   r   r   FZevaluater   bvarZpartialdiff)	r   r   r   r   r   r   r   r	   yr   r   r   r   r   r   test_content_mathml_functionsX   s,   

r   c                  C   s~   t tt } tt| td}|jd jdksJ |jd jdks#J |jd jdks-J |jd  t|  ks=J d S )Nr   limitr   r   r   lowlimitr   )r   r   r   r   r   r   r   toxmlZlim_funr   r   r   r   test_content_mathml_limitsm   s   $r   c                  C   s   t } tt| t ddf}|jd jdksJ |jd jdks!J |jd jdks+J |jd jdks5J |jd	  t|  ksEJ d S )
Nr   r   intr   r   r   r   uplimit   )r   r   r   r   r   r   r   )Z	integrandr   r   r   r   test_content_mathml_integralsw      $r   c                  C   s  t g d} t g dg dg dg}t| }|jd jdks"J |jd jd jdks/J |jd jd jd jdks?J |jd	 jdksIJ |jd	 jd jdksVJ |jd	 jd jd jd
ksfJ |jd jdkspJ |jd jd jdks}J |jd jd jd jdksJ t|}|jd jdksJ |jd jd jdksJ |jd jd jd jdksJ |jd jd	 jdksJ |jd jd	 jd jdksJ |jd jd jdksJ |jd jd jd jdksJ |jd	 jdksJ |jd	 jd jdksJ |jd	 jd jd jd
ksJ |jd	 jd	 jdks*J |jd	 jd	 jd jdks;J |jd	 jd jdksIJ |jd	 jd jd jdksZJ |jd jdkseJ |jd jd jdkssJ |jd jd jd jdksJ |jd jd	 jdksJ |jd jd	 jd jdksJ |jd jd jdksJ |jd jd jd jdksJ d S )Nr   r   r   r      r   r   r   r   	      r   r   Z	matrixrowr   r   r   r   r   305497)r    r   r   r   r   r   ABZmll_1Zmll_2r   r   r   test_content_mathml_matrices   sD   
   
   """""&r   c                  C   s   t } tt| t ddf}|jd jdksJ |jd jdks!J |jd jdks+J |jd jd	ks5J |jd
  t|  ksEJ d S )Nr   
   r   sumr   r   r   r   r   r   )r   r   r   r   r   r   r   Zsummandr   r   r   r   test_content_mathml_sums   r   r   c                  C   s   t dg} | jdksJ | jd jdksJ t| jdks J t dtdg}|jdks0J |jd jdks:J |jd jdksDJ t|jdksMJ d S )Nr   listr   r   r   )r   r   r   r   r   r   r   r   r   r   r   test_content_mathml_tuples   s   r   c                  C   sf   t td td  t } | jd jdksJ | jd jd jdks$J | jd jd jdks1J d S )Nr   r   r   r   r   Zminusr   )r   r   r   r   r   r   r   r   r   test_content_mathml_add   s   r   c                  C   sH   t tdd} 	 | jdksJ t tdd}|jd jdks"J d S )Nr   r   r   r   r   Zdivide)r   r   r   r   r   r   r   r   r   test_content_mathml_Rational   s
   r   c                  C   s   t t} | jdksJ t t} | jdksJ t t} | jdks$J t t} | jdks0J ttdks8J tt	} | dksBJ tt
 } | dksMJ ttj} | dksXJ ttj} | d	kscJ ttj} | d
ksnJ d S )NZ
imaginaryiZexponentialeZinfinityr   z<cn>&#966;</cn>z<eulergamma/>z<emptyset/>z<true/>z<false/>z<notanumber/>)r   r   r   r   r   r   r   r   r   r   r   r"   r'   r(   NaNr   r   r   r   test_content_mathml_constants   s&   







r   c                  C   sF  t tt} | jd jdksJ t tt} | jd jdks"J t tt} | jd jdks3J t tt} | jd jdksDJ t t	t} | jd jdksUJ t t
t} | jd jdksfJ t tt} | jd jdkswJ t tt} | jd jd	ksJ t tt} | jd jd
ksJ t tt} | jd jdksJ t tt} | jd jdksJ t tt} | jd jdksJ t tt} | jd jdksJ t tt} | jd jdksJ t tt} | jd jdksJ t tt} | jd jdksJ t tt} | jd jdks#J t tt} | jd jdks5J t tt} | jd jdksGJ t tt} | jd jdksYJ t tt} | jd jdkskJ t tt} | jd jdks}J t tt} | jd jdksJ t tt} | jd jdksJ d S )Nr   r   r	   r
   rG   rK   rO   arcsinarccosarctanZarccotZarccscZarcsecr   r   r   rH   rM   rQ   arcsinharctanharccoshZarccothZarccschZarcsech)r   r   r   r   r   r   r	   r
   rG   rK   rO   r   r   r   rI   rL   rP   r   r   r   rH   rM   rQ   r   r   r   rJ   rN   rR   r   r   r   r   test_content_mathml_trig   s`   r   c                  C   sB  t ttd} | jdksJ | jd jdksJ | jd jdks#J | jd jd jdks0J | jd jdks:J | jd jd jd	ksGJ t tdt}|jdksVJ |jd jd
ks`J |jd jdksjJ |jd jd jd	kswJ |jd jdksJ |jd jd jdksJ t tdt}|jdksJ |jd jdksJ |jd jdksJ |jd jd jd	ksJ |jd jdksJ |jd jd jdksJ t t	dt}|jdksJ |jd jdksJ |jd jdksJ |jd jd jd	ksJ |jd jdksJ |jd jd jdksJ d S )Nr   r   r   eqr   r   r   r   r   ZneqZgeqlt)
r   r   r   r   r   r   r   r   r   r   r   r   r   Zmml_4r   r   r   test_content_mathml_relational6  s8    r   c                  C   sP  t t} | jdksJ | jd jdksJ ~ t td} | jdks%J | jd jdks/J | jd jd jdks<J | jd jd jd jdksLJ | jd jd jdksYJ | jd jd jd jdksiJ ~ t td	} | jdksxJ | jd jdksJ | jd jd jdksJ | jd jd jd jdksJ | jd jd jdksJ | jd jd jd jdksJ ~ t td
} | jdksJ | jd jdksJ | jd jd jdksJ | jd jd jd jdksJ | jd jd jdksJ | jd jd jd jdksJ ~ t td} | jdks J | jd jdks+J | jd jd jdks9J | jd jd jd jdksJJ | jd jd jdksXJ | jd jd jd jdksiJ | jd jd jdkswJ | jd jd jd jdksJ ~ t td} | jdksJ | jd jdksJ | jd jd jdksJ | jd jd jd jdksJ | jd jd jdksJ | jd jd jd jdksJ | jd jd jdksJ | jd jd jd jdks J ~ t td} | jdksJ | jd jdksJ | jd jd jdks)J | jd jd jd jdks:J | jd jd jdksHJ | jd jd jd jdksYJ | jd jd jd jd jdksmJ | jd jd jd jdks~J | jd jd jd jd jdksJ | jd jd jd jdksJ | jd jd jd jd jdksJ ~ t td} | jdksJ | jd jdksJ | jd jd jdksJ | jd jd jd jdksJ | jd jd jdksJ | jd jd jd jdksJ | jd jd jd jd jdks$J | jd jd jd jdks5J | jd jd jd jd jdksIJ | jd jd jd jdksZJ | jd jd jd jd jdksnJ ~ t td} | jdks~J | jd jdksJ | jd jd jdksJ | jd jd jd jdksJ | jd jd jdksJ | jd jd jd jdksJ | jd jd jd jd jdksJ | jd jd jd jdksJ | jd jd jd jd jdks J | jd jd jd jdksJ | jd jd jd jd jdks%J ~ d S )Nr   r   r   x^2zmml:msupzmml:mir   r   x__2x_2zmml:msubx^3_2zmml:msubsupr   r   x__3_2x_2_azmml:mrowzmml:mo ax^2^ax__2__a)r   r   r   r   r   r   r   r   r   r   r   test_content_symbolX  s   
     """""""""
"
"
""
"
"
""
"
"
r   c                  C     t td} | jdksJ | jd jdksJ t tddks#J t tddks.J t tdd	ks9J t td
dksDJ t tddksOJ t tddksZJ t tddkseJ t tddkspJ t tddks{J 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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d0d1ksJ t td2d3ks#J t td4d5ks/J t td6d7ks;J t td8d9ksGJ t td:d;ksSJ t td<d=ks_J t td>d?kskJ t td@dAkswJ t tdBdCksJ t tdDdEksJ t tdFdGksJ t tdHdIksJ t tdJdKksJ t tdLdMksJ t tdNdOksJ t tdPdQksJ t tdRdSksJ t tdTdUksJ t tdVdWksJ t tdXdYksJ t tdZd[ksJ t td\d]ksJ t td^d_ks+J t td`daks7J t tdbdcksCJ t tdddeksOJ d S )fNalphar   r      αz<ci>&#945;</ci>betaz<ci>&#946;</ci>rm   z<ci>&#947;</ci>deltaz<ci>&#948;</ci>epsilonz<ci>&#949;</ci>rs   z<ci>&#950;</ci>etaz<ci>&#951;</ci>thetaz<ci>&#952;</ci>iotaz<ci>&#953;</ci>kappaz<ci>&#954;</ci>lambdaz<ci>&#955;</ci>muz<ci>&#956;</ci>nuz<ci>&#957;</ci>xiz<ci>&#958;</ci>omicronz<ci>&#959;</ci>r   z<ci>&#960;</ci>rhoz<ci>&#961;</ci>varsigmaz<ci>&#962;</ci>sigmaz<ci>&#963;</ci>tauz<ci>&#964;</ci>upsilonz<ci>&#965;</ci>phiz<ci>&#966;</ci>chiz<ci>&#967;</ci>psiz<ci>&#968;</ci>omegaz<ci>&#969;</ci>Alphaz<ci>&#913;</ci>Betaz<ci>&#914;</ci>Gammaz<ci>&#915;</ci>Deltaz<ci>&#916;</ci>Epsilonz<ci>&#917;</ci>Zetaz<ci>&#918;</ci>Etaz<ci>&#919;</ci>Thetaz<ci>&#920;</ci>Iotaz<ci>&#921;</ci>Kappaz<ci>&#922;</ci>r,   z<ci>&#923;</ci>Muz<ci>&#924;</ci>Nuz<ci>&#925;</ci>Xiz<ci>&#926;</ci>Omicronz<ci>&#927;</ci>Piz<ci>&#928;</ci>Rhoz<ci>&#929;</ci>Sigmaz<ci>&#931;</ci>Tauz<ci>&#932;</ci>Upsilonz<ci>&#933;</ci>Phiz<ci>&#934;</ci>Chiz<ci>&#935;</ci>Psiz<ci>&#936;</ci>Omegaz<ci>&#937;</ci>)r   r   r   r   r   r   r   r   r   r   r   test_content_mathml_greek  h   r*  c                  C   s  t d t d t  dt  td   td  } tddi}|| }|jd jd jdks.J |jd jd jd jd	ks>J |jd jd jd jd
ksNJ |jd jd jdks[J |jd jd jd jdkskJ |jd jd jd jdks{J tddi}|| }|jd jd jdksJ |jd jd jd jdksJ |jd jd jd jdksJ |jd jd jdksJ |jd jd jd jd	ksJ |jd jd jd jd
ksJ d S )Nr   r   r   orderlexr   r   Zpowerr   r   r   r   rev-lex)r   r   r   r   r   r   dataexprr   r   r   r   r   test_content_mathml_order  s"   ,
    
   $r2  c                   C      t tdd  d S )Nc                   S   s   t tddS )Ngarbage)methodr   r   r   r   r   r   <lambda>      z'test_content_settings.<locals>.<lambda>r   	TypeErrorr   r   r   r   test_content_settings     r;  c                   C   sp   t tttdksJ t tttdksJ t tttdks!J t tttdks,J t ttdks6J d S )Nz)<apply><and/><ci>x</ci><ci>y</ci></apply>z(<apply><or/><ci>x</ci><ci>y</ci></apply>z)<apply><xor/><ci>x</ci><ci>y</ci></apply>z-<apply><implies/><ci>x</ci><ci>y</ci></apply>z<apply><not/><ci>x</ci></apply>)r   ru   r   r   rv   ry   rw   rz   r   r   r   r   test_content_mathml_logic  s
   r=  c                  C   s  t ttdks
J t tttdksJ t tttttdks#J tt} tt}tt}tt}t| |dd}t||dd}t| |dd}t||dd}t| |dd}t||dd}	t	| |}
t	||}t |dksoJ t |dkswJ t |dksJ t |
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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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ks2J t t	||dks>J t t	||dksJJ t t	||	dksVJ d S )Nz<set><ci>a</ci></set>z<set><ci>a</ci><ci>b</ci></set>z4<set><ci>c</ci><set><ci>a</ci><ci>b</ci></set></set>Fr   zA<apply><union/><set><ci>a</ci></set><set><ci>b</ci></set></apply>zE<apply><intersect/><set><ci>a</ci></set><set><ci>b</ci></set></apply>zC<apply><setdiff/><set><ci>a</ci></set><set><ci>b</ci></set></apply>zL<apply><cartesianproduct/><set><ci>a</ci></set><set><ci>b</ci></set></apply>zq<apply><intersect/><set><ci>a</ci></set><apply><union/><set><ci>c</ci></set><set><ci>d</ci></set></apply></apply>z<apply><intersect/><apply><union/><set><ci>a</ci></set><set><ci>b</ci></set></apply><apply><union/><set><ci>c</ci></set><set><ci>d</ci></set></apply></apply>z<apply><intersect/><apply><setdiff/><set><ci>a</ci></set><set><ci>b</ci></set></apply><apply><setdiff/><set><ci>c</ci></set><set><ci>d</ci></set></apply></apply>z<apply><intersect/><apply><cartesianproduct/><set><ci>a</ci></set><set><ci>b</ci></set></apply><apply><cartesianproduct/><set><ci>c</ci></set><set><ci>d</ci></set></apply></apply>zq<apply><union/><set><ci>a</ci></set><apply><intersect/><set><ci>c</ci></set><set><ci>d</ci></set></apply></apply>z<apply><union/><apply><intersect/><set><ci>a</ci></set><set><ci>b</ci></set></apply><apply><intersect/><set><ci>c</ci></set><set><ci>d</ci></set></apply></apply>z<apply><union/><apply><setdiff/><set><ci>a</ci></set><set><ci>b</ci></set></apply><apply><setdiff/><set><ci>c</ci></set><set><ci>d</ci></set></apply></apply>z<apply><union/><apply><cartesianproduct/><set><ci>a</ci></set><set><ci>b</ci></set></apply><apply><cartesianproduct/><set><ci>c</ci></set><set><ci>d</ci></set></apply></apply>zq<apply><setdiff/><set><ci>a</ci></set><apply><setdiff/><set><ci>c</ci></set><set><ci>d</ci></set></apply></apply>z<apply><setdiff/><apply><union/><set><ci>a</ci></set><set><ci>b</ci></set></apply><apply><union/><set><ci>c</ci></set><set><ci>d</ci></set></apply></apply>z<apply><setdiff/><apply><intersect/><set><ci>a</ci></set><set><ci>b</ci></set></apply><apply><intersect/><set><ci>c</ci></set><set><ci>d</ci></set></apply></apply>z<apply><setdiff/><apply><cartesianproduct/><set><ci>a</ci></set><set><ci>b</ci></set></apply><apply><cartesianproduct/><set><ci>c</ci></set><set><ci>d</ci></set></apply></apply>z<apply><cartesianproduct/><set><ci>a</ci></set><apply><cartesianproduct/><set><ci>c</ci></set><set><ci>d</ci></set></apply></apply>z<apply><cartesianproduct/><apply><union/><set><ci>a</ci></set><set><ci>b</ci></set></apply><apply><union/><set><ci>c</ci></set><set><ci>d</ci></set></apply></apply>z<apply><cartesianproduct/><apply><intersect/><set><ci>a</ci></set><set><ci>b</ci></set></apply><apply><intersect/><set><ci>c</ci></set><set><ci>d</ci></set></apply></apply>z<apply><cartesianproduct/><apply><setdiff/><set><ci>a</ci></set><set><ci>b</ci></set></apply><apply><setdiff/><set><ci>c</ci></set><set><ci>d</ci></set></apply></apply>)
r   r   r   bcdr   r   r   r   )r   r   CDU1ZU2I1ZI2C1ZC2P1ZP2r   r   r   test_content_finite_sets"  s   







rG  c                   C   sr   t dt dksJ t td dksJ t td dks!J t td dks,J t dt d	ks7J d S )
Nr   +<mrow><mi>x</mi><mo>+</mo><mn>1</mn></mrow>r   z!<msup><mi>x</mi><mn>2</mn></msup>z#<mfrac><mn>1</mn><mi>x</mi></mfrac>z:<mfrac><mn>1</mn><msup><mi>x</mi><mn>2</mn></msup></mfrac>z:<mrow><mn>2</mn><mo>&InvisibleTimes;</mo><mi>x</mi></mrow>)mppr   r   r   r   r   r   test_presentation_printmethod  s   rL  c                  C   s  t dt } | jdksJ | j}t|dksJ |d jdv s"J |d jdks+J |d jdkrK|d jd jdks>J |d	 jd jd
ksJJ n|d jd jd
ksWJ |d	 jd jdkscJ t td	 }|jdksqJ |j}|d jd jd
ksJ |d jd jdksJ t d	t }|jdksJ |j}|d jd jdksJ |d jd jdksJ |d	 jd jd
ksJ t tdd	t }|jdksJ |j}|d jd jdksJ |d jd jdksJ |d	 jd jd
ksJ d S )Nr   mrowr   r   )mimnmorO  r   r   r   msupr   z&InvisibleTimes;r   r   )rK  r   r   r   r   r   r   r   r   r   r   r   test_presentation_mathml_core  s8   rR  c                  C   sN  t tt} | jd jd jdksJ | jd jd jd jdks$J t ttttdd}|jdks7J |jd jd jd jd jdksJJ |jd jd jd	ksWJ |jd jd jd jd jdksjJ t tttt	 tdd}|jd jd
ksJ |jd jd jd jd jdksJ |jd jd jd jdksJ d S )Nr   r   r   r   Fr   rM  z&dd;Zmfencedmfracz&#x2202;r	   )
rK  r   r   r   r   r   r   r   r	   r   r   r   r   r   "test_presentation_mathml_functions  sT   rT  c                  C   sL   t d} t| ttttttttt}t|dksJ t|dddks$J d S )Nfz<apply><partialdiff/><bvar><ci>y</ci><ci>z</ci><degree><cn>2</cn></degree><ci>x</ci><ci>z</ci><ci>x</ci></bvar><apply><f/><ci>x</ci><ci>y</ci><ci>z</ci></apply></apply>presentationprinteraD  <mrow><mfrac><mrow><msup><mo>&#x2202;</mo><mn>6</mn></msup></mrow><mrow><mo>&#x2202;</mo><mi>y</mi><msup><mo>&#x2202;</mo><mn>2</mn></msup><mi>z</mi><mo>&#x2202;</mo><mi>x</mi><mo>&#x2202;</mo><mi>z</mi><mo>&#x2202;</mo><mi>x</mi></mrow></mfrac><mrow><mi>f</mi><mfenced><mi>x</mi><mi>y</mi><mi>z</mi></mfenced></mrow></mrow>)r$   r%   r   r   zr   )rU  r@  r   r   r   test_print_derivative  s   
rZ  c                  C   s   t tt } tt| td}|jd jdksJ |jd jd jd jdks)J |jd jd jd jd jdks<J |jd jd jd jd jdksOJ |jd jd jd jd jdksbJ d S )	Nr   ZmunderZlimr   r   z&#x2192;r   r   )r   r   rK  r   r   r   r   r   r   r   r   r   test_presentation_mathml_limits  s:   r[  c               	   C   s   t tttddfdksJ t ttttdksJ t ttt ttdks,J td\} }t ttt |  tt| dksDJ t ttt |  | tt| |dksYJ t tttt| ddfd	ksjJ t tttdfd
ksxJ d S )Nr   r   zf<mrow><msubsup><mo>&#x222B;</mo><mn>0</mn><mn>1</mn></msubsup><mi>x</mi><mo>&dd;</mo><mi>x</mi></mrow>zk<mrow><mo>&#x222B;</mo><mrow><mi>log</mi><mfenced><mi>x</mi></mfenced></mrow><mo>&dd;</mo><mi>x</mi></mrow>z<mrow><mo>&#x222C;</mo><mrow><mi>x</mi><mo>&InvisibleTimes;</mo><mi>y</mi></mrow><mo>&dd;</mo><mi>y</mi><mo>&dd;</mo><mi>x</mi></mrow>zz wz<mrow><mo>&#x222D;</mo><mrow><mi>x</mi><mo>&InvisibleTimes;</mo><mi>y</mi><mo>&InvisibleTimes;</mo><mi>z</mi></mrow><mo>&dd;</mo><mi>z</mi><mo>&dd;</mo><mi>y</mi><mo>&dd;</mo><mi>x</mi></mrow>a-  <mrow><mo>&#x222B;</mo><mo>&#x222B;</mo><mo>&#x222B;</mo><mo>&#x222B;</mo><mrow><mi>w</mi><mo>&InvisibleTimes;</mo><mi>x</mi><mo>&InvisibleTimes;</mo><mi>y</mi><mo>&InvisibleTimes;</mo><mi>z</mi></mrow><mo>&dd;</mo><mi>w</mi><mo>&dd;</mo><mi>z</mi><mo>&dd;</mo><mi>y</mi><mo>&dd;</mo><mi>x</mi></mrow>z<mrow><msubsup><mo>&#x222B;</mo><mn>0</mn><mn>1</mn></msubsup><mo>&#x222B;</mo><mo>&#x222B;</mo><mi>x</mi><mo>&dd;</mo><mi>z</mi><mo>&dd;</mo><mi>y</mi><mo>&dd;</mo><mi>x</mi></mrow>zV<mrow><msup><mo>&#x222B;</mo><mn>0</mn></msup><mi>x</mi><mo>&dd;</mo><mi>x</mi></mrow>)rK  r   r   r   r&   r   r.   )rY  wr   r   r   "test_presentation_mathml_integrals  s,    r]  c                  C   sf  t g d} t g dg dg dg}t| }|jd jdks"J |jd jd jdks/J t|jd jdks;J |jd jd jd jd	ksKJ t|jd jd jd
ksZJ |jd jd jd jd jd jdkspJ |jd jd
 jd jd jd jdksJ |jd jd jd jd jd jdksJ t|}|jd jdksJ |jd jd jdksJ t|jd jdksJ |jd jd jd jd	ksJ t|jd jd jdksJ |jd jd jd jd jd jdksJ |jd jd jd
 jd jd jdksJ |jd jd jd jd jd jdks'J |jd jd
 jd jd jd jdks>J |jd jd
 jd
 jd jd jdksUJ |jd jd
 jd jd jd jdkslJ |jd jd jd jd jd jdksJ |jd jd jd
 jd jd jdksJ |jd jd jd jd jd jdksJ d S )Nr   r   r   r   r   ZmtableZmtrr   Zmtdr   r   r   r   r   r   r   r   r   r   )r    rK  r   r   r   r   r   r   r   r   r   !test_presentation_mathml_matrices  s   
 
 






r^  c                  C   s   t } tt| t ddf}|jd jdksJ t|jd jdks#J |jd jd jd jdks3J t|jd jd jdksBJ |jd jd jd jdksRJ |jd jd jd	ks_J d S )
Nr   r   r   Z
munderoverr   z&#x2211;r   Z10r   )r   rK  r   r   r   r   r   r   r   r   r   r   test_presentation_mathml_sums,  s   r_  c                  C   s   t td td  t } t| jdksJ | jd jd jd jdks&J | jd jd jd jdks6J | jd jd jdksCJ | jd jd jd jdksSJ | jd jd jd jd	kscJ | jd
 jd jdkspJ | jd jd jdks}J d S )Nr   r   r   r   r   r   -r   r   r   +)rK  r   r   r   r   r   r   r   r   r   test_presentation_mathml_add9  s"   rb  c                  C   st   t tdd} | jdksJ t tdd}|jdksJ |jd jd jdks+J |jd jd jdks8J d S )	Nr   rO  r   r   rS  r   r   r   )rK  r   r   r   r   r   r   r   r   r   !test_presentation_mathml_RationalI  s   rc  c                  C   s   t t} | jd jdksJ t t} | jd jdksJ t t} | jd jdks-J t t} | jd jdks<J tt	dddksFJ tt
ddd	ksPJ ttjddd
ks[J d S )Nr   z&ImaginaryI;z&ExponentialE;z&#x221E;z&pi;rV  rW  z<mi>&#x3A6;</mi>z*<mover><mo>&#x221E;</mo><mo>~</mo></mover>z<mi>NaN</mi>)rK  r   r   r   r   r   r   r   r   r   r/   r"   r   r   r   r   r   "test_presentation_mathml_constantsS  s   




rd  c                  C   s  t tt} | jd jd jdksJ t tt} | jd jd jdks(J t tt} | jd jd jdks<J t tt} | jd jd jdksPJ t t	t} | jd jd jdksdJ t t
t} | jd jd jdksxJ t tt} | jd jd jdksJ t tt} | jd jd jd	ksJ t tt} | jd jd jd
ksJ t tt} | jd jd jdksJ t tt} | jd jd jdksJ t tt} | jd jd jdksJ d S )Nr   r   r	   r
   r   r   r   r   r   r   r   r   r   )rK  r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   test_presentation_mathml_trigg  s0   re  c                  C   s  t ttd} t| jdksJ | jd jdksJ | jd jd jdks(J | jd jdks2J | jd jd jdks?J | jd jd	ksIJ | jd jd jd
ksVJ t tdt}t|jdksgJ |jd jd	ksqJ |jd jd jd
ks~J |jd jdksJ |jd jd jdksJ |jd jdksJ |jd jd jdksJ t t	dt}t|jdksJ |jd jd	ksJ |jd jd jd
ksJ |jd jdksJ |jd jd jdksJ |jd jdksJ |jd jd jdksJ t t
dt}t|jdksJ |jd jd	ks J |jd jd jd
ks.J |jd jdks9J |jd jd jdksGJ |jd jdksRJ |jd jd jdks`J d S )Nr   r   r   rN  r   rP  =r   rO  r   z&#x2260;z&#x2265;<)rK  r   r   r   r   r   r   r   r   r   r   r   r   r   r   #test_presentation_mathml_relational  s@    rh  c                  C   sj  t t} | jdksJ | jd jdksJ ~ t td} | jdks%J | jd jdks/J | jd jd jdks<J | jd jdksFJ | jd jd jdksSJ ~ t td} | jdksbJ | jd jdkslJ | jd jd jdksyJ | jd jdksJ | jd jd jdksJ ~ t td	} | jd
ksJ | jd jdksJ | jd jd jdksJ | jd jdksJ | jd jd jdksJ ~ t td} | jdksJ | jd jdksJ | jd jd jdksJ | jd jdksJ | jd jd jdksJ | jd jdksJ | jd jd jdks$J ~ t td} | jdks4J | jd jdks?J | jd jd jdksMJ | jd jdksXJ | jd jd jdksfJ | jd jdksqJ | jd jd jdksJ ~ t td} | jd
ksJ | jd jdksJ | jd jd jdksJ | jd jdksJ | jd jd jdksJ | jd jd jd jdksJ | jd jd jdksJ | jd jd jd jdksJ | jd jd jdksJ | jd jd jd jdksJ ~ t td} | jdks J | jd jdks+J | jd jd jdks9J | jd jdksDJ | jd jd jdksRJ | jd jd jd jdkscJ | jd jd jdksqJ | jd jd jd jdksJ | jd jd jdksJ | jd jd jd jdksJ ~ t td} | jdksJ | jd jdksJ | jd jd jdksJ | jd jdksJ | jd jd jdksJ | jd jd jd jdksJ | jd jd jdksJ | jd jd jd jdksJ | jd jd jdks!J | jd jd jd jdks2J ~ d S )NrN  r   r   r   rQ  r   r   r   r   Zmsubr   Zmsubsupr   r   r   r   rM  rP  r   r   r   r   )rK  r   r   r   r   r   r   r   r   r   r   test_presentation_symbol  s   
"""""""""ri  c                  C   r   )fNr   rN  r   r   z<mi>&#945;</mi>r   z<mi>&#946;</mi>rm   z<mi>&#947;</mi>r   z<mi>&#948;</mi>r   z<mi>&#949;</mi>rs   z<mi>&#950;</mi>r  z<mi>&#951;</mi>r  z<mi>&#952;</mi>r  z<mi>&#953;</mi>r  z<mi>&#954;</mi>r  z<mi>&#955;</mi>r  z<mi>&#956;</mi>r  z<mi>&#957;</mi>r  z<mi>&#958;</mi>r	  z<mi>&#959;</mi>r   z<mi>&#960;</mi>r
  z<mi>&#961;</mi>r  z<mi>&#962;</mi>r  z<mi>&#963;</mi>r  z<mi>&#964;</mi>r  z<mi>&#965;</mi>r  z<mi>&#966;</mi>r  z<mi>&#967;</mi>r  z<mi>&#968;</mi>r  z<mi>&#969;</mi>r  z<mi>&#913;</mi>r  z<mi>&#914;</mi>r  z<mi>&#915;</mi>r  z<mi>&#916;</mi>r  z<mi>&#917;</mi>r  z<mi>&#918;</mi>r  z<mi>&#919;</mi>r  z<mi>&#920;</mi>r  z<mi>&#921;</mi>r  z<mi>&#922;</mi>r,   z<mi>&#923;</mi>r  z<mi>&#924;</mi>r  z<mi>&#925;</mi>r  z<mi>&#926;</mi>r   z<mi>&#927;</mi>r!  z<mi>&#928;</mi>r"  z<mi>&#929;</mi>r#  z<mi>&#931;</mi>r$  z<mi>&#932;</mi>r%  z<mi>&#933;</mi>r&  z<mi>&#934;</mi>r'  z<mi>&#935;</mi>r(  z<mi>&#936;</mi>r)  z<mi>&#937;</mi>)rK  r   r   r   r   r   r   r   r   r   r   test_presentation_mathml_greek  r+  rj  c                  C   s  t d t d t  dt  td   td  } tddi}|| }|jd jdks+J |jd jd jd jdks;J |jd jd	 jd jd
ksKJ |jd jdksUJ |jd jd jd jdkseJ |jd jd	 jd jdksuJ tddi}|| }|jd jdksJ |jd jd jd jdksJ |jd jd	 jd jdksJ |jd jdksJ |jd jd jd jdksJ |jd jd	 jd jd
ksJ d S )Nr   r   r   r,  r-  r   rQ  r   r   r      r   r   r.  )r   r   r   r   r   r   r   r0  r   r   r   test_presentation_mathml_orderF  s"   ,
    
   $rl  c                  C   s   t ddd} ttd| dksJ ttd| dddks J ttd| dddks.J ttd| dddks<J ttd| ddd	ksJJ d S )
Nr   Trealr   zG<mrow><mfenced close="]" open="["><mn>0</mn><mi>a</mi></mfenced></mrow>FzG<mrow><mfenced close="]" open="("><mn>0</mn><mi>a</mi></mfenced></mrow>zG<mrow><mfenced close=")" open="["><mn>0</mn><mi>a</mi></mfenced></mrow>zG<mrow><mfenced close=")" open="("><mn>0</mn><mi>a</mi></mfenced></mrow>)r   rK  r   r   r   r   r   r   test_print_intervals_  s    rp  c                	   C   s   t tddksJ t tdtdksJ t tdttdks$J t tdddddd	ks3J t tddtdddd
ksDJ d S )Nr   z*<mrow><mfenced><mn>0</mn></mfenced></mrow>z4<mrow><mfenced><mn>0</mn><mi>a</mi></mfenced></mrow>z><mrow><mfenced><mn>0</mn><mi>a</mi><mi>a</mi></mfenced></mrow>r   r   r   r   zR<mrow><mfenced><mn>0</mn><mn>1</mn><mn>2</mn><mn>3</mn><mn>4</mn></mfenced></mrow>zr<mrow><mfenced><mn>0</mn><mn>1</mn><mrow><mfenced><mn>2</mn><mn>3</mn><mn>4</mn></mfenced></mrow></mfenced></mrow>)rK  r   r\   r   r   r   r   r   test_print_tuplesm  s   rq  c                   C   sd   t ttdksJ t ttdksJ t ttd dks#J t ttd dks0J d S )NzJ<mrow><mi mathvariant="fraktur">R</mi><mfenced><mi>x</mi></mfenced></mrow>zJ<mrow><mi mathvariant="fraktur">I</mi><mfenced><mi>x</mi></mfenced></mrow>r   zk<mrow><mrow><mi mathvariant="fraktur">R</mi><mfenced><mi>x</mi></mfenced></mrow><mo>+</mo><mn>1</mn></mrow>)rK  r   rf   r   rg   r   r   r   r   test_print_re_im{  s   rr  c                   C   4   t ttdksJ t ttd dksJ d S )Nz=<mrow><mfenced close="|" open="|"><mi>x</mi></mfenced></mrow>r   z^<mrow><mfenced close="|" open="|"><mrow><mi>x</mi><mo>+</mo><mn>1</mn></mrow></mfenced></mrow>)rK  r   rh   r   r   r   r   r   test_print_Abs     rt  c                   C   s*   t ttddgddggdksJ d S )Nr   r   r   r   z<mrow><mfenced close="|" open="|"><mfenced close="]" open="["><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>2</mn></mtd></mtr><mtr><mtd><mn>3</mn></mtd><mtd><mn>4</mn></mtd></mtr></mtable></mfenced></mfenced></mrow>)rK  r   r{   r    r   r   r   r   test_print_Determinant  s   rv  c                   C   r3  )Nc                   S   s   t tdddS )NrV  r4  )rX  r5  r6  r   r   r   r   r7    s    z,test_presentation_settings.<locals>.<lambda>r9  r   r   r   r   test_presentation_settings  r<  rw  c                  C   sh   dd l } | jjd}| jjd}| }| }t  t  || ks*J || ks2J d S )Nr   r   rH  )Zxml.dom.minidomZdomZminidomZparseStringZtoprettyxmlr   Zapply_patchZrestore_patch)ZxmlZdoc1Zdoc2Zprettyxml_old1Zprettyxml_old2r   r   r   test_toprettyxml_hooking  s   rx  c                  C   sz   ddl m} m}m}m}m} t| dksJ t|dks J t|dks)J t|dks2J t|dks;J d S )Nr   	ComplexesIntegersNaturals	Naturals0Realsz&<mi mathvariant="normal">&#x2102;</mi>z&<mi mathvariant="normal">&#x2124;</mi>z&<mi mathvariant="normal">&#x2115;</mi>z=<msub><mi mathvariant="normal">&#x2115;</mi><mn>0</mn></msub>z&<mi mathvariant="normal">&#x211D;</mi>)sympyrz  r{  r|  r}  r~  rK  r   ry  r   r   r   test_print_domains  s   r  c                   C   sJ   t t dks
J t t t dksJ t tdd dks#J d S )Nz!<mrow><mo>-</mo><mi>x</mi></mrow>z:<mrow><mo>-</mo><mfrac><mi>x</mi><mi>y</mi></mfrac></mrow>r   r   z:<mrow><mo>-</mo><mfrac><mn>1</mn><mn>2</mn></mfrac></mrow>)rK  r   r   r   r   r   r   r   r    test_print_expression_with_minus  s   r  c                  C   s8   ddl m}  G dd d| }|dd}t|dk d S )Nr   )AssocOpc                   @   s   e Zd ZdZdS )z'test_print_AssocOp.<locals>.TestAssocOpr   N)__name__
__module____qualname__identityr   r   r   r   TestAssocOp  s    r  r   r   z5<mrow><mi>testassocop</mi><mn>2</mn><mn>1</mn></mrow>)Zsympy.core.operationsr  rK  r   )r  r  r1  r   r   r   test_print_AssocOp  s   
r  c                  C   s2   t dd} t| dksJ t| dksJ d S )Nr   r   zB<mrow><mi>basic</mi><mfenced><mn>1</mn><mn>2</mn></mfenced></mrow>z#<basic><cn>1</cn><cn>2</cn></basic>)r!   rK  r   r   r1  r   r   r   test_print_basic  s
   
r  c                  C   sZ   t ddgddgg} t| ddddksJ t| dd	dd
ks J t| ddddks+J d S )Nr   r   r   r   rV  [)rX  Z	mat_delimz<mfenced close="]" open="["><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>2</mn></mtd></mtr><mtr><mtd><mn>3</mn></mtd><mtd><mn>4</mn></mtd></mtr></mtable></mfenced>(z<mfenced><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>2</mn></mtd></mtr><mtr><mtd><mn>3</mn></mtd><mtd><mn>4</mn></mtd></mtr></mtable></mfenced> z{<mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>2</mn></mtd></mtr><mtr><mtd><mn>3</mn></mtd><mtd><mn>4</mn></mtd></mtr></mtable>)r    r   r  r   r   r   test_mat_delim_print  s   r  c                  C   sL   t t} t| dddksJ t| ddddksJ t| ddddks$J d S )NrV  rW  z6<mrow><mi>log</mi><mfenced><mi>x</mi></mfenced></mrow>F)rX  Zln_notationTz5<mrow><mi>ln</mi><mfenced><mi>x</mi></mfenced></mrow>)r&   r   r   r  r   r   r   test_ln_notation_print  s   
r  c                  C   sx   t t } t| dddksJ t| dd ddksJ t| ddddks$J t| ddddks/J t| dd	dd
ks:J d S )NrV  rW  z:<mrow><mi>x</mi><mo>&InvisibleTimes;</mo><mi>y</mi></mrow>)rX  Z
mul_symboldotz0<mrow><mi>x</mi><mo>&#xB7;</mo><mi>y</mi></mrow>Zldotz2<mrow><mi>x</mi><mo>&#x2024;</mo><mi>y</mi></mrow>r   z0<mrow><mi>x</mi><mo>&#xD7;</mo><mi>y</mi></mrow>)r   r   r   r  r   r   r   test_mul_symbol_print  s    
r  c                   C   s   t tddddksJ d S )Nr   r   r   zN<mrow><mi>&#x3A6;</mi><mfenced><mn>1</mn><mn>2</mn><mn>3</mn></mfenced></mrow>)rK  r   rr   r   r   r   r   test_print_lerchphi     r  c                   C   s4   t tttdksJ ttttdksJ d S )Nz-<apply><polylog/><ci>x</ci><ci>y</ci></apply>zL<mrow><msub><mi>Li</mi><mi>x</mi></msub><mfenced><mi>y</mi></mfenced></mrow>)r   r   rq   r   r   rK  r   r   r   r   test_print_polylog  s   r  c                  C   s@   t h d} t| dksJ th d}t|dksJ d S )N>   r   r   r   zD<mfenced close="}" open="{"><mn>1</mn><mn>3</mn><mn>5</mn></mfenced>>   r   r   r   D<mfenced close="}" open="{"><mn>1</mn><mn>2</mn><mn>3</mn></mfenced>)	frozensetrK  r   set)rU  sr   r   r   test_print_set_frozenset  s   r  c                  C   s"   t tdd} t| dksJ d S )Nr   r   zD<mfenced close="}" open="{"><mn>1</mn><mn>3</mn><mi>x</mi></mfenced>)r   r   rK  r   )f1r   r   r   test_print_FiniteSet
  s   r  c                   C   s2   t ttdksJ t tttdksJ d S )Nz4<mrow><mi>W</mi><mfenced><mi>x</mi></mfenced></mrow>z><mrow><mi>W</mi><mfenced><mi>x</mi><mi>y</mi></mfenced></mrow>)rK  r   rF   r   r   r   r   r   r   test_print_LambertW  s   r  c                   C   s   t t dks
J d S )Nz<mo>&#x2205;</mo>)rK  r   r   r   r   r   r   test_print_EmptySet     r  c                   C   s   t tjdks
J d S )Nz<mo>&#x1D54C;</mo>)rK  r   r"   ZUniversalSetr   r   r   r   test_print_UniversalSet  r  r  c                   C   sB   t t dks
J t tddksJ t t dksJ d S )Nz<mi>&#x210B;</mi>r   z <msup>&#x1D49E;<mn>2</mn></msup>z<mi>&#x2131;</mi>)rK  r   r}   r|   r~   r   r   r   r   test_print_spaces  s   r  c                   C   s:   t tdks	J t tdksJ t tdksJ d S )Nz<mi>&#x210F;</mi>z<mi>TribonacciConstant</mi>z<mi>&#x3B3;</mi>)rK  r   r   rD   r   r   r   r   r   test_print_constants#     r  c                   C   s   t tttjdksJ d S )NzN<mrow><mi>x</mi><mo>&#x2208;</mo><mi mathvariant="normal">&#x2115;</mi></mrow>)rK  r   rE   r   r"   r|  r   r   r   r   test_print_Contains)  r  r  c                   C   s   t ttdksJ d S )Nz<msup><mi>x</mi>&#x2020;</msup>)rK  r   r   r   r   r   r   r   test_print_Dagger.  r   r  c                  C   sd  t tdd} t tdd}dd }|t| |ddd	ksJ |t| |ddd
ks*J |t| |dddks7J |t| |dddksDJ t t}t t}t t	}t||dd}t||dd}t||dd}t||dd}	t
||}
|t||dddks~J |t||dddksJ |t||	dddksJ |t||
dddksJ |t
||dksJ d S )Nr   r   r   r   c                 S   s   t | ddS )NrV  rW  )r   )r   r   r   r   r7  6  r8  z"test_print_SetOp.<locals>.<lambda>Fr   z<mrow><mfenced close="}" open="{"><mn>1</mn><mn>3</mn><mi>x</mi></mfenced><mo>&#x222A;</mo><mfenced close="}" open="{"><mn>2</mn><mn>4</mn><mi>y</mi></mfenced></mrow>z<mrow><mfenced close="}" open="{"><mn>1</mn><mn>3</mn><mi>x</mi></mfenced><mo>&#x2229;</mo><mfenced close="}" open="{"><mn>2</mn><mn>4</mn><mi>y</mi></mfenced></mrow>z<mrow><mfenced close="}" open="{"><mn>1</mn><mn>3</mn><mi>x</mi></mfenced><mo>&#x2216;</mo><mfenced close="}" open="{"><mn>2</mn><mn>4</mn><mi>y</mi></mfenced></mrow>z<mrow><mfenced close="}" open="{"><mn>1</mn><mn>3</mn><mi>x</mi></mfenced><mo>&#x2206;</mo><mfenced close="}" open="{"><mn>2</mn><mn>4</mn><mi>y</mi></mfenced></mrow>z<mrow><mfenced close="}" open="{"><mi>a</mi></mfenced><mo>&#x222A;</mo><mfenced><mrow><mfenced close="}" open="{"><mi>c</mi></mfenced><mo>&#x2229;</mo><mfenced close="}" open="{"><mi>d</mi></mfenced></mrow></mfenced></mrow>z<mrow><mfenced close="}" open="{"><mi>a</mi></mfenced><mo>&#x2229;</mo><mfenced><mrow><mfenced close="}" open="{"><mi>c</mi></mfenced><mo>&#x2216;</mo><mfenced close="}" open="{"><mi>d</mi></mfenced></mrow></mfenced></mrow>z<mrow><mfenced close="}" open="{"><mi>a</mi></mfenced><mo>&#x2216;</mo><mfenced><mrow><mfenced close="}" open="{"><mi>c</mi></mfenced><mo>&#x2206;</mo><mfenced close="}" open="{"><mi>d</mi></mfenced></mrow></mfenced></mrow>z<mrow><mfenced close="}" open="{"><mi>a</mi></mfenced><mo>&#x2206;</mo><mfenced><mrow><mfenced close="}" open="{"><mi>c</mi></mfenced><mo>&#x00d7;</mo><mfenced close="}" open="{"><mi>d</mi></mfenced></mrow></mfenced></mrow>z<mrow><mfenced close="}" open="{"><mi>a</mi></mfenced><mo>&#x00d7;</mo><mfenced><mrow><mfenced close="}" open="{"><mi>c</mi></mfenced><mo>&#x222A;</mo><mfenced close="}" open="{"><mi>d</mi></mfenced></mrow></mfenced></mrow>)r   r   r   r   r   r   r   r   r?  r@  r   )r  f2Zprntrr   rA  rB  rC  rD  rE  ZD1rF  r   r   r   test_print_SetOp2  sL   
r  c                	   C   sN  t tttdksJ t tttdksJ t tttdks$J t tttdks0J t tttdks<J t tt	tttdkdksMJ t tt	tdtdk ttd	 kd
kscJ t tt	tttdkdkstJ t tt	tdttdk ttd	 kdksJ t t
tdksJ t t
tttdksJ d S )Nz2<mrow><mi>x</mi><mo>&#x2227;</mo><mi>y</mi></mrow>z2<mrow><mi>x</mi><mo>&#x2228;</mo><mi>y</mi></mrow>z2<mrow><mi>x</mi><mo>&#x22BB;</mo><mi>y</mi></mrow>z2<mrow><mi>x</mi><mo>&#x21D2;</mo><mi>y</mi></mrow>z2<mrow><mi>x</mi><mo>&#x21D4;</mo><mi>y</mi></mrow>r   zt<mrow><mrow><mi>x</mi><mo>=</mo><mi>y</mi></mrow><mo>&#x2227;</mo><mrow><mi>x</mi><mo>></mo><mn>4</mn></mrow></mrow>r   r   z<mrow><mrow><mi>x</mi><mo>=</mo><mn>3</mn></mrow><mo>&#x2227;</mo><mrow><mi>x</mi><mo>></mo><mrow><mi>y</mi><mo>+</mo><mn>1</mn></mrow></mrow><mo>&#x2227;</mo><mrow><mi>y</mi><mo><</mo><mn>3</mn></mrow></mrow>zt<mrow><mrow><mi>x</mi><mo>=</mo><mi>y</mi></mrow><mo>&#x2228;</mo><mrow><mi>x</mi><mo>></mo><mn>4</mn></mrow></mrow>z<mrow><mrow><mi>x</mi><mo>=</mo><mn>3</mn></mrow><mo>&#x2227;</mo><mfenced><mrow><mrow><mi>x</mi><mo>></mo><mrow><mi>y</mi><mo>+</mo><mn>1</mn></mrow></mrow><mo>&#x2228;</mo><mrow><mi>y</mi><mo><</mo><mn>3</mn></mrow></mrow></mfenced></mrow>z&<mrow><mo>&#xAC;</mo><mi>x</mi></mrow>za<mrow><mo>&#xAC;</mo><mfenced><mrow><mi>x</mi><mo>&#x2227;</mo><mi>y</mi></mrow></mfenced></mrow>)rK  r   ru   r   r   rv   ry   rw   rx   r   rz   r   r   r   r   test_print_logico  s>   "&r  c                   C   s   t ttjd  dddksJ t ttjd  ddddksJ t ttjd  ddd	ks.J t ttjd  dddd
ks>J t ttdd dddksMJ t ttdd ddddks]J d S )Nr   rV  rW  z#<mroot><mi>x</mi><mn>3</mn></mroot>F)rX  Zroot_notationz:<msup><mi>x</mi><mfrac><mn>1</mn><mn>3</mn></mfrac></msup>Zcontentz;<apply><root/><degree><cn>3</cn></degree><ci>x</ci></apply>zM<apply><power/><ci>x</ci><apply><divide/><cn>1</cn><cn>3</cn></apply></apply>rI  z<<mfrac><mn>1</mn><mroot><mi>x</mi><mn>3</mn></mroot></mfrac>zS<mfrac><mn>1</mn><msup><mi>x</mi><mfrac><mn>1</mn><mn>3</mn></mfrac></msup></mfrac>)r   r   r"   ZOner   r   r   r   r   test_root_notation_print  s$   r  c                  C   sR   t tdd } t| dddksJ t| ddddksJ t| dd	ddks'J d S )
Nr   r   rV  rW  z:<msup><mi>x</mi><mfrac><mn>5</mn><mn>2</mn></mfrac></msup>T)rX  Zfold_frac_powerszJ<msup><mi>x</mi><mfrac bevelled="true"><mn>5</mn><mn>2</mn></mfrac></msup>F)r   r   r   r  r   r   r   test_fold_frac_powers_print  s   
r  c                  C   sN   t dd} t| dddksJ t| ddddksJ t| dd	ddks%J d S )
Nr   r   rV  rW  z#<mfrac><mn>2</mn><mn>5</mn></mfrac>T)rX  Zfold_short_fracz3<mfrac bevelled="true"><mn>2</mn><mn>5</mn></mfrac>F)r   r   r  r   r   r   test_fold_short_frac_print  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d dks0J t tttdks<J t tdtt dksJJ d S )	Nz!<mrow><mi>x</mi><mo>!</mo></mrow>r   zU<mrow><mfenced><mrow><mi>x</mi><mo>+</mo><mn>1</mn></mrow></mfenced><mo>!</mo></mrow>z"<mrow><mi>x</mi><mo>!!</mo></mrow>zV<mrow><mfenced><mrow><mi>x</mi><mo>+</mo><mn>1</mn></mrow></mfenced><mo>!!</mo></mrow>zH<mfenced><mfrac linethickness="0"><mi>x</mi><mi>y</mi></mfrac></mfenced>r   zi<mfenced><mfrac linethickness="0"><mn>4</mn><mrow><mi>x</mi><mo>+</mo><mi>y</mi></mrow></mfrac></mfenced>)rK  r   r]   r   r^   r_   r   r   r   r   r   test_print_factorials  s   r  c                  C       t t} t| dddksJ d S )NrV  rW  zI<mrow><mfenced close="&#8971;" open="&#8970;"><mi>x</mi></mfenced></mrow>)rk   r   r   r  r   r   r   test_print_floor     
r  c                  C   r  )NrV  rW  zI<mrow><mfenced close="&#8969;" open="&#8968;"><mi>x</mi></mfenced></mrow>)rl   r   r   r  r   r   r   test_print_ceiling  r  r  c                  C   sL   t ttd } t| dddksJ t ttftt } t| dddks$J d S )Nr   rV  rW  zf<mfenced><mrow><mi>x</mi><mo>&#x21A6;</mo><mrow><mi>x</mi><mo>+</mo><mn>1</mn></mrow></mrow></mfenced>z<mfenced><mrow><mrow><mfenced><mi>x</mi><mi>y</mi></mfenced></mrow><mo>&#x21A6;</mo><mrow><mi>x</mi><mo>+</mo><mi>y</mi></mrow></mrow></mfenced>)r,   r   r   r   r  r   r   r   test_print_Lambda  s   

r  c                   C   rs  )Nz.<menclose notation="top"><mi>x</mi></menclose>r   zO<mrow><menclose notation="top"><mi>x</mi></menclose><mo>+</mo><mn>1</mn></mrow>)rK  r   ri   r   r   r   r   r   test_print_conjugate  ru  r  c                  C   s`   t ddd} ttdddksJ ttd| dksJ tt| d | d d	ks.J d S )
Nr   Trm  r   r   zH<mfenced close="&#10217;" open="&#10216;"><mn>0</mn><mn>1</mn></mfenced>zH<mfenced close="&#10217;" open="&#10216;"><mn>0</mn><mi>a</mi></mfenced>r   z<mfenced close="&#10217;" open="&#10216;"><mrow><mi>a</mi><mo>+</mo><mn>1</mn></mrow><mrow><mi>a</mi><mo>+</mo><mn>2</mn></mrow></mfenced>)r   rK  r   r[   ro  r   r   r   test_print_AccumBounds  s   $r  c                   C   sz   t tddksJ t tddksJ t tddks!J t tdt dks.J t td	t d
ks;J d S )Ng}Ô%ITzL<mrow><mn>1.0</mn><mo>&#xB7;</mo><msup><mn>10</mn><mn>100</mn></msup></mrow>g0.++zM<mrow><mn>1.0</mn><mo>&#xB7;</mo><msup><mn>10</mn><mn>-100</mn></msup></mrow>g}Ô%IzM<mrow><mn>-1.0</mn><mo>&#xB7;</mo><msup><mn>10</mn><mn>100</mn></msup></mrow>r   z<mi>&#x221E;</mi>g      z(<mrow><mo>-</mo><mi>&#x221E;</mi></mrow>)rK  r   r   r   r   r   r   r   test_print_Float  s
   r  c                   C   s>  t ttdksJ t tttdksJ t tttdks#J t ttdks.J t tttdks:J t ttdksEJ t t	tdksPJ t t
tdks[J t ttd	ksfJ t ttd
ksqJ t ttdks|J t ttdksJ t ttdksJ t ttdksJ d S )Nz:<mrow><mi>&#x393;</mi><mfenced><mi>x</mi></mfenced></mrow>zD<mrow><mi>&#x3B3;</mi><mfenced><mi>x</mi><mi>y</mi></mfenced></mrow>zD<mrow><mi>&#x393;</mi><mfenced><mi>x</mi><mi>y</mi></mfenced></mrow>z:<mrow><mi>&#x3B6;</mi><mfenced><mi>x</mi></mfenced></mrow>zD<mrow><mi>&#x3B6;</mi><mfenced><mi>x</mi><mi>y</mi></mfenced></mrow>z:<mrow><mi>&#x3B7;</mi><mfenced><mi>x</mi></mfenced></mrow>z:<mrow><mi>&#x39A;</mi><mfenced><mi>x</mi></mfenced></mrow>z:<mrow><mi>&#x3D5;</mi><mfenced><mi>x</mi></mfenced></mrow>z:<mrow><mi>&#x3BB;</mi><mfenced><mi>x</mi></mfenced></mrow>z:<mrow><mi>&#x3BD;</mi><mfenced><mi>x</mi></mfenced></mrow>z:<mrow><mi>&#x3A9;</mi><mfenced><mi>x</mi></mfenced></mrow>z4<mrow><mi>S</mi><mfenced><mi>x</mi></mfenced></mrow>z4<mrow><mi>C</mi><mfenced><mi>x</mi></mfenced></mrow>z]<mrow><mi>&#x398;</mi><mfenced><mi>x</mi><mfrac><mn>1</mn><mn>2</mn></mfrac></mfenced></mrow>)rK  r   rm   r   rn   r   ro   rs   rt   rS   rT   rU   rV   rW   rY   rX   rZ   r   r   r   r   test_print_different_functions  s   r  c                   C   s:   t d dks	J t tdksJ t tdksJ d S )Nz<mi>None</mi>z<mi>True</mi>z<mi>False</mi>)rK  r   r'   r(   r   r   r   r   test_mathml_builtins   r  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s%J t tdd	dd
ks2J t td	dddks?J t tdtddksLJ t ttdddksYJ t tdt ddksgJ d S )Nr   3   zU<mfenced close="}" open="{"><mn>1</mn><mn>2</mn><mi>&#8230;</mi><mn>50</mn></mfenced>r   r  r   r   zD<mfenced close="}" open="{"><mn>0</mn><mn>1</mn><mn>2</mn></mfenced>   zU<mfenced close="}" open="{"><mn>0</mn><mn>1</mn><mi>&#8230;</mi><mn>29</mn></mfenced>rI  zV<mfenced close="}" open="{"><mn>30</mn><mn>29</mn><mi>&#8230;</mi><mn>2</mn></mfenced>r   zJ<mfenced close="}" open="{"><mn>0</mn><mn>2</mn><mi>&#8230;</mi></mfenced>rJ  zJ<mfenced close="}" open="{"><mi>&#8230;</mi><mn>2</mn><mn>0</mn></mfenced>zL<mfenced close="}" open="{"><mn>-2</mn><mn>-3</mn><mi>&#8230;</mi></mfenced>)rK  r   r)   r   r   r   r   r   test_mathml_Range  s0   r  c                   C   s8   t ttdksJ t tdtd dksJ d S )Nz.<msup><mi>&ExponentialE;</mi><mi>x</mi></msup>r   r   z\<mrow><mi>&ExponentialE;</mi><mo>+</mo><msup><mi>&ExponentialE;</mi><mn>2</mn></msup></mrow>)rK  r   rj   r   r   r   r   r   test_print_exp  s   r  c                   C   sp   t tttdksJ t ttdtd dksJ t tttdks'J t ttdtd dks6J d S )Nz@<mrow><mo>min</mo><mfenced><mi>x</mi><mi>y</mi></mfenced></mrow>r   r   za<mrow><mo>min</mo><mfenced><mn>2</mn><mi>x</mi><msup><mi>x</mi><mn>3</mn></msup></mfenced></mrow>z@<mrow><mo>max</mo><mfenced><mi>x</mi><mi>y</mi></mfenced></mrow>za<mrow><mo>max</mo><mfenced><mn>2</mn><mi>x</mi><msup><mi>x</mi><mn>3</mn></msup></mfenced></mrow>)rK  r   r*   r   r   r+   r   r   r   r   test_print_MinMax!  s   r  c                  C   s6  t d} 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s4J tt| dddks@J tt| dddksLJ tt| ddd	ksXJ tt| t	ddd
kseJ tt| t	ddd
ksrJ tt| t	dddksJ tt| t	dddksJ tt| t	dddksJ d S )NnrV  rW  z!<msub><mi>C</mi><mi>n</mi></msub>z!<msub><mi>B</mi><mi>n</mi></msub>z!<msub><mi>E</mi><mi>n</mi></msub>z!<msub><mi>F</mi><mi>n</mi></msub>z!<msub><mi>L</mi><mi>n</mi></msub>z!<msub><mi>T</mi><mi>n</mi></msub>zK<mrow><msub><mi>B</mi><mi>n</mi></msub><mfenced><mi>x</mi></mfenced></mrow>zK<mrow><msub><mi>E</mi><mi>n</mi></msub><mfenced><mi>x</mi></mfenced></mrow>zK<mrow><msub><mi>F</mi><mi>n</mi></msub><mfenced><mi>x</mi></mfenced></mrow>zK<mrow><msub><mi>T</mi><mi>n</mi></msub><mfenced><mi>x</mi></mfenced></mrow>)
r   r   re   r`   ra   r>   rc   rb   rd   r   )r  r   r   r    test_mathml_presentation_numbers.  sJ   r  c                   C   st   t ttttdddksJ t ttttdddksJ t ttttdddks*J t ttttdddks8J d S )NrV  rW  zH<mrow><mi>C</mi><mfenced><mi>x</mi><mi>y</mi><mi>z</mi></mfenced></mrow>zH<mrow><mi>S</mi><mfenced><mi>x</mi><mi>y</mi><mi>z</mi></mfenced></mrow>zP<mrow><mi>C&#x2032;</mi><mfenced><mi>x</mi><mi>y</mi><mi>z</mi></mfenced></mrow>zP<mrow><mi>S&#x2032;</mi><mfenced><mi>x</mi><mi>y</mi><mi>z</mi></mfenced></mrow>)r   r@   r   r   rY  rA   rB   rC   r   r   r   r    test_mathml_presentation_mathieuJ  s   r  c                   C   6   t ttdddksJ t tttdddksJ d S )NrV  rW  z(<msub><mi>&#x03B3;</mi><mi>n</mi></msub>zR<mrow><msub><mi>&#x03B3;</mi><mi>n</mi></msub><mfenced><mi>x</mi></mfenced></mrow>)r   r?   r  r   r   r   r   r   "test_mathml_presentation_stieltjesU     r  c                  C   s^   t ddd} t| dksJ t| dksJ t| dddd	ks#J t| dd
dks-J d S )Nr   r   r   z
<mi>A</mi>z
<ci>A</ci>rV  Zbold)rX  mat_symbol_stylez<mi mathvariant="bold">A</mi>)r  )r#   rK  r   r   r   )r   r   r   r   test_print_matrix_symbol\  s   r  c                  C   s   ddl m}  ddl m} tddd}tddd}t| ||| ddd	ks'J t| ||| ddd
ks6J t| |||dddksDJ t|| ||dddksSJ d S )Nr   )HadamardProduct)	TransposeXr   YrV  rW  zI<mrow><mi>X</mi><mo>&#x2218;</mo><msup><mi>Y</mi><mn>2</mn></msup></mrow>zu<mrow><mfenced><mrow><mi>X</mi><mo>&#x2218;</mo><mi>Y</mi></mrow></mfenced><mo>&InvisibleTimes;</mo><mi>Y</mi></mrow>zM<mrow><mi>X</mi><mo>&#x2218;</mo><mi>Y</mi><mo>&#x2218;</mo><mi>Y</mi></mrow>z\<msup><mfenced><mrow><mi>X</mi><mo>&#x2218;</mo><mi>Y</mi></mrow></mfenced><mo>T</mo></msup>)Zsympy.matrices.expressionsr  r  r#   r   )r  r  r  r  r   r   r   test_print_hadamardf  s$   r  c                  C   s4   t td} t| dksJ t| dksJ d S )NRz
<mi>R</mi>z
<ci>R</ci>)r   r   rK  r   r   )r  r   r   r   test_print_random_symbol  s   r  c                   C   sr   t ttt dddksJ t tttttf dddksJ t ttt ttt  tt dddks7J d S )NrV  rW  z!<msub><mi>a</mi><mi>b</mi></msub>zH<msub><mi>a</mi><mfenced><mi>b</mi><mi>c</mi><mi>d</mi></mfenced></msub>z<mrow><msub><mi>a</mi><mi>b</mi></msub><mo>&InvisibleTimes;</mo><msub><mi>c</mi><mi>d</mi></msub><mo>&InvisibleTimes;</mo><mi>e</mi></mrow>)r   r-   r   r>  r?  r@  er   r   r   r   test_print_IndexedBase  s    r  c                   C   sT   t ttdddksJ t ttt dddksJ t tttfdddks(J d S )NrV  rW  z
<mi>a</mi>z0<mrow><mfrac><mi>a</mi><mi>b</mi></mfrac></mrow>z4<mrow><mfenced><mi>a</mi><mi>b</mi></mfenced></mrow>)r   r-   r   r>  r   r   r   r   test_print_Indexed  s   r  c                  C   sp   t d\} }td| |}t|d dddksJ t|| |f dddks&J t|| | df ddd	ks6J d S )
Nzi jr   )r   r   rV  rW  zO<msub><mi>A</mi><mfenced close="" open=""><mn>0</mn><mn>0</mn></mfenced></msub>zO<msub><mi>A</mi><mfenced close="" open=""><mi>i</mi><mi>j</mi></mfenced></msub>r   z<msub><mi>A</mi><mfenced close="" open=""><mrow><mi>i</mi><mo>&InvisibleTimes;</mo><mi>j</mi></mrow><mn>0</mn></mfenced></msub>)r.   r#   r   )ijr   r   r   r   test_print_MatrixElement  s   r  c                  C   s  t d} tt| j| j| j d | j dddksJ tt| j| jdddks*J ttt| j| j dddks;J ttt| j | jdddksLJ ttd| j | j ddd	ks^J ttdt | j | j ddd
ksrJ tttd| j | j  dddksJ ttdt | j | j | j dddksJ ttd| j | j dddksJ tttd| j | j  dddksJ ttdt | j | j | j dddksJ tt	| j| j| j d | j dddksJ tt	| j| jdddksJ tt	t| j | jdddksJ ttt	| j| j dddks%J tt
| jdddks3J tt
| jd| j  dddksFJ ttt
| j dddksVJ tt
t| j dddksfJ tt| j| jt| j| j dddks}J tt| j| jdddksJ tt| jdddksJ tt| jd| j  dddksJ ttt| j dddksJ ttt| j dddksJ d S )Nr   r   rV  rW  a	  <mrow><msub><mover><mi mathvariant="bold">i</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub><mo>&#xD7;</mo><mfenced><mrow><mfenced><mrow><mn>3</mn><mo>&InvisibleTimes;</mo><msub><mi mathvariant="bold">x</mi><mi mathvariant="bold">A</mi></msub></mrow></mfenced><mo>&InvisibleTimes;</mo><msub><mover><mi mathvariant="bold">j</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub><mo>+</mo><msub><mover><mi mathvariant="bold">k</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub></mrow></mfenced></mrow>z<mrow><msub><mover><mi mathvariant="bold">i</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub><mo>&#xD7;</mo><msub><mover><mi mathvariant="bold">j</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub></mrow>a  <mrow><mi>x</mi><mo>&InvisibleTimes;</mo><mfenced><mrow><msub><mover><mi mathvariant="bold">i</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub><mo>&#xD7;</mo><msub><mover><mi mathvariant="bold">j</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub></mrow></mfenced></mrow>aI  <mrow><mo>-</mo><mrow><msub><mover><mi mathvariant="bold">j</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub><mo>&#xD7;</mo><mfenced><mrow><mfenced><mi>x</mi></mfenced><mo>&InvisibleTimes;</mo><msub><mover><mi mathvariant="bold">i</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub></mrow></mfenced></mrow></mrow>aP  <mrow><mo>&#x2207;</mo><mo>&#xD7;</mo><mfenced><mrow><mfenced><mrow><mn>3</mn><mo>&InvisibleTimes;</mo><msub><mi mathvariant="bold">x</mi><mi mathvariant="bold">A</mi></msub></mrow></mfenced><mo>&InvisibleTimes;</mo><msub><mover><mi mathvariant="bold">j</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub></mrow></mfenced></mrow>as  <mrow><mo>&#x2207;</mo><mo>&#xD7;</mo><mfenced><mrow><mfenced><mrow><mn>3</mn><mo>&InvisibleTimes;</mo><msub><mi mathvariant="bold">x</mi><mi mathvariant="bold">A</mi></msub><mo>&InvisibleTimes;</mo><mi>x</mi></mrow></mfenced><mo>&InvisibleTimes;</mo><msub><mover><mi mathvariant="bold">j</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub></mrow></mfenced></mrow>a  <mrow><mi>x</mi><mo>&InvisibleTimes;</mo><mfenced><mrow><mo>&#x2207;</mo><mo>&#xD7;</mo><mfenced><mrow><mfenced><mrow><mn>3</mn><mo>&InvisibleTimes;</mo><msub><mi mathvariant="bold">x</mi><mi mathvariant="bold">A</mi></msub></mrow></mfenced><mo>&InvisibleTimes;</mo><msub><mover><mi mathvariant="bold">j</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub></mrow></mfenced></mrow></mfenced></mrow>a  <mrow><mo>&#x2207;</mo><mo>&#xD7;</mo><mfenced><mrow><msub><mover><mi mathvariant="bold">i</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub><mo>+</mo><mfenced><mrow><mn>3</mn><mo>&InvisibleTimes;</mo><msub><mi mathvariant="bold">x</mi><mi mathvariant="bold">A</mi></msub><mo>&InvisibleTimes;</mo><mi>x</mi></mrow></mfenced><mo>&InvisibleTimes;</mo><msub><mover><mi mathvariant="bold">j</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub></mrow></mfenced></mrow>aP  <mrow><mo>&#x2207;</mo><mo>&#xB7;</mo><mfenced><mrow><mfenced><mrow><mn>3</mn><mo>&InvisibleTimes;</mo><msub><mi mathvariant="bold">x</mi><mi mathvariant="bold">A</mi></msub></mrow></mfenced><mo>&InvisibleTimes;</mo><msub><mover><mi mathvariant="bold">j</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub></mrow></mfenced></mrow>a  <mrow><mi>x</mi><mo>&InvisibleTimes;</mo><mfenced><mrow><mo>&#x2207;</mo><mo>&#xB7;</mo><mfenced><mrow><mfenced><mrow><mn>3</mn><mo>&InvisibleTimes;</mo><msub><mi mathvariant="bold">x</mi><mi mathvariant="bold">A</mi></msub></mrow></mfenced><mo>&InvisibleTimes;</mo><msub><mover><mi mathvariant="bold">j</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub></mrow></mfenced></mrow></mfenced></mrow>a  <mrow><mo>&#x2207;</mo><mo>&#xB7;</mo><mfenced><mrow><msub><mover><mi mathvariant="bold">i</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub><mo>+</mo><mfenced><mrow><mn>3</mn><mo>&InvisibleTimes;</mo><msub><mi mathvariant="bold">x</mi><mi mathvariant="bold">A</mi></msub><mo>&InvisibleTimes;</mo><mi>x</mi></mrow></mfenced><mo>&InvisibleTimes;</mo><msub><mover><mi mathvariant="bold">j</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub></mrow></mfenced></mrow>a	  <mrow><msub><mover><mi mathvariant="bold">i</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub><mo>&#xB7;</mo><mfenced><mrow><mfenced><mrow><mn>3</mn><mo>&InvisibleTimes;</mo><msub><mi mathvariant="bold">x</mi><mi mathvariant="bold">A</mi></msub></mrow></mfenced><mo>&InvisibleTimes;</mo><msub><mover><mi mathvariant="bold">j</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub><mo>+</mo><msub><mover><mi mathvariant="bold">k</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub></mrow></mfenced></mrow>z<mrow><msub><mover><mi mathvariant="bold">i</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub><mo>&#xB7;</mo><msub><mover><mi mathvariant="bold">j</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub></mrow>a2  <mrow><msub><mover><mi mathvariant="bold">j</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub><mo>&#xB7;</mo><mfenced><mrow><mfenced><mi>x</mi></mfenced><mo>&InvisibleTimes;</mo><msub><mover><mi mathvariant="bold">i</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub></mrow></mfenced></mrow>a  <mrow><mi>x</mi><mo>&InvisibleTimes;</mo><mfenced><mrow><msub><mover><mi mathvariant="bold">i</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub><mo>&#xB7;</mo><msub><mover><mi mathvariant="bold">j</mi><mo>^</mo></mover><mi mathvariant="bold">A</mi></msub></mrow></mfenced></mrow>ze<mrow><mo>&#x2207;</mo><msub><mi mathvariant="bold">x</mi><mi mathvariant="bold">A</mi></msub></mrow>a  <mrow><mo>&#x2207;</mo><mfenced><mrow><msub><mi mathvariant="bold">x</mi><mi mathvariant="bold">A</mi></msub><mo>+</mo><mrow><mn>3</mn><mo>&InvisibleTimes;</mo><msub><mi mathvariant="bold">y</mi><mi mathvariant="bold">A</mi></msub></mrow></mrow></mfenced></mrow>z<mrow><mi>x</mi><mo>&InvisibleTimes;</mo><mfenced><mrow><mo>&#x2207;</mo><msub><mi mathvariant="bold">x</mi><mi mathvariant="bold">A</mi></msub></mrow></mfenced></mrow>z<mrow><mo>&#x2207;</mo><mfenced><mrow><msub><mi mathvariant="bold">x</mi><mi mathvariant="bold">A</mi></msub><mo>&InvisibleTimes;</mo><mi>x</mi></mrow></mfenced></mrow>z6<mover><mi mathvariant="bold">0</mi><mo>^</mo></mover>z<mrow><mo>-</mo><mrow><msub><mi mathvariant="bold">x</mi><mi mathvariant="bold">A</mi></msub><mo>&#xD7;</mo><msub><mi mathvariant="bold">z</mi><mi mathvariant="bold">A</mi></msub></mrow></mrow>ze<mrow><mo>&#x2206;</mo><msub><mi mathvariant="bold">x</mi><mi mathvariant="bold">A</mi></msub></mrow>a  <mrow><mo>&#x2206;</mo><mfenced><mrow><msub><mi mathvariant="bold">x</mi><mi mathvariant="bold">A</mi></msub><mo>+</mo><mrow><mn>3</mn><mo>&InvisibleTimes;</mo><msub><mi mathvariant="bold">y</mi><mi mathvariant="bold">A</mi></msub></mrow></mrow></mfenced></mrow>z<mrow><mi>x</mi><mo>&InvisibleTimes;</mo><mfenced><mrow><mo>&#x2206;</mo><msub><mi mathvariant="bold">x</mi><mi mathvariant="bold">A</mi></msub></mrow></mfenced></mrow>z<mrow><mo>&#x2206;</mo><mfenced><mrow><msub><mi mathvariant="bold">x</mi><mi mathvariant="bold">A</mi></msub><mo>&InvisibleTimes;</mo><mi>x</mi></mrow></mfenced></mrow>)r   r   r   r  r  r   kr   r   r   r   r   rY  r   )ZACSr   r   r   test_print_Vector  s   $
$	$$	







"




r  c                   C   s<   t tttdddksJ t ttt tdddksJ d S )NrV  rW  zU<mrow><mi>&#x1d5a5;</mi><mfenced separators="|"><mi>x</mi><mi>y</mi></mfenced></mrow>z{<mrow><mi>&#x1d5a5;</mi><mfenced separators="|"><mrow><mfrac><mi>x</mi><mi>y</mi></mfrac></mrow><mi>y</mi></mfenced></mrow>)r   r0   r   r   r   r   r   r   test_print_elliptic_fF  s   r  c                   C   r  )NrV  rW  zK<mrow><mi>&#x1d5a4;</mi><mfenced separators="|"><mi>x</mi></mfenced></mrow>zU<mrow><mi>&#x1d5a4;</mi><mfenced separators="|"><mi>x</mi><mi>y</mi></mfenced></mrow>)r   r1   r   r   r   r   r   r   test_print_elliptic_eL  r  r  c                   C   s:   t tttdddksJ t ttttdddksJ d S )NrV  rW  zU<mrow><mi>&#x1d6f1;</mi><mfenced separators="|"><mi>x</mi><mi>y</mi></mfenced></mrow>z`<mrow><mi>&#x1d6f1;</mi><mfenced separators=";|"><mi>x</mi><mi>y</mi><mi>z</mi></mfenced></mrow>)r   r2   r   r   rY  r   r   r   r   test_print_elliptic_piR  s   r  c                   C   s8   t ttdddksJ t ttt dddksJ d S )NrV  rW  z5<mrow><mi>Ei</mi><mfenced><mi>x</mi></mfenced></mrow>zL<mrow><mi>Ei</mi><mfenced><msup><mi>x</mi><mi>y</mi></msup></mfenced></mrow>)r   r3   r   r   r   r   r   r   test_print_EiX  s   r  c                   C   sH   t tttdddksJ t tttd ttd dddks"J d S )NrV  rW  zK<mrow><msub><mo>E</mo><mi>x</mi></msub><mfenced><mi>y</mi></mfenced></mrow>r   r   zy<mrow><msub><mo>E</mo><msub><mi>x</mi><mn>1</mn></msub></msub><mfenced><msub><mi>x</mi><mn>2</mn></msub></mfenced></mrow>)r   r4   r   r   r-   r   r   r   r   test_print_expint^  s    r  c                   C   s"   t tttttdddksJ d S )NrV  rW  zx<mrow><msubsup><mo>P</mo><mi>n</mi><mfenced><mi>a</mi><mi>b</mi></mfenced></msubsup><mfenced><mi>x</mi></mfenced></mrow>)r   r5   r  r   r>  r   r   r   r   r   test_print_jacobid  s   r  c                   C       t ttttdddksJ d S )NrV  rW  zn<mrow><msubsup><mo>C</mo><mi>n</mi><mfenced><mi>a</mi></mfenced></msubsup><mfenced><mi>x</mi></mfenced></mrow>)r   r6   r  r   r   r   r   r   r   test_print_gegenbauerh     r  c                   C      t tttdddksJ d S )NrV  rW  zK<mrow><msub><mo>T</mo><mi>n</mi></msub><mfenced><mi>x</mi></mfenced></mrow>)r   r7   r  r   r   r   r   r   test_print_chebyshevtl  r  r  c                   C   r  )NrV  rW  zK<mrow><msub><mo>U</mo><mi>n</mi></msub><mfenced><mi>x</mi></mfenced></mrow>)r   r8   r  r   r   r   r   r   test_print_chebyshevup  r  r  c                   C   r  )NrV  rW  zK<mrow><msub><mo>P</mo><mi>n</mi></msub><mfenced><mi>x</mi></mfenced></mrow>)r   r9   r  r   r   r   r   r   test_print_legendret  r  r  c                   C   r  )NrV  rW  zn<mrow><msubsup><mo>P</mo><mi>n</mi><mfenced><mi>a</mi></mfenced></msubsup><mfenced><mi>x</mi></mfenced></mrow>)r   r:   r  r   r   r   r   r   r   test_print_assoc_legendrex  r  r  c                   C   r  )NrV  rW  zK<mrow><msub><mo>L</mo><mi>n</mi></msub><mfenced><mi>x</mi></mfenced></mrow>)r   r;   r  r   r   r   r   r   test_print_laguerre|  r  r  c                   C   r  )NrV  rW  zn<mrow><msubsup><mo>L</mo><mi>n</mi><mfenced><mi>a</mi></mfenced></msubsup><mfenced><mi>x</mi></mfenced></mrow>)r   r<   r  r   r   r   r   r   r   test_print_assoc_laguerre  r  r  c                   C   r  )NrV  rW  zK<mrow><msub><mo>H</mo><mi>n</mi></msub><mfenced><mi>x</mi></mfenced></mrow>)r   r=   r  r   r   r   r   r   test_print_hermite  r  r  c                   C   s   t ttdddddksJ t ttdddddksJ t ttddddd	ks*J t ttttddd
ks8J t ttdddddksFJ t ttdddddksTJ d S )Nr   r   rV  rW  zv<msup><mfenced close="&#10217;" open="&#10216;"><mrow><mi>x</mi><mo>-</mo><mn>4</mn></mrow></mfenced><mn>5</mn></msup>zv<msup><mfenced close="&#10217;" open="&#10216;"><mrow><mi>x</mi><mo>+</mo><mn>3</mn></mrow></mfenced><mn>4</mn></msup>r   zU<msup><mfenced close="&#10217;" open="&#10216;"><mi>x</mi></mfenced><mn>4</mn></msup>z<msup><mfenced close="&#10217;" open="&#10216;"><mrow><mrow><mo>-</mo><mi>a</mi></mrow><mo>+</mo><mi>x</mi></mrow></mfenced><mi>n</mi></msup>rJ  zw<msup><mfenced close="&#10217;" open="&#10216;"><mrow><mi>x</mi><mo>-</mo><mn>4</mn></mrow></mfenced><mn>-2</mn></msup>rI  zw<msup><mfenced close="&#10217;" open="&#10216;"><mrow><mi>x</mi><mo>-</mo><mn>4</mn></mrow></mfenced><mn>-1</mn></msup>)r   rp   r   r   r  r   r   r   r   test_mathml_SingularityFunction  s$   r  c                  C   s  ddl m} m}m}m} | ddd}| ddd}t||dddks$J t||| ddd	ks2J t|||| ddd
ksBJ t||| dddksPJ t|||| dddks`J t||d dddksnJ t||d dddks|J t|||dddksJ t|||dddksJ t|||dddksJ t|||dddksJ t|||| dddksJ t||dddksJ t||| dddksJ d S )Nr   )r#   AdjointInverser  r  r   r  rV  rW  z(<msup><mi>X</mi><mo>&#x2020;</mo></msup>z\<msup><mfenced><mrow><mi>X</mi><mo>+</mo><mi>Y</mi></mrow></mfenced><mo>&#x2020;</mo></msup>zg<mrow><msup><mi>X</mi><mo>&#x2020;</mo></msup><mo>+</mo><msup><mi>Y</mi><mo>&#x2020;</mo></msup></mrow>zk<msup><mfenced><mrow><mi>X</mi><mo>&InvisibleTimes;</mo><mi>Y</mi></mrow></mfenced><mo>&#x2020;</mo></msup>zv<mrow><msup><mi>Y</mi><mo>&#x2020;</mo></msup><mo>&InvisibleTimes;</mo><msup><mi>X</mi><mo>&#x2020;</mo></msup></mrow>zR<msup><mfenced><msup><mi>X</mi><mn>2</mn></msup></mfenced><mo>&#x2020;</mo></msup>zR<msup><mfenced><msup><mi>X</mi><mo>&#x2020;</mo></msup></mfenced><mn>2</mn></msup>zS<msup><mfenced><msup><mi>X</mi><mn>-1</mn></msup></mfenced><mo>&#x2020;</mo></msup>zS<msup><mfenced><msup><mi>X</mi><mo>&#x2020;</mo></msup></mfenced><mn>-1</mn></msup>zR<msup><mfenced><msup><mi>X</mi><mo>T</mo></msup></mfenced><mo>&#x2020;</mo></msup>zR<msup><mfenced><msup><mi>X</mi><mo>&#x2020;</mo></msup></mfenced><mo>T</mo></msup>zs<msup><mfenced><mrow><msup><mi>X</mi><mo>&#x2020;</mo></msup><mo>+</mo><mi>Y</mi></mrow></mfenced><mo>T</mo></msup>z!<msup><mi>X</mi><mo>T</mo></msup>zU<msup><mfenced><mrow><mi>X</mi><mo>+</mo><mi>Y</mi></mrow></mfenced><mo>T</mo></msup>)sympy.matricesr#   r  r  r  r   )r#   r  r  r  r  r  r   r   r   test_mathml_matrix_functions  sZ   r  c                  C   sd   ddl m} m}m} t| ddddksJ t|dddddks#J t|ddddd	ks0J d S )
Nr   Identity
ZeroMatrix	OneMatrixr   rV  rW  z<mi>&#x1D540;</mi>r   z<mn>&#x1D7D8</mn>z<mn>&#x1D7D9</mn>)r  r  r  r  r   r  r   r   r   test_mathml_special_matrices  s   r  c                      sH   ddl m  t ttdkftd dfdksJ tt fdd d S )	Nr   	Piecewiser   r   Tz<piecewise><piece><ci>x</ci><apply><leq/><ci>x</ci><cn>1</cn></apply></piece><otherwise><apply><power/><ci>x</ci><cn>2</cn></apply></otherwise></piecewise>c                      s   t  ttdkfS r   r6  r   r  r   r   r7    s    z'test_mathml_piecewise.<locals>.<lambda>)r  r  r   r   r   
ValueErrorr   r   r  r   test_mathml_piecewise  s
   r  c                   C   s>   t tt tdddksJ t ttt ddddksJ d S )NrV  rW  ze<mfenced close="}" open="{"><mi>&#8230;</mi><mn>-1</mn><mn>0</mn><mn>1</mn><mi>&#8230;</mi></mfenced>rI  ze<mfenced close="}" open="{"><mi>&#8230;</mi><mn>1</mn><mn>0</mn><mn>-1</mn><mi>&#8230;</mi></mfenced>)r   r)   r   r   r   r   r   test_issue_17857  s   r  c                  C   s,   t d} tt| d}| |ksJ d S )Ng@;?z</cn>)r   floatr   r   strip)r   r   r   r   r   test_float_roundtrip  s   r  N(  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   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   Zsympy.calculus.utilr[   Zsympy.core.containersr\   Z(sympy.functions.combinatorial.factorialsr]   r^   r_   Z%sympy.functions.combinatorial.numbersr`   ra   rb   rc   rd   re   Z$sympy.functions.elementary.complexesrf   rg   rh   ri   Z&sympy.functions.elementary.exponentialrj   Z#sympy.functions.elementary.integersrk   rl   Z'sympy.functions.special.gamma_functionsrm   rn   ro   Z-sympy.functions.special.singularity_functionsrp   Z&sympy.functions.special.zeta_functionsrq   rr   rs   rt   Zsympy.logic.boolalgru   rv   rw   rx   ry   rz   Z&sympy.matrices.expressions.determinantr{   Zsympy.physics.quantumr|   r}   r~   r   r   Zsympy.printing.mathmlr   r   r   r   Zsympy.sets.setsr   r   r   r   r   r   r   r   Zsympy.stats.rvr   Zsympy.testing.pytestr   Zsympy.vectorr   r   r   r   r   r   r   r   r   r   rY  r   r>  r?  r@  r  r  r   rK  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r*  r2  r;  r=  rG  rL  rR  rT  rZ  r[  r]  r^  r_  rb  rc  rd  re  rh  ri  rj  rl  rp  rq  rr  rt  rv  rw  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  r  r  r  r  r  r  r  r  r  r   r   r   r   <module>   s   N (
  ($%

%
	J"k9d
#	)
&&Z9
	="









'



 
















&

	