def test_that_unknown_unicode_characters_raise_exception(self): # you know that Santa Clause character? Seriously, if you don't know it, # you should have a look. LaTeX does indeed not have command for this # (2016, one never knows) santa = chr(127877) with self.assertRaises(typesetting.DocumentSerializationException): typesetting.escape_unicode_maths(santa)
def test_that_mathmode_and_textmode_are_treated_differently(self): math = typesetting.escape_unicode_maths("ö") self.assertNotEqual(math, "ö") text = typesetting.escape_unicode_maths("\\text{ö}") self.assertFalse("ö" in text) # check whether characters got transcribed differently; it's enough to # check one character of the generated sequence, they should differ self.assertNotEqual(math[:2], text[6:8])
def test_that_all_characters_are_preserved_when_no_replacements_happen( self): text = "This is a \\text{test} mate." self.assertEqual(typesetting.escape_unicode_maths(text), text) self.assertEqual( typesetting.escape_unicode_maths(text, replace_alphabeticals=False), text) text = "But yeah but no" * 20 + ", oh my god!" self.assertEqual(typesetting.escape_unicode_maths(text), text) self.assertEqual( typesetting.escape_unicode_maths(text, replace_alphabeticals=False), text)
def test_that_everything_around_surrounded_character_is_preserved(self): text = "This is a \\text{über} test. ;)" result = typesetting.escape_unicode_maths(text, replace_alphabeticals=True) ue_pos = text.index("ü") # text in front is unchanged self.assertEqual(result[:ue_pos], text[:ue_pos]) # find b character, which is the start of the remaining string b_pos = result[ue_pos:].find("b") + ue_pos # check that text after umlaut matches self.assertEqual(result[b_pos:], text[ue_pos + 1:]) text = "But yeah but no" * 20 + ", oh my god!ø" o_strok_pos = text.index("ø") res = typesetting.escape_unicode_maths(text) self.assertEqual(res[:o_strok_pos], text[:o_strok_pos])
def test_that_two_text_environments_preserve_all_characters(self): text = r"a\cdot b \text{equals} b\cdot c} \mbox{ is not equal } u^{v\cdot k}" self.assertEqual(typesetting.escape_unicode_maths(text), text)
def test_that_flag_to_preserve_alphas_is_passed_through(self): res = typesetting.escape_unicode_maths("\\text{ö}", replace_alphabeticals=False) self.assertEqual(res, "\\text{ö}")