home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2011 July / maximum-cd-2011-07.iso / DiscContents / LibO_3.3.2_Win_x86_install_multi.exe / libreoffice1.cab / test_stringprep.py < prev    next >
Encoding:
Python Source  |  2011-03-15  |  3.1 KB  |  97 lines

  1. # To fully test this module, we would need a copy of the stringprep tables.
  2. # Since we don't have them, this test checks only a few codepoints.
  3.  
  4. import unittest
  5. from test import test_support
  6.  
  7. from stringprep import *
  8.  
  9. class StringprepTests(unittest.TestCase):
  10.     def test(self):
  11.         self.failUnless(in_table_a1(u"\u0221"))
  12.         self.failIf(in_table_a1(u"\u0222"))
  13.  
  14.         self.failUnless(in_table_b1(u"\u00ad"))
  15.         self.failIf(in_table_b1(u"\u00ae"))
  16.  
  17.         self.failUnless(map_table_b2(u"\u0041"), u"\u0061")
  18.         self.failUnless(map_table_b2(u"\u0061"), u"\u0061")
  19.  
  20.         self.failUnless(map_table_b3(u"\u0041"), u"\u0061")
  21.         self.failUnless(map_table_b3(u"\u0061"), u"\u0061")
  22.  
  23.         self.failUnless(in_table_c11(u"\u0020"))
  24.         self.failIf(in_table_c11(u"\u0021"))
  25.  
  26.         self.failUnless(in_table_c12(u"\u00a0"))
  27.         self.failIf(in_table_c12(u"\u00a1"))
  28.  
  29.         self.failUnless(in_table_c12(u"\u00a0"))
  30.         self.failIf(in_table_c12(u"\u00a1"))
  31.  
  32.         self.failUnless(in_table_c11_c12(u"\u00a0"))
  33.         self.failIf(in_table_c11_c12(u"\u00a1"))
  34.  
  35.         self.failUnless(in_table_c21(u"\u001f"))
  36.         self.failIf(in_table_c21(u"\u0020"))
  37.  
  38.         self.failUnless(in_table_c22(u"\u009f"))
  39.         self.failIf(in_table_c22(u"\u00a0"))
  40.  
  41.         self.failUnless(in_table_c21_c22(u"\u009f"))
  42.         self.failIf(in_table_c21_c22(u"\u00a0"))
  43.  
  44.         self.failUnless(in_table_c3(u"\ue000"))
  45.         self.failIf(in_table_c3(u"\uf900"))
  46.  
  47.         self.failUnless(in_table_c4(u"\uffff"))
  48.         self.failIf(in_table_c4(u"\u0000"))
  49.  
  50.         self.failUnless(in_table_c5(u"\ud800"))
  51.         self.failIf(in_table_c5(u"\ud7ff"))
  52.  
  53.         self.failUnless(in_table_c6(u"\ufff9"))
  54.         self.failIf(in_table_c6(u"\ufffe"))
  55.  
  56.         self.failUnless(in_table_c7(u"\u2ff0"))
  57.         self.failIf(in_table_c7(u"\u2ffc"))
  58.  
  59.         self.failUnless(in_table_c8(u"\u0340"))
  60.         self.failIf(in_table_c8(u"\u0342"))
  61.  
  62.         # C.9 is not in the bmp
  63.         # self.failUnless(in_table_c9(u"\U000E0001"))
  64.         # self.failIf(in_table_c8(u"\U000E0002"))
  65.  
  66.         self.failUnless(in_table_d1(u"\u05be"))
  67.         self.failIf(in_table_d1(u"\u05bf"))
  68.  
  69.         self.failUnless(in_table_d2(u"\u0041"))
  70.         self.failIf(in_table_d2(u"\u0040"))
  71.  
  72.         # This would generate a hash of all predicates. However, running
  73.         # it is quite expensive, and only serves to detect changes in the
  74.         # unicode database. Instead, stringprep.py asserts the version of
  75.         # the database.
  76.  
  77.         # import hashlib
  78.         # predicates = [k for k in dir(stringprep) if k.startswith("in_table")]
  79.         # predicates.sort()
  80.         # for p in predicates:
  81.         #     f = getattr(stringprep, p)
  82.         #     # Collect all BMP code points
  83.         #     data = ["0"] * 0x10000
  84.         #     for i in range(0x10000):
  85.         #         if f(unichr(i)):
  86.         #             data[i] = "1"
  87.         #     data = "".join(data)
  88.         #     h = hashlib.sha1()
  89.         #     h.update(data)
  90.         #     print p, h.hexdigest()
  91.  
  92. def test_main():
  93.     test_support.run_unittest(StringprepTests)
  94.  
  95. if __name__ == '__main__':
  96.     test_main()
  97.