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