xref: /aosp_15_r20/external/fonttools/Tests/misc/encodingTools_test.py (revision e1fe3e4ad2793916b15cccdc4a7da52a7e1dd0e9)
1*e1fe3e4aSElliott Hughesimport unittest
2*e1fe3e4aSElliott Hughesfrom fontTools.misc.encodingTools import getEncoding
3*e1fe3e4aSElliott Hughes
4*e1fe3e4aSElliott Hughes
5*e1fe3e4aSElliott Hughesclass EncodingTest(unittest.TestCase):
6*e1fe3e4aSElliott Hughes    def test_encoding_unicode(self):
7*e1fe3e4aSElliott Hughes        self.assertEqual(
8*e1fe3e4aSElliott Hughes            getEncoding(3, 0, None), "utf_16_be"
9*e1fe3e4aSElliott Hughes        )  # MS Symbol is Unicode as well
10*e1fe3e4aSElliott Hughes        self.assertEqual(getEncoding(3, 1, None), "utf_16_be")
11*e1fe3e4aSElliott Hughes        self.assertEqual(getEncoding(3, 10, None), "utf_16_be")
12*e1fe3e4aSElliott Hughes        self.assertEqual(getEncoding(0, 3, None), "utf_16_be")
13*e1fe3e4aSElliott Hughes
14*e1fe3e4aSElliott Hughes    def test_encoding_macroman_misc(self):
15*e1fe3e4aSElliott Hughes        self.assertEqual(getEncoding(1, 0, 17), "mac_turkish")
16*e1fe3e4aSElliott Hughes        self.assertEqual(getEncoding(1, 0, 37), "mac_romanian")
17*e1fe3e4aSElliott Hughes        self.assertEqual(getEncoding(1, 0, 45), "mac_roman")
18*e1fe3e4aSElliott Hughes
19*e1fe3e4aSElliott Hughes    def test_extended_mac_encodings(self):
20*e1fe3e4aSElliott Hughes        encoding = getEncoding(1, 1, 0)  # Mac Japanese
21*e1fe3e4aSElliott Hughes        decoded = b"\xfe".decode(encoding)
22*e1fe3e4aSElliott Hughes        self.assertEqual(decoded, chr(0x2122))
23*e1fe3e4aSElliott Hughes
24*e1fe3e4aSElliott Hughes    def test_extended_unknown(self):
25*e1fe3e4aSElliott Hughes        self.assertEqual(getEncoding(10, 11, 12), None)
26*e1fe3e4aSElliott Hughes        self.assertEqual(getEncoding(10, 11, 12, "ascii"), "ascii")
27*e1fe3e4aSElliott Hughes        self.assertEqual(getEncoding(10, 11, 12, default="ascii"), "ascii")
28*e1fe3e4aSElliott Hughes
29*e1fe3e4aSElliott Hughes
30*e1fe3e4aSElliott Hughesif __name__ == "__main__":
31*e1fe3e4aSElliott Hughes    import sys
32*e1fe3e4aSElliott Hughes
33*e1fe3e4aSElliott Hughes    sys.exit(unittest.main())
34