generateMML( $input );
$this->assertStringContainsString( "munderover", $mathMLtexVC );
}
public function testBigcap() {
$input = "\bigcap_{i=_1}^n E_i";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "munderover", $mathMLtexVC );
}
public function testScriptAlignment() {
$input = "\log_{10} f";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringNotContainsString( "", $mathMLtexVC );
$this->assertStringContainsString( "", $mathMLtexVC );
}
public function testNotOperatorname() {
$input = "\\not\operatorname{R}";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "", $mathMLtexVC );
$this->assertStringContainsString( "⧸", $mathMLtexVC );
}
public function testUnder() {
$input = "\\underbrace{ a+b+\\cdots+z }_{26}";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "", $mathMLtexVC );
$this->assertStringNotContainsString( "", $mathMLtexVC );
}
public function testSumDisplaystyle() {
$input = "\sum_{k=1}^N k^2";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "", $mathMLtexVC );
}
public function testSumTextstyle() {
$input = "\\textstyle \sum_{k=1}^N k^2";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "", $mathMLtexVC );
}
public function testPilcrow() {
$input = "\P";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "¶\n", $mathMLtexVC );
}
public function testLesserThan() {
$input = "<, \\nless,";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "<", $mathMLtexVC );
}
public function testSidesetError() {
$input = "\\sideset{_1^2}{_3^4}";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "merror", $mathMLtexVC );
}
public function testSidesetSum() {
$input = "\\sideset{_1^2}{_3^4}\\sum";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringNotContainsString( "merror", $mathMLtexVC );
$this->assertStringContainsString( "mmultiscripts", $mathMLtexVC );
$this->assertStringContainsString( "", $mathMLtexVC );
$this->assertStringContainsString( ">∑", $mathMLtexVC );
}
public function testSidesetProd() {
$input = "\\sideset{_1^2}{_3^4}\\prod";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringNotContainsString( "merror", $mathMLtexVC );
$this->assertStringContainsString( "mmultiscripts", $mathMLtexVC );
$this->assertStringContainsString( "", $mathMLtexVC );
$this->assertStringContainsString( ">∏", $mathMLtexVC );
}
public function testSidesetFQ() {
$input = "\\sideset{_1^2}{_3^4}\prod_a^b";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringNotContainsString( "merror", $mathMLtexVC );
$this->assertStringContainsString( "mmultiscripts", $mathMLtexVC );
$this->assertStringContainsString( "", $mathMLtexVC );
$this->assertStringContainsString( ">∏", $mathMLtexVC );
$this->assertStringContainsString( "a", $mathMLtexVC );
$this->assertStringContainsString( "b", $mathMLtexVC );
$this->assertStringContainsString( "movablelimits", $mathMLtexVC );
}
public function testLimitsProd() {
$input = "\\prod\\limits_{j=1}^k A_{\\alpha_j}";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "munderover", $mathMLtexVC );
$this->assertStringContainsString( "∏", $mathMLtexVC, );
$this->assertStringContainsString( "msub", $mathMLtexVC, );
}
public function testLimitsSum() {
$input = "\\sum\\limits_{j=1}^k A_{\\alpha_j}";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "munderover", $mathMLtexVC );
$this->assertStringContainsString( "∑", $mathMLtexVC, );
$this->assertStringContainsString( "msub", $mathMLtexVC, );
}
public function testLimitsLim() {
$input = "\\lim_{x \\to 2}";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "lim", $mathMLtexVC );
$this->assertStringContainsString( "munder", $mathMLtexVC, );
}
public function testRenderSpaceSemicolon() {
$input = "{\\;}";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "mstyle", $mathMLtexVC );
$this->assertStringContainsString( "mspace", $mathMLtexVC, );
}
public function testSpacesAndCommas() {
$input = "{a}{b , c}\\,";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( ",", $mathMLtexVC );
$this->assertStringContainsString( "mspace", $mathMLtexVC, );
}
public function testPrecedingSubscriptsFQ() {
$input = "{}_1^2\\!\\Omega_3^4";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "", $mathMLtexVC );
$this->assertStringContainsString( "msubsup", $mathMLtexVC, );
}
public function testPrecedingSubscriptsDQ() {
$input = "{}_pF_q";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "", $mathMLtexVC );
$this->assertStringContainsString( "msub", $mathMLtexVC, );
}
public function testPilcrowAndSectionSign() {
$input = "\\P P \\S S";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "P", $mathMLtexVC );
$this->assertStringContainsString( "S", $mathMLtexVC, );
$this->assertStringContainsString( "¶", $mathMLtexVC, );
$this->assertStringContainsString( "§", $mathMLtexVC, );
}
public function testDerivatives1() {
$input = "b_{f''}";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "″", $mathMLtexVC );
$this->assertStringContainsString( "msup", $mathMLtexVC, );
}
public function testDerivatives2() {
$input = "f''''(x)";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "⁗", $mathMLtexVC );
$this->assertStringContainsString( "msup", $mathMLtexVC, );
}
public function testLimitsTextstyle() {
$input = "\\textstyle \\lim_{n \\to \\infty}x_n";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "lim", $mathMLtexVC );
$this->assertStringContainsString( "munder", $mathMLtexVC, );
$this->assertStringContainsString( "movablelimits=\"true\"", $mathMLtexVC );
}
public function testColorGeneration1() {
$input = "\\color{Dandelion}{Dandelion}";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "#FDBC42", $mathMLtexVC );
}
public function testColorGeneration2() {
$input = "\\color{ForestGreen}{ForestGreen}";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "#009B55", $mathMLtexVC );
}
public function testColorGeneration3() {
$input = "\\color{Rhodamine}{Rhodamine}";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "#EF559F", $mathMLtexVC );
}
public function testStyle1() {
$input = "\\displaystyle \{U(\omega )\cdot \sigma _{H}(\omega )\} z";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "", $mathMLtexVC );
$this->assertStringContainsString( "z", $mathMLtexVC );
$this->assertStringContainsString( "", $mathMLtexVC, );
}
public function testStyle2() {
$input = "\\displaystyle abc \\textstyle def";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "", $mathMLtexVC );
$this->assertStringContainsString( "", $mathMLtexVC, );
}
public function testStyle3() {
$input = "\\scriptstyle{abc} def \\textstyle ghi";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "", $mathMLtexVC );
$this->assertStringContainsString( "", $mathMLtexVC, );
}
public function testStyle4() {
$input = "\\textstyle b > \\textstyle \\delta";
$mathMLtexVC = $this->generateMML( $input );
$count = 0;
str_replace( "assertEquals( 2, $count );
}
public function testCrLaTex() {
$input = "\,e_{x}=\sum _{t=1}^{\infty }\ _{t}p_{x}";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "", $mathMLtexVC );
}
public function testGenfracDQ() {
$input = "\\binom{m}{k - j}_{\!\!q}";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "q", $mathMLtexVC );
$this->assertStringContainsString( "msub", $mathMLtexVC );
}
public function testDQZeroArgs() {
$input = "nF^{_{}}/RT";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "msup", $mathMLtexVC );
}
public function testMatrixDQ() {
$input = "\\begin{pmatrix} S \\\\Se\\\\Te\\end{pmatrix}_2";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "mtable", $mathMLtexVC );
$this->assertStringContainsString( "msub", $mathMLtexVC );
$this->assertStringContainsString( "2", $mathMLtexVC );
}
public function testAttributeDuplicate() {
// This checks that there is some non-erronous output caused by double class attributes
$input = "\\mu_{\\operatorname{\\inf}}";
$mathMLtexVC = $this->generateMML( $input );
$this->assertStringContainsString( "μ", $mathMLtexVC );
}
private function generateMML( $input, $chem = false ) {
$texVC = new TexVC();
$resultT = $texVC->check( $input, [
'debug' => false,
'usemathrm' => false,
'oldtexvc' => false,
'usemhchem' => $chem
] );
return MMLTestUtil::getMMLwrapped( $resultT["input"] ) ?? "";
}
}