1from PyObjCTools.TestSupport import * 2import sys 3from Foundation import * 4 5 6class TestNSObjCRuntime (TestCase): 7 def testConstants(self): 8 self.assertEquals(NSFoundationVersionNumber10_0, 397.40) 9 self.assertEquals(NSFoundationVersionNumber10_1, 425.00) 10 self.assertEquals(NSFoundationVersionNumber10_1_1, 425.00) 11 self.assertEquals(NSFoundationVersionNumber10_1_2, 425.00) 12 self.assertEquals(NSFoundationVersionNumber10_1_3, 425.00) 13 self.assertEquals(NSFoundationVersionNumber10_1_4, 425.00) 14 self.assertEquals(NSFoundationVersionNumber10_2, 462.00) 15 self.assertEquals(NSFoundationVersionNumber10_2_1, 462.00) 16 self.assertEquals(NSFoundationVersionNumber10_2_2, 462.00) 17 self.assertEquals(NSFoundationVersionNumber10_2_3, 462.00) 18 self.assertEquals(NSFoundationVersionNumber10_2_4, 462.00) 19 self.assertEquals(NSFoundationVersionNumber10_2_5, 462.00) 20 self.assertEquals(NSFoundationVersionNumber10_2_6, 462.00) 21 self.assertEquals(NSFoundationVersionNumber10_2_7, 462.70) 22 self.assertEquals(NSFoundationVersionNumber10_2_8, 462.70) 23 self.assertEquals(NSFoundationVersionNumber10_3, 500.00) 24 self.assertEquals(NSFoundationVersionNumber10_3_1, 500.00) 25 self.assertEquals(NSFoundationVersionNumber10_3_2, 500.30) 26 self.assertEquals(NSFoundationVersionNumber10_3_3, 500.54) 27 self.assertEquals(NSFoundationVersionNumber10_3_4, 500.56) 28 self.assertEquals(NSFoundationVersionNumber10_3_5, 500.56) 29 self.assertEquals(NSFoundationVersionNumber10_3_6, 500.56) 30 self.assertEquals(NSFoundationVersionNumber10_3_7, 500.56) 31 self.assertEquals(NSFoundationVersionNumber10_3_8, 500.56) 32 self.assertEquals(NSFoundationVersionNumber10_3_9, 500.58) 33 self.assertEquals(NSFoundationVersionNumber10_4, 567.00) 34 self.assertEquals(NSFoundationVersionNumber10_4_1, 567.00) 35 self.assertEquals(NSFoundationVersionNumber10_4_2, 567.12) 36 self.assertEquals(NSFoundationVersionNumber10_4_3, 567.21) 37 self.assertEquals(NSFoundationVersionNumber10_4_4_Intel, 567.23) 38 self.assertEquals(NSFoundationVersionNumber10_4_4_PowerPC, 567.21) 39 self.assertEquals(NSFoundationVersionNumber10_4_5, 567.25) 40 self.assertEquals(NSFoundationVersionNumber10_4_6, 567.26) 41 self.assertEquals(NSFoundationVersionNumber10_4_7, 567.27) 42 self.assertEquals(NSFoundationVersionNumber10_4_8, 567.28) 43 self.assertEquals(NSFoundationVersionNumber10_4_9, 567.29) 44 self.assertEquals(NSFoundationVersionNumber10_4_10, 567.29) 45 self.assertEquals(NSFoundationVersionNumber10_4_11, 567.36) 46 47 self.failUnless(isinstance(NSFoundationVersionNumber, float)) 48 self.failUnless(isinstance(NSIntegerMax, (int, long))) 49 self.failUnless(isinstance(NSIntegerMin, (int, long))) 50 self.failUnless(isinstance(NSUIntegerMax, (int, long))) 51 52 if sys.maxint > 2 ** 32: 53 self.assertEquals(NSIntegerMax, 2 ** 63 -1) 54 self.assertEquals(NSIntegerMin, -(2 ** 63)) 55 self.assertEquals(NSUIntegerMax, 2**64-1) 56 57 else: 58 self.assertEquals(NSIntegerMax, 2 ** 31 -1) 59 self.assertEquals(NSIntegerMin, -(2 ** 31)) 60 self.assertEquals(NSUIntegerMax, 2**32-1) 61 62 self.failUnless(YES) 63 self.failIf(NO) 64 65 self.assertEquals(NSOrderedAscending, -1) 66 self.assertEquals(NSOrderedSame, 0) 67 self.assertEquals(NSOrderedDescending, 1) 68 69 self.assertEquals(NSNotFound, NSIntegerMax) 70 71 72 def testSelectorAccess(self): 73 v = NSStringFromSelector('description') 74 self.failUnless(isinstance(v, unicode)) 75 self.assertEquals(v, 'description') 76 77 v = NSSelectorFromString(u"description") 78 self.failUnless(isinstance(v, str)) 79 self.assertEquals(v, 'description') 80 81 def testClassAccess(self): 82 v = NSStringFromClass(NSObject) 83 self.failUnless(isinstance(v, unicode)) 84 self.assertEquals(v, 'NSObject') 85 86 v = NSClassFromString('NSDictionary') 87 self.failUnless(isinstance(v, objc.objc_class)) 88 self.assertEquals(v, NSDictionary) 89 90 def testProtocolAccess(self): 91 p = NSProtocolFromString('NSObject') 92 self.failUnless(isinstance(p, objc.formal_protocol)) 93 94 v = NSStringFromProtocol(p) 95 self.failUnless(isinstance(v, unicode)) 96 self.assertEquals(v, 'NSObject') 97 98 def testTypeInfo(self): 99 rest, size, align = NSGetSizeAndAlignment("ii", None, None) 100 self.assertEquals(rest, "i") 101 self.failUnless(isinstance(size, (int, long))) 102 self.failUnless(isinstance(align, (int, long))) 103 104 def testMinMax(self): 105 self.assertEquals(MAX(1, 2), 2) 106 self.assertEquals(MAX("a", "b"), "b") 107 self.assertEquals(MIN(1, 2), 1) 108 self.assertEquals(MIN("a", "b"), "a") 109 self.assertEquals(ABS(-1), 1) 110 self.assertEquals(ABS(-1.0), 1.0) 111 112if __name__ == "__main__": 113 main() 114