summaryrefslogtreecommitdiff
path: root/lib/python2.7/test/test_normalization.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/test/test_normalization.py')
-rw-r--r--lib/python2.7/test/test_normalization.py102
1 files changed, 0 insertions, 102 deletions
diff --git a/lib/python2.7/test/test_normalization.py b/lib/python2.7/test/test_normalization.py
deleted file mode 100644
index 3040a08..0000000
--- a/lib/python2.7/test/test_normalization.py
+++ /dev/null
@@ -1,102 +0,0 @@
-from test.test_support import run_unittest, open_urlresource
-import unittest
-
-from httplib import HTTPException
-import sys
-import os
-from unicodedata import normalize, unidata_version
-
-TESTDATAFILE = "NormalizationTest.txt"
-TESTDATAURL = "http://www.unicode.org/Public/" + unidata_version + "/ucd/" + TESTDATAFILE
-
-def check_version(testfile):
- hdr = testfile.readline()
- return unidata_version in hdr
-
-class RangeError(Exception):
- pass
-
-def NFC(str):
- return normalize("NFC", str)
-
-def NFKC(str):
- return normalize("NFKC", str)
-
-def NFD(str):
- return normalize("NFD", str)
-
-def NFKD(str):
- return normalize("NFKD", str)
-
-def unistr(data):
- data = [int(x, 16) for x in data.split(" ")]
- for x in data:
- if x > sys.maxunicode:
- raise RangeError
- return u"".join([unichr(x) for x in data])
-
-class NormalizationTest(unittest.TestCase):
- def test_main(self):
- part = None
- part1_data = {}
- # Hit the exception early
- try:
- testdata = open_urlresource(TESTDATAURL, check_version)
- except (IOError, HTTPException):
- self.skipTest("Could not retrieve " + TESTDATAURL)
- for line in testdata:
- if '#' in line:
- line = line.split('#')[0]
- line = line.strip()
- if not line:
- continue
- if line.startswith("@Part"):
- part = line.split()[0]
- continue
- try:
- c1,c2,c3,c4,c5 = [unistr(x) for x in line.split(';')[:-1]]
- except RangeError:
- # Skip unsupported characters;
- # try atleast adding c1 if we are in part1
- if part == "@Part1":
- try:
- c1 = unistr(line.split(';')[0])
- except RangeError:
- pass
- else:
- part1_data[c1] = 1
- continue
-
- # Perform tests
- self.assertTrue(c2 == NFC(c1) == NFC(c2) == NFC(c3), line)
- self.assertTrue(c4 == NFC(c4) == NFC(c5), line)
- self.assertTrue(c3 == NFD(c1) == NFD(c2) == NFD(c3), line)
- self.assertTrue(c5 == NFD(c4) == NFD(c5), line)
- self.assertTrue(c4 == NFKC(c1) == NFKC(c2) == \
- NFKC(c3) == NFKC(c4) == NFKC(c5),
- line)
- self.assertTrue(c5 == NFKD(c1) == NFKD(c2) == \
- NFKD(c3) == NFKD(c4) == NFKD(c5),
- line)
-
- # Record part 1 data
- if part == "@Part1":
- part1_data[c1] = 1
-
- # Perform tests for all other data
- for c in range(sys.maxunicode+1):
- X = unichr(c)
- if X in part1_data:
- continue
- self.assertTrue(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c)
-
- def test_bug_834676(self):
- # Check for bug 834676
- normalize('NFC', u'\ud55c\uae00')
-
-
-def test_main():
- run_unittest(NormalizationTest)
-
-if __name__ == "__main__":
- test_main()