require "spec_helper" RSpec.describe MathML2AsciiMath do it "processes some MathML" do expect(MathML2AsciiMath.m2a(<<~INPUT)).to match_fuzzy <<~OUTPUT a x2 +b×x +c3 INPUT a diamond x^2\n + b xx x\n + c_3 OUTPUT end it "processes some MathML" do expect(MathML2AsciiMath.m2a(<<~INPUT)).to match_fuzzy <<~OUTPUT a x2d +b×x +cab INPUT a diamond x^(2d)\n+ b xx x\n+ c_(ab) OUTPUT end it "processes some MathML" do expect(MathML2AsciiMath.m2a(<<~INPUT)).to match_fuzzy <<~OUTPUT 1 + 5 2 INPUT (( 1 + sqrt( 5 ) ))/( 2 ) OUTPUT end it "processes some MathML" do expect(MathML2AsciiMath.m2a(<<~INPUT)).to match_fuzzy <<~OUTPUT a + b INPUT ( a + b ) OUTPUT end it "processes some MathML" do expect(MathML2AsciiMath.m2a(<<~INPUT)).to match_fuzzy <<~OUTPUT 0 1 INPUT [ 0 , 1 ) OUTPUT end it "processes some MathML" do expect(MathML2AsciiMath.m2a(<<~INPUT)).to match_fuzzy <<~OUTPUT 0 INPUT \u222B_0^( oo ) OUTPUT end it "processes some MathML" do expect(MathML2AsciiMath.m2a(<<~INPUT)).to match_fuzzy <<~OUTPUT ab ds INPUT \u222B_(ab)^(ds) OUTPUT end it "processes some MathML" do expect(MathML2AsciiMath.m2a(<<~INPUT)).to match_fuzzy <<~OUTPUT x + y + z INPUT ubrace (\nx\n+\ny\n+\nz\n) OUTPUT end it "processes some MathML" do expect(MathML2AsciiMath.m2a(<<~INPUT)).to match_fuzzy <<~OUTPUT x + y + z ̲ INPUT ul (\nx\n+\ny\n+\nz\n) OUTPUT end it "processes some MathML" do expect(MathML2AsciiMath.m2a(<<~INPUT)).to match_fuzzy <<~OUTPUT x + y + z fred INPUT underset(fred)((\nx\n+\ny\n+\nz\n)) OUTPUT end it "processes some MathML" do expect(MathML2AsciiMath.m2a(<<~INPUT)).to match_fuzzy <<~OUTPUT x + y + z INPUT obrace\nx\n+\ny\n+\nz OUTPUT end it "processes some MathML" do expect(MathML2AsciiMath.m2a(<<~INPUT)).to match_fuzzy <<~OUTPUT x + y + z ^ INPUT hat\nx\n+\ny\n+\nz OUTPUT end it "processes some MathML" do expect(MathML2AsciiMath.m2a(<<~INPUT)).to match_fuzzy <<~OUTPUT x + y + z ¯ INPUT bar\nx\n+\ny\n+\nz OUTPUT end it "processes some MathML" do expect(MathML2AsciiMath.m2a(<<~INPUT)).to match_fuzzy <<~OUTPUT x + y + z INPUT vec\nx\n+\ny\n+\nz OUTPUT end it "processes some MathML" do expect(MathML2AsciiMath.m2a(<<~INPUT)).to match_fuzzy <<~OUTPUT x + y + z . INPUT dot\nx\n+\ny\n+\nz OUTPUT end it "processes some MathML" do expect(MathML2AsciiMath.m2a(<<~INPUT)).to match_fuzzy <<~OUTPUT x + y + z .. INPUT ddot\nx\n+\ny\n+\nz OUTPUT end it "processes some MathML" do expect(MathML2AsciiMath.m2a(<<~INPUT)).to match_fuzzy <<~OUTPUT x + y + z fred INPUT overset(fred)(\nx\n+\ny\n+\nz\n) OUTPUT end it "processes some MathML" do expect(MathML2AsciiMath.m2a(<<~INPUT)).to match_fuzzy <<~OUTPUT X = A B C D E F INPUT X = [[A,B],[C,D],[E,F]] OUTPUT end it "processes some unknown MathML" do expect(MathML2AsciiMath.m2a(<<~INPUT)).to match_fuzzy <<~OUTPUT x + y + z INPUT x\n+\n\n y \n + \n\nz OUTPUT end end