1from PyObjCTools.TestSupport import * 2 3from Foundation import * 4import Foundation 5 6 7class TestNSGeometry (TestCase): 8 def testConstants(self): 9 self.assertEquals(NSMinXEdge, 0) 10 self.assertEquals(NSMinYEdge, 1) 11 self.assertEquals(NSMaxXEdge, 2) 12 self.assertEquals(NSMaxYEdge, 3) 13 14 self.assertEquals(NSZeroPoint, NSPoint()) 15 self.assertEquals(NSZeroSize, NSSize()) 16 self.assertEquals(NSZeroRect, NSRect()) 17 18 def testInlines(self): 19 self.assertEquals(NSMakePoint(1, 2), NSPoint(1, 2)) 20 self.assertEquals(NSMakeSize(4, 5), NSSize(4, 5)) 21 self.assertEquals(NSMakeRect(1, 2, 3, 4), NSRect(NSPoint(1, 2), NSSize(3, 4))) 22 23 rect = NSRect(NSPoint(1,2), NSSize(4,6)) 24 self.assertEquals(NSMaxX(rect), 5) 25 self.assertEquals(NSMaxY(rect), 8) 26 self.assertEquals(NSMidX(rect), 3) 27 self.assertEquals(NSMidY(rect), 5) 28 self.assertEquals(NSMinX(rect), 1) 29 self.assertEquals(NSMinY(rect), 2) 30 self.assertEquals(NSWidth(rect), 4) 31 self.assertEquals(NSHeight(rect), 6) 32 33 # Cannot test these here, need to be tested in the Quartz unittests 34 self.failUnless(hasattr(Foundation, 'NSRectFromCGRect')) 35 self.failUnless(hasattr(Foundation, 'NSRectToCGRect')) 36 self.failUnless(hasattr(Foundation, 'NSPointFromCGPoint')) 37 self.failUnless(hasattr(Foundation, 'NSPointToCGPoint')) 38 self.failUnless(hasattr(Foundation, 'NSSizeFromCGSize')) 39 self.failUnless(hasattr(Foundation, 'NSSizeToCGSize')) 40 41 def testFunctions(self): 42 p1 = NSPoint(1, 2) 43 p2 = NSPoint(3, 4) 44 45 s1 = NSSize(4, 5) 46 s2 = NSSize(7, 8) 47 48 r0 = NSRect(NSPoint(9, 10), NSSize(0, 0)) 49 r1 = NSRect(NSPoint(0, 1), NSSize(4, 5)) 50 r2 = NSRect(NSPoint(4.5, 5.5), NSSize(7.5, 8.5)) 51 52 53 54 self.failUnless(NSEqualPoints(p1, p1) is True) 55 self.failUnless(NSEqualPoints(p1, p2) is False) 56 57 self.failUnless(NSEqualSizes(s1, s1) is True) 58 self.failUnless(NSEqualSizes(s1, s2) is False) 59 60 self.failUnless(NSEqualRects(r1, r1) is True) 61 self.failUnless(NSEqualRects(r1, r2) is False) 62 63 self.failUnless(NSIsEmptyRect(r0) is True) 64 self.failUnless(NSIsEmptyRect(r1) is False) 65 66 ra = NSInsetRect(r1, 2, 3) 67 self.assertEquals(ra, NSRect(NSPoint(2, 4), NSSize(0, -1))) 68 69 ra = NSIntegralRect(r2) 70 self.assertEquals(ra, NSRect(NSPoint(4, 5), NSSize(8, 9))) 71 72 ra = NSUnionRect(r1, r2) 73 self.assertEquals(ra, NSRect(NSPoint(0, 1), NSSize(12, 13))) 74 75 ra = NSIntersectionRect(r1, r2) 76 self.assertEquals(ra, NSRect(NSPoint(0, 0), NSSize(0, 0))) 77 78 ra = NSOffsetRect(r1, 5, 6) 79 self.assertEquals(ra, NSRect(NSPoint(5, 7), NSSize(4,5))) 80 81 slice, rem = NSDivideRect(r2, None, None, 1.5, NSMaxYEdge) 82 self.assertEquals(slice, NSRect(NSPoint(4.5, 12.5), NSSize(7.5, 1.5))) 83 self.assertEquals(rem, NSRect(NSPoint(4.5, 5.5), NSSize(7.5, 7.0))) 84 85 self.failUnless(NSPointInRect(p1, r1) is True) 86 self.failUnless(NSMouseInRect(p1, r1, False) is True) 87 self.failUnless(NSMouseInRect(p2, r2, True) is False) 88 89 self.failUnless(NSContainsRect(r1, r2) is False) 90 self.failUnless(NSIntersectsRect(r1, r2) is False) 91 92 self.assertEquals(NSStringFromPoint(p1), u'{1, 2}') 93 self.assertEquals(NSStringFromSize(s1), u'{4, 5}') 94 self.assertEquals(NSStringFromRect(r1), u'{{0, 1}, {4, 5}}') 95 v = NSPointFromString('{1, 2}') 96 self.assertEquals(v, p1) 97 v = NSSizeFromString('{4,5}') 98 self.assertEquals(v, s1) 99 v = NSRectFromString(u'{ {0,1} , { 4, 5}}') 100 self.assertEquals(v, r1) 101 102 def testValueMethods(self): 103 v = NSValue.valueWithPoint_(NSPoint(2, 3)) 104 w = v.pointValue() 105 self.failUnless(isinstance(w, NSPoint)) 106 self.assertEquals(w, (2,3)) 107 108 w = v.sizeValue() 109 self.failUnless(isinstance(w, NSSize)) 110 self.assertEquals(w, (2,3)) 111 112 v = NSValue.valueWithSize_(NSSize(9, 8)) 113 w = v.sizeValue() 114 self.failUnless(isinstance(w, NSSize)) 115 self.assertEquals(w, (9,8)) 116 117 v = NSValue.valueWithRect_(NSRect(NSPoint(9, 10), NSSize(11, 12))) 118 w = v.rectValue() 119 self.failUnless(isinstance(w, NSRect)) 120 self.assertEquals(w, ((9,10),(11,12))) 121 122 self.failUnlessArgHasType(NSValue.valueWithPoint_, 0, NSPoint.__typestr__) 123 self.failUnlessResultHasType(NSValue.pointValue, NSPoint.__typestr__) 124 self.failUnlessArgHasType(NSValue.valueWithSize_, 0, NSSize.__typestr__) 125 self.failUnlessResultHasType(NSValue.sizeValue, NSSize.__typestr__) 126 self.failUnlessArgHasType(NSValue.valueWithRect_, 0, NSRect.__typestr__) 127 self.failUnlessResultHasType(NSValue.rectValue, NSRect.__typestr__) 128 129 130 def testCoderMethods(self): 131 self.failUnlessArgHasType(NSCoder.encodePoint_, 0, NSPoint.__typestr__) 132 self.failUnlessResultHasType(NSCoder.decodePoint, NSPoint.__typestr__) 133 self.failUnlessArgHasType(NSCoder.encodeSize_, 0, NSSize.__typestr__) 134 self.failUnlessResultHasType(NSCoder.decodeSize, NSSize.__typestr__) 135 self.failUnlessArgHasType(NSCoder.encodeRect_, 0, NSRect.__typestr__) 136 self.failUnlessResultHasType(NSCoder.decodeRect, NSRect.__typestr__) 137 138 139if __name__ == "__main__": 140 main() 141