public void ConvertFracXYPlus2ReturnsFracXYPlus2InMML() { String latexExpression = @"$\frac{x}{y}+2$"; String latexToConvert = begin + latexExpression + end; latex2MathMLConverter = new LatexMathToMathMLConverter(); latex2MathMLConverter.BeforeXmlFormat += ConvertFracXYPlus2ReturnsFracXYPlus2InMMLEventListener; latex2MathMLConverter.Convert(latexToConvert); String expected = @"<math xmlns=""http://www.w3.org/1998/Math/MathML"" alttext=""\frac{x}{y}+2"" display=""inline"" class=""normalsize""> <mstyle displaystyle=""true"" /><mrow> <mfrac> <mrow> <mi>x</mi> </mrow> <mrow> <mi>y</mi> </mrow> </mfrac> <mo>+</mo> <mn>2</mn> </mrow> </math>"; Thread.Sleep(400); NUnit.Framework.Assert.That(result, Is.EqualTo(expected)); }
public void ConvertOperatorsWhitespacesReturnsMMLWithCorrectSpacing() { String latexExpression = @"$A,\qquad B, \quad C, \; D, \: E, \, F, \! G $"; String latexToConvert = begin + latexExpression + end; latex2MathMLConverter = new LatexMathToMathMLConverter(); latex2MathMLConverter.BeforeXmlFormat += ConvertOperatorsWhitespacesReturnsMMLWithCorrectSpacingListener; latex2MathMLConverter.Convert(latexToConvert); String expected = @"<math xmlns=""http://www.w3.org/1998/Math/MathML"" alttext=""A,\qquad B, \quad C, \; D, \: E, \, F, \! G "" display=""inline"" class=""normalsize""> <mstyle displaystyle=""true"" /><mrow> <mi>A</mi> <mo>,</mo> <mspace width=""4em""/><mi>B</mi> <mo>,</mo> <mspace width=""2em""/><mi>C</mi> <mo>,</mo> <mspace width=""1.1em""/><mi>D</mi> <mo>,</mo> <mspace width=""0.9em""/><mi>E</mi> <mo>,</mo> <mspace width=""0.7em""/><mi>F</mi> <mo>,</mo> <mspace width=""0.3em""/><mi>G</mi> </mrow> </math>"; Thread.Sleep(400); NUnit.Framework.Assert.That(result, Is.EqualTo(expected)); }
public void ConvertXSquaredReturnXSquaredInMML() { String latexExpression = "$x^2$"; String latexToConvert = begin + latexExpression + end; latex2MathMLConverter = new LatexMathToMathMLConverter(); latex2MathMLConverter.BeforeXmlFormat += ConvertXSquaredReturnXSquaredInMMLEventListener; latex2MathMLConverter.Convert(latexToConvert); String expected = @"<math xmlns=""http://www.w3.org/1998/Math/MathML"" alttext=""x^2"" display=""inline"" class=""normalsize""> <mstyle displaystyle=""true"" /><mrow> <msup> <mrow> <mi>x</mi> </mrow> <mrow> <mn>2</mn> </mrow> </msup> </mrow> </math>"; Thread.Sleep(400); Console.WriteLine(result); Console.WriteLine(expected); NUnit.Framework.Assert.That(result, Is.EqualTo(expected)); }
public void ConvertSymbolsForAllInQuadExistsLeqEpsilonLeGeqGeReturnsCorrectMML() { String latexExpression = @"$\forall x \in X, \quad \exists y \leq \epsilon \le \geq \ge$"; String latexToConvert = begin + latexExpression + end; latex2MathMLConverter = new LatexMathToMathMLConverter(); latex2MathMLConverter.BeforeXmlFormat += ConvertSymbolsForAllInQuadExistsLeqEpsilonReturnsCorrectMMLListener; latex2MathMLConverter.Convert(latexToConvert); String expected = @"<math xmlns=""http://www.w3.org/1998/Math/MathML"" alttext=""\forall x \in X, \quad \exists y \leq \epsilon \le \geq \ge"" display=""inline"" class=""normalsize""> <mstyle displaystyle=""true"" /><mrow> <mo>∀<!-- ∀ --></mo> <mi>x</mi> <mo>∈<!-- ∈ --></mo> <mi>X</mi> <mo>,</mo> <mspace width=""2em""/><mo>∃<!-- ∃ --></mo> <mi>y</mi> <mo>≤ <!-- leq --> </mo> <mi>ε<!-- ε --></mi><mo>≤ <!-- le --> </mo> <mo>≥ <!-- geq --> </mo> <mo>≥ <!-- ge --> </mo> </mrow> </math>"; Thread.Sleep(400); NUnit.Framework.Assert.That(result, Is.EqualTo(expected)); }
public void ConvertOperatorsRelationShipOperatorsReturnsCorrectMML() { String latexExpression = @"$< <= \leq \ll \subset \subseteq \nsubseteq \sqsubset \sqsubseteq \preceq > >=\geq \gg \supset \supseteq \nsupseteq \sqsupset \sqsupseteq \succeq = \doteq \equiv \approx \cong \simeq \sim \propto \neq \parallel \asymp \vdash \in \smile \models \perp \prec \sphericalangle$"; String latexToConvert = begin + latexExpression + end; latex2MathMLConverter = new LatexMathToMathMLConverter(); latex2MathMLConverter.BeforeXmlFormat += ConvertOperatorsRelationShipOperatorsReturnsCorrectMMLListener; latex2MathMLConverter.Convert(latexToConvert); String expected = @"<math xmlns=""http://www.w3.org/1998/Math/MathML"" alttext=""&lt; &lt;= \leq \ll \subset \subseteq \nsubseteq \sqsubset \sqsubseteq \preceq &gt; &gt;=\geq \gg \supset \supseteq \nsupseteq \sqsupset \sqsupseteq \succeq = \doteq \equiv \approx \cong \simeq \sim \propto \neq \parallel \asymp \vdash \in \smile \models \perp \prec \sphericalangle"" display=""inline"" class=""normalsize""> <mstyle displaystyle=""true"" /><mrow> <mo><</mo> <mo>≤</mo> <mo>=</mo> <mo>≤ <!-- leq --> </mo> <mo>≪<!-- ≪ --></mo> <mo>⊂<!-- ⊂ --></mo> <mo>⊆<!-- ⊆ --></mo> <mo>⊈<!-- ⊈ --></mo> <mo>⊏<!-- ⊏ --></mo> <mo>⊑<!-- ⊑ --></mo> <mo>≼<!-- &cupre; --></mo> <mo>></mo> <mo>≥</mo> <mo>=</mo> <mo>≥ <!-- geq --> </mo> <mo>≫<!-- ≫ --></mo> <mo>⊃<!-- ⊃ --></mo> <mo>⊇<!-- ⊇ --></mo> <mo>⊉<!-- ⊉ --></mo> <mo>⊐<!-- ⊐ --></mo> <mo>⊒<!-- ⊒ --></mo> <mo>≽<!-- ≽ --></mo> <mo>=</mo> <mo>≐<!-- ≐ --></mo> <mo>≡<!-- equiv --></mo> <mo>≈<!-- ≈ --></mo> <mo>≅<!-- ≅ --></mo> <mo>≃<!-- ≃ --></mo> <mo>∼<!-- ∼ --></mo> <mo>∝<!-- ∝ --></mo> <mo>≠<!-- ≠ --></mo> <mo>⃦</mo> <mo>≍<!-- ≈ --></mo> <mo>⊢<!-- ⊢ --></mo> <mo>∈<!-- ∈ --></mo> <mo>⏝</mo> <mo>⊧<!-- ⊧ --></mo> <mo>⊥<!-- ⊥ --></mo> <mo>≺<!-- ≺ --></mo> <mo>∢<!-- ∢ --></mo> </mrow> </math>"; Thread.Sleep(400); NUnit.Framework.Assert.That(result, Is.EqualTo(expected)); }
public void ConvertOperatorsSinCosReturnsSinCos() { String latexExpression = @"$\cos (2\theta) = \cos^2 \theta - \sin^2 \theta$"; String latexToConvert = begin + latexExpression + end; latex2MathMLConverter = new LatexMathToMathMLConverter(); latex2MathMLConverter.BeforeXmlFormat += ConvertFracXYPlus2ReturnsFracXYPlus2InMMLEventListener; latex2MathMLConverter.Convert(latexToConvert); String expected = @"<math xmlns=""http://www.w3.org/1998/Math/MathML"" alttext=""\cos (2\theta) = \cos^2 \theta - \sin^2 \theta"" display=""inline"" class=""normalsize""> <mstyle displaystyle=""true"" /><mrow> <mi>cos</mi> <mfenced> <mrow> <mn>2</mn> <mi>θ<!-- θ --></mi></mrow> </mfenced> <mo>=</mo> <msup> <mrow> <mi>cos</mi> </mrow> <mrow> <mn>2</mn> </mrow> </msup> <mi>θ<!-- θ --></mi><mo>-</mo> <msup> <mrow> <mi>sin</mi> </mrow> <mrow> <mn>2</mn> </mrow> </msup> <mi>θ<!-- θ --></mi></mrow> </math>"; Thread.Sleep(400); NUnit.Framework.Assert.That(result, Is.EqualTo(expected)); }
public void ConvertOperatorsBinaryOperators() { String latexExpression = @"$\pm \mp \times \div \ast \star \dagger \ddagger \cap \cup \uplus \sqcap \sqcup \vee \wedge \cdot \diamond \bigtriangleup \bigtriangledown \triangleleft \triangledown \bigcirc \bullet \wr \oplus \ominus \otimes \oslash \odot \circ \setminus \amalg$"; String latexToConvert = begin + latexExpression + end; latex2MathMLConverter = new LatexMathToMathMLConverter(); latex2MathMLConverter.BeforeXmlFormat += ConvertOperatorsBinaryOperatorsListener; latex2MathMLConverter.Convert(latexToConvert); String expected = @"<math xmlns=""http://www.w3.org/1998/Math/MathML"" alttext=""\dots \dotsm \vdots \ddots"" display=""inline"" class=""normalsize""> <mstyle displaystyle=""true"" /><mrow> <mo>…</mo> <mo>⋯</mo> <mo>⋱</mo> <mo>⋮</mo> </mrow> </math>"; Thread.Sleep(400); NUnit.Framework.Assert.That(result, Is.EqualTo(expected)); }
public void ConvertOperatorsDotsReturnsCorrectMML() { String latexExpression = @"$\dots \dotsm \vdots \ddots$"; String latexToConvert = begin + latexExpression + end; latex2MathMLConverter = new LatexMathToMathMLConverter(); latex2MathMLConverter.BeforeXmlFormat += ConvertOperatorsDotsReturnsCorrectMMLListener; latex2MathMLConverter.Convert(latexToConvert); String expected = @"<math xmlns=""http://www.w3.org/1998/Math/MathML"" alttext=""\dots \dotsm \vdots \ddots"" display=""inline"" class=""normalsize""> <mstyle displaystyle=""true"" /><mrow> <mo>…</mo> <mo>⋯</mo> <mo>⋱</mo> <mo>⋮</mo> </mrow> </math>"; Thread.Sleep(400); NUnit.Framework.Assert.That(result, Is.EqualTo(expected)); }
public void ConvertSymbolsGreekLettersReturnsCorrectMML() { String latexExpression = @"$A, \alpha, B, \beta, \Gamma, \gamma, \Delta, \delta, E, \epsilon, \varepsilon, Z, \zeta, H, \eta, \Theta, \theta, \vartheta, I, \iota, K, \kappa, \varkappa, \Lambda, \lambda, M, \mu, N, \nu, \Xi, \xi, O, o, \Pi, \pi, \varpi, P, \rho, \varrho, \Sigma, \sigma, \varsigma, T, \tau, \Upsilon, \upsilon, \Phi, \phi, \varphi, X, \chi, \Psi, \psi, \Omega, \omega$"; String latexToConvert = begin + latexExpression + end; latex2MathMLConverter = new LatexMathToMathMLConverter(); latex2MathMLConverter.BeforeXmlFormat += ConvertSymbolsGreekLettersReturnsCorrectMMLListener; latex2MathMLConverter.Convert(latexToConvert); String expected = @"<math xmlns=""http://www.w3.org/1998/Math/MathML"" alttext=""A, \alpha, B, \beta, \Gamma, \gamma, \Delta, \delta, E, \epsilon, \varepsilon, Z, \zeta, H, \eta, \Theta, \theta, \vartheta, I, \iota, K, \kappa, \varkappa, \Lambda, \lambda, M, \mu, N, \nu, \Xi, \xi, O, o, \Pi, \pi, \varpi, P, \rho, \varrho, \Sigma, \sigma, \varsigma, T, \tau, \Upsilon, \upsilon, \Phi, \phi, \varphi, X, \chi, \Psi, \psi, \Omega, \omega"" display=""inline"" class=""normalsize""> <mstyle displaystyle=""true"" /><mrow> <mi>A</mi> <mo>,</mo> <mi>α<!-- α --></mi><mo>,</mo> <mi>B</mi> <mo>,</mo> <mi>β<!-- β --></mi><mo>,</mo> <mi>Γ<!-- Γ --></mi><mo>,</mo> <mi>γ<!-- γ --></mi><mo>,</mo> <mi>Δ<!-- Δ --></mi><mo>,</mo> <mi>δ<!-- δ --></mi><mo>,</mo> <mi>E</mi> <mo>,</mo> <mi>ε<!-- ε --></mi><mo>,</mo> <mi>ε<!-- ε --></mi><mo>,</mo> <mi>Z</mi> <mo>,</mo> <mi>ζ<!-- ζ --></mi><mo>,</mo> <mi>H</mi> <mo>,</mo> <mi>η<!-- η --></mi><mo>,</mo> <mi>Θ<!-- Θ --></mi><mo>,</mo> <mi>θ<!-- θ --></mi><mo>,</mo> <mi>ϑ<!-- &theta --></mi><mo>,</mo> <mi>I</mi> <mo>,</mo> <mi>ι<!-- ι --></mi><mo>,</mo> <mi>K</mi> <mo>,</mo> <mi>κ<!-- κ --></mi><mo>,</mo> <mi>ϰ<!-- ϰ --></mi><mo>,</mo> <mi>Λ<!-- Λ --></mi><mo>,</mo> <mi>λ<!-- λ --></mi><mo>,</mo> <mi>M</mi> <mo>,</mo> <mi>μ<!-- μ --></mi><mo>,</mo> <mi>N</mi> <mo>,</mo> <mi>ν<!-- ν --></mi><mo>,</mo> <mi>Ξ<!-- Ξ --></mi><mo>,</mo> <mi>ξ<!-- ξ --></mi><mo>,</mo> <mi>O</mi> <mo>,</mo> <mi>o</mi> <mo>,</mo> <mi>Π<!-- Π --></mi><mo>,</mo> <mi>π<!-- π --></mi><mo>,</mo> <mi>ϖ<!-- ϖ --></mi><mo>,</mo> <mi>P</mi> <mo>,</mo> <mi>ρ<!-- ρ --></mi><mo>,</mo> <mi>ϱ<!--&rhov --></mi><mo>,</mo> <mi>Σ<!--&Sigma --></mi><mo>,</mo> <mi>σ<!-- σ --></mi><mo>,</mo> <mi>ς<!--ς --></mi><mo>,</mo> <mi>T</mi> <mo>,</mo> <mi>τ<!-- τ --></mi><mo>,</mo> <mi>Υ<!-- Υ --></mi><mo>,</mo> <mi>υ<!-- υ --></mi><mo>,</mo> <mi>Φ<!-- Φ --></mi><mo>,</mo> <mi>φ<!-- φ --></mi><mo>,</mo> <mi>ϕ<!-- ϕ --></mi><mo>,</mo> <mi>X</mi> <mo>,</mo> <mi>χ<!-- χ --></mi><mo>,</mo> <mi>Ψ<!-- Ψ --></mi><mo>,</mo> <mi>ψ<!-- ψ --></mi><mo>,</mo> <mi>Ω<!-- Ω --></mi><mo>,</mo> <mi>ω<!-- ω --></mi></mrow> </math>"; Thread.Sleep(400); NUnit.Framework.Assert.That(result, Is.EqualTo(expected)); }