1 from test
.test_support
import (verbose
, TestFailed
, TestSkipped
, verify
,
5 from unicodedata
import normalize
7 TESTDATAFILE
= "NormalizationTest-3.2.0" + os
.extsep
+ "txt"
8 TESTDATAURL
= "http://www.unicode.org/Public/3.2-Update/" + TESTDATAFILE
14 return normalize("NFC", str)
17 return normalize("NFKC", str)
20 return normalize("NFD", str)
23 return normalize("NFKD", str)
26 data
= [int(x
, 16) for x
in data
.split(" ")]
28 if x
> sys
.maxunicode
:
30 return u
"".join([unichr(x
) for x
in data
])
34 for line
in open_urlresource(TESTDATAURL
):
36 line
= line
.split('#')[0]
40 if line
.startswith("@Part"):
44 c1
,c2
,c3
,c4
,c5
= [unistr(x
) for x
in line
.split(';')[:-1]]
46 # Skip unsupported characters
53 verify(c2
== NFC(c1
) == NFC(c2
) == NFC(c3
), line
)
54 verify(c4
== NFC(c4
) == NFC(c5
), line
)
55 verify(c3
== NFD(c1
) == NFD(c2
) == NFD(c3
), line
)
56 verify(c5
== NFD(c4
) == NFD(c5
), line
)
57 verify(c4
== NFKC(c1
) == NFKC(c2
) == NFKC(c3
) == NFKC(c4
) == NFKC(c5
),
59 verify(c5
== NFKD(c1
) == NFKD(c2
) == NFKD(c3
) == NFKD(c4
) == NFKD(c5
),
66 # Perform tests for all other data
67 for c
in range(sys
.maxunicode
+1):
71 assert X
== NFC(X
) == NFD(X
) == NFKC(X
) == NFKD(X
), c
73 # Check for bug 834676
74 normalize('NFC',u
'\ud55c\uae00')
76 if __name__
== "__main__":