def test_mod_char_first(self): with self.assertRaisesRegexp(Exception, 'modifier characters must appear after a base character'): ipa.process_chars(['\'']) with self.assertRaisesRegexp(Exception, 'modifier characters must appear after a base character'): ipa.process_chars(['=']) with self.assertRaisesRegexp(Exception, 'modifier characters must appear after a base character'): ipa.process_chars(['`']) with self.assertRaisesRegexp(Exception, 'modifier characters must appear after a base character'): ipa.process_chars(['~'])
def test_single_chars_with_modifiers(self): self.assertEqual(ipa.process_chars(['a', '\'']), [Seg('a', ['\''])]) self.assertEqual(ipa.process_chars(['a', '=']), [Seg('a', ['='])]) self.assertEqual(ipa.process_chars(['a', '`']), [Seg('a', ['`'])]) self.assertEqual(ipa.process_chars(['a', '~']), [Seg('a', ['~'])]) self.assertEqual(ipa.process_chars(['a', '_', 'G']), [Seg('a', ['G'])]) self.assertEqual(ipa.process_chars(['a', '_', '=']), [Seg('a', ['='])]) self.assertEqual(ipa.process_chars(['a', '_', 'H', '_', 'T']), [Seg('a', ['H', 'T'])])
def test_long_sequences(self): seq = ['r\\', '_', 'G', '\'', 'a', 'a', '~'] expected = [Seg('r\\', ['G', '\'']), Seg('a'), Seg('a', ['~'])] self.assertEqual(ipa.process_chars(seq), expected)
def test_equivalent_chars(self): self.assertEqual(ipa.process_chars(['P']), [Seg('v\\')]) self.assertEqual(ipa.process_chars(['v\\']), [Seg('v\\')]) self.assertEqual(ipa.process_chars(['a', '_', 'j']), [Seg('a', ['\''])]) self.assertEqual(ipa.process_chars(['a', '\'']), [Seg('a', ['\''])])
def test_simple_char(self): self.assertEqual(ipa.process_chars(['a']), [Seg('a')]) self.assertEqual(ipa.process_chars(['T']), [Seg('T')]) self.assertEqual(ipa.process_chars(['6']), [Seg('6')]) self.assertEqual(ipa.process_chars(['@']), [Seg('@')])
def test_underscores_in_wrong_positions(self): with self.assertRaisesRegexp(Exception, 'underscore characters must appear after a base character'): ipa.process_chars(['_']) with self.assertRaisesRegexp(Exception, 'underscore characters must appear after a base character'): ipa.process_chars(['_', '_']) with self.assertRaisesRegexp(Exception, 'two underscore characters cannot appear next to each other'): ipa.process_chars(['a', '_', '_']) with self.assertRaisesRegexp(Exception, 'dangling modifier character'): ipa.process_chars(['a', '_']) with self.assertRaisesRegexp(Exception, 'two underscore characters cannot appear next to each other'): ipa.process_chars(['a', '_', '_', 'a']) with self.assertRaisesRegexp(Exception, 'underscore characters must appear after a base character'): ipa.process_chars(['_', '_', 'a'])