def testSymbol(self): self.assertTreeEquals( parse('alpha'), element_factory( 'math', element_factory('mstyle', element_factory('mi', text=u'\u03b1'))))
def testNumber(self): self.assertTreeEquals( parse('3.1415'), element_factory( 'math', element_factory('mstyle', element_factory('mn', text='3.1415'))))
def testUnary4(self): self.assertTreeEquals( parse('text alpha'), element_factory( 'math', element_factory( 'mstyle', element_factory('mtext', element_factory('mi', text=u'\u03b1')))))
def testUnary(self): self.assertTreeEquals( parse('sin alpha'), element_factory( 'math', element_factory( 'mstyle', element_factory('mrow', element_factory('mo', text='sin'), element_factory('mi', text=u'\u03b1')))))
def testDivision(self): self.assertTreeEquals( parse('alpha // beta'), element_factory( 'math', element_factory('mstyle', element_factory('mi', text=u'\u03b1'), element_factory('mo', text='/'), element_factory('mi', text=u'\u03b2'))))
def testFrac(self): self.assertTreeEquals( parse('alpha / beta'), element_factory( 'math', element_factory( 'mstyle', element_factory('mfrac', element_factory('mi', text=u'\u03b1'), element_factory('mi', text=u'\u03b2')))))
def testColor(self): self.assertTreeEquals( parse('color (blue) x'), element_factory( 'math', element_factory( 'mstyle', element_factory('mstyle', element_factory('mi', text=u'x'), mathcolor='blue'))))
def testText(self): self.assertTreeEquals( parse('text{undefined}'), element_factory( 'math', element_factory( 'mstyle', element_factory('mrow', element_factory('mtext', text='undefined')))))
def testUnary2(self): self.assertTreeEquals( parse('dot alpha'), element_factory( 'math', element_factory( 'mstyle', element_factory('mover', element_factory('mi', text=u'\u03b1'), element_factory('mo', text='.')))))
def testSup(self): self.assertTreeEquals( parse('alpha ^ beta'), element_factory( 'math', element_factory( 'mstyle', element_factory('msup', element_factory('mi', text=u'\u03b1'), element_factory('mi', text=u'\u03b2')))))
def testIncompleteFrac(self): self.assertTreeEquals( parse('alpha /'), element_factory( 'math', element_factory( 'mstyle', element_factory('mfrac', element_factory('mi', text=u'\u03b1'), element_factory('mo')))))
def tesRewriteLRNested(self): self.assertTreeEquals( parse('floor abs A'), element_factory( 'math', element_factory( 'mstyle', element_factory( 'mrow', element_factory('mo', u"\u230A"), element_factory('mrow', element_factory('mo', '|'), element_factory('mi', 'A'), element_factory('mo', '|')), element_factory('mo', u"\u230B")))))
def testRewriteLRReplace(self): self.assertTreeEquals( parse('abs(xyz)'), element_factory( 'math', element_factory( 'mstyle', element_factory( 'mrow', element_factory('mo', u"|"), element_factory( 'mrow', element_factory('mi', 'x'), element_factory('mi', 'y'), element_factory('mi', 'z'), ), element_factory('mo', u"|")))))
def testParens(self): self.assertTreeEquals( parse('(alpha + beta) / gamma'), element_factory( 'math', element_factory( 'mstyle', element_factory( 'mfrac', element_factory('mrow', element_factory('mi', text=u'\u03b1'), element_factory('mo', text='+'), element_factory('mi', text=u'\u03b2')), element_factory('mi', text=u'\u03b3')))))
def testQuotedText(self): self.assertTreeEquals( parse('"time" = "money"'), element_factory( 'math', element_factory( 'mstyle', element_factory('mrow', element_factory('mtext', text='time')), element_factory('mo', text='='), element_factory('mrow', element_factory('mtext', text='money')))))
def testRewriteLRAdditive(self): self.assertTreeEquals( parse('floor A'), element_factory( 'math', element_factory( 'mstyle', element_factory('mrow', element_factory('mo', u"\u230A"), element_factory('mi', 'A'), element_factory('mo', u"\u230B")))))
def testUnderOver(self): self.assertTreeEquals( parse('sum_alpha^beta'), element_factory( 'math', element_factory( 'mstyle', element_factory('munderover', element_factory('mo', text=u'\u2211'), element_factory('mi', text=u'\u03b1'), element_factory('mi', text=u'\u03b2')))))
def testQuotedSpaces(self): self.assertTreeEquals( parse('" a b c " x'), element_factory( 'math', element_factory( 'mstyle', element_factory( 'mrow', element_factory('mspace', width='1ex'), element_factory('mtext', text=' a b c '), element_factory('mspace', width='1ex'), ), element_factory('mi', text='x'), )))
def testTwoLines(self): self.maxDiff = None output = markdown.markdown( ( 'First line containing the formula $$f(x)=x^2$$.\n' 'The second line should be here.' ), ["asciimathml"] ) formula = element_factory('math', element_factory('mstyle', element_factory('mi', text='f'), element_factory('mrow', element_factory('mo', text='('), element_factory('mi', text='x'), element_factory('mo', text=')') ), element_factory('mo', text='='), element_factory('msup', element_factory('mi', text='x'), element_factory('mn', text='2') ) ) ) formula.set('xmlns', 'http://www.w3.org/1998/Math/MathML') enc = 'unicode' if sys.version_info.major >= 3 else 'utf-8' expected = ( '<p>First line containing the formula {0}.\n' 'The second line should be here.</p>' ).format(tostring(formula, encoding=enc).strip()) self.assertEquals( output, expected )
def testEmpty(self): self.assertTreeEquals( parse(''), element_factory('math', element_factory('mstyle')))