1from PyObjCTools.TestSupport import * 2from CoreFoundation import * 3 4 5class TestCharacterSet (TestCase): 6 def testTypes(self): 7 self.failUnlessIsCFType(CFCharacterSetRef) 8 self.failUnlessIsCFType(CFMutableCharacterSetRef) 9 10 def testTypeId(self): 11 v = CFCharacterSetGetTypeID() 12 self.failUnless(isinstance(v, (int, long))) 13 14 def testCreation(self): 15 set = CFCharacterSetGetPredefined(kCFCharacterSetLetter) 16 self.failUnless(isinstance(set, CFCharacterSetRef)) 17 18 set = CFCharacterSetCreateWithCharactersInRange(None, (ord('A'), ord('Z')-ord('A'))) 19 self.failUnless(isinstance(set, CFCharacterSetRef)) 20 21 set = CFCharacterSetCreateWithCharactersInString(None, u"abcdefABCDEF0123456789") 22 self.failUnless(isinstance(set, CFCharacterSetRef)) 23 24 bytes = "0123" * (8192/4) 25 bytes = buffer(bytes) 26 set = CFCharacterSetCreateWithBitmapRepresentation(None, bytes) 27 self.failUnless(isinstance(set, CFCharacterSetRef)) 28 29 set = CFCharacterSetCreateInvertedSet(None, set) 30 self.failUnless(isinstance(set, CFCharacterSetRef)) 31 32 set = CFCharacterSetCreateMutable(None) 33 self.failUnless(isinstance(set, CFCharacterSetRef)) 34 35 set = CFCharacterSetCreateCopy(None, set) 36 self.failUnless(isinstance(set, CFCharacterSetRef)) 37 38 set = CFCharacterSetCreateMutableCopy(None, set) 39 self.failUnless(isinstance(set, CFCharacterSetRef)) 40 41 42 43 def testInspection(self): 44 letters = CFCharacterSetGetPredefined(kCFCharacterSetLetter) 45 digits = CFCharacterSetGetPredefined(kCFCharacterSetDecimalDigit) 46 set = CFCharacterSetCreateWithCharactersInString(None, u"abcdef") 47 48 self.failUnless(CFCharacterSetIsSupersetOfSet(letters, set)) 49 self.failIf(CFCharacterSetIsSupersetOfSet(digits, set)) 50 51 self.failUnless(CFCharacterSetHasMemberInPlane(digits, 0)) 52 self.failIf(CFCharacterSetHasMemberInPlane(digits, 4)) 53 54 self.failUnless(CFCharacterSetIsCharacterMember(letters, u'A')) 55 self.failIf(CFCharacterSetIsCharacterMember(letters, u'9')) 56 57 data = CFCharacterSetCreateBitmapRepresentation(None, set) 58 self.failUnless(isinstance(data, CFDataRef)) 59 60 61 def testInspectLongUnicode(self): 62 letters = CFCharacterSetGetPredefined(kCFCharacterSetLetter) 63 digits = CFCharacterSetGetPredefined(kCFCharacterSetDecimalDigit) 64 self.failUnless(CFCharacterSetIsLongCharacterMember(letters, ord(u'A'))) 65 self.failIf(CFCharacterSetIsLongCharacterMember(letters, ord(u'9'))) 66 67 def testMutation(self): 68 set = CFCharacterSetCreateWithCharactersInString(None, u"abcdef") 69 set = CFCharacterSetCreateMutableCopy(None, set) 70 71 self.failIf(CFCharacterSetIsCharacterMember(set, unichr(4))) 72 CFCharacterSetAddCharactersInRange(set, (1, 10)) 73 self.failUnless(CFCharacterSetIsCharacterMember(set, unichr(4))) 74 75 CFCharacterSetRemoveCharactersInRange(set, (4, 2)) 76 self.failIf(CFCharacterSetIsCharacterMember(set, unichr(4))) 77 78 self.failIf(CFCharacterSetIsCharacterMember(set, u"5")) 79 CFCharacterSetAddCharactersInString(set, u"012345") 80 self.failUnless(CFCharacterSetIsCharacterMember(set, u"5")) 81 82 self.failUnless(CFCharacterSetIsCharacterMember(set, u"a")) 83 CFCharacterSetRemoveCharactersInString(set, u"ab") 84 self.failIf(CFCharacterSetIsCharacterMember(set, u"a")) 85 86 self.failIf(CFCharacterSetIsCharacterMember(set, u"9")) 87 CFCharacterSetUnion(set, CFCharacterSetGetPredefined(kCFCharacterSetDecimalDigit)) 88 self.failUnless(CFCharacterSetIsCharacterMember(set, u"9")) 89 90 CFCharacterSetIntersect(set, CFCharacterSetGetPredefined(kCFCharacterSetLetter)) 91 self.failIf(CFCharacterSetIsCharacterMember(set, u"9")) 92 93 CFCharacterSetInvert(set) 94 self.failUnless(CFCharacterSetIsCharacterMember(set, u"9")) 95 self.failIf(CFCharacterSetIsCharacterMember(set, u"e")) 96 97 98 def testConstants(self): 99 self.failUnlessEqual(kCFCharacterSetControl, 1) 100 self.failUnlessEqual(kCFCharacterSetWhitespace, 2) 101 self.failUnlessEqual(kCFCharacterSetWhitespaceAndNewline, 3) 102 self.failUnlessEqual(kCFCharacterSetDecimalDigit, 4) 103 self.failUnlessEqual(kCFCharacterSetLetter, 5) 104 self.failUnlessEqual(kCFCharacterSetLowercaseLetter, 6) 105 self.failUnlessEqual(kCFCharacterSetUppercaseLetter, 7) 106 self.failUnlessEqual(kCFCharacterSetNonBase, 8) 107 self.failUnlessEqual(kCFCharacterSetDecomposable, 9) 108 self.failUnlessEqual(kCFCharacterSetAlphaNumeric, 10) 109 self.failUnlessEqual(kCFCharacterSetPunctuation, 11) 110 self.failUnlessEqual(kCFCharacterSetCapitalizedLetter, 13) 111 self.failUnlessEqual(kCFCharacterSetSymbol, 14) 112 self.failUnlessEqual(kCFCharacterSetIllegal, 12) 113 114 @min_os_level('10.5') 115 def testConstants10_5(self): 116 self.failUnlessEqual(kCFCharacterSetNewline, 15) 117 118 119if __name__ == "__main__": 120 main() 121