1from Foundation import * 2from PyObjCTools.TestSupport import * 3 4try: 5 unicode 6except NameError: 7 unicode = str 8 9 10try: 11 long 12except NameError: 13 long = int 14 15 16class TestNSRange (TestCase): 17 def testStructs(self): 18 v = NSRange() 19 self.assertHasAttr(v, 'location') 20 self.assertHasAttr(v, 'length') 21 22 def testFunctions(self): 23 v = NSMakeRange(1, 4) 24 self.assertIsInstance(v, NSRange) 25 self.assertIsInstance(v.location, (int, long)) 26 self.assertIsInstance(v.length, (int, long)) 27 self.assertEqual(v.location, 1) 28 self.assertEqual(v.length, 4) 29 30 self.assertEqual(NSMaxRange(v), 5) 31 self.assertResultIsBOOL(NSLocationInRange) 32 self.assertIs(NSLocationInRange(3, v), True) 33 self.assertIs(NSLocationInRange(15, v), False) 34 self.assertResultIsBOOL(NSEqualRanges) 35 self.assertIs(NSEqualRanges(v, v), True) 36 v = NSUnionRange((1, 3), (5, 10)) 37 self.assertIsInstance(v, NSRange) 38 39 v = NSIntersectionRange((1, 4), (3, 5)) 40 self.assertIsInstance(v, NSRange) 41 42 v = NSStringFromRange((9, 10)) 43 self.assertIsInstance(v, unicode) 44 45 w = NSRangeFromString(v) 46 self.assertIsInstance(w, NSRange) 47 self.assertEqual(w, (9, 10)) 48 49 self.assertResultHasType(NSValue.rangeValue, NSRange.__typestr__) 50 51if __name__ == "__main__": 52 main() 53