1# 2# Tests for the struct-wrappers for NSPoint, NSSize, NSRange and NSRect. 3# 4from Foundation import * 5from PyObjCTools.TestSupport import * 6import operator 7 8def do_set_slice(op, start, stop, value): 9 op[start:stop] = value 10 11def do_del_slice(op, start, stop): 12 del op[start:stop] 13 14class TestNSPoint (TestCase): 15 def testConstructor(self): 16 p = NSPoint() 17 self.assert_(isinstance(p, NSPoint)) 18 self.assertEqual(p.x, 0) 19 self.assertEqual(p.y, 0) 20 21 p = NSPoint(1,2) 22 self.assert_(isinstance(p, NSPoint)) 23 self.assertEqual(p.x, 1) 24 self.assertEqual(p.y, 2) 25 self.assertEqual(p[0], 1) 26 self.assertEqual(p[1], 2) 27 28 p = NSPoint(y=1,x=2) 29 self.assert_(isinstance(p, NSPoint)) 30 self.assertEqual(p.x, 2) 31 self.assertEqual(p.y, 1) 32 self.assertEqual(p[1], 1) 33 self.assertEqual(p[0], 2) 34 35 self.assertRaises(TypeError, NSPoint, 1, 2, 3) 36 self.assertRaises(TypeError, NSPoint, 1, 2, y=3) 37 self.assertRaises(TypeError, NSPoint, 1, x=3) 38 self.assertRaises(TypeError, NSPoint, x=3, z=4) 39 40 def testMakePoint(self): 41 p = NSMakePoint(1, 2) 42 self.assert_(isinstance(p, NSPoint)) 43 self.assertEqual(p.x, 1) 44 self.assertEqual(p.y, 2) 45 46 def testHash(self): 47 p = NSMakePoint(1, 2) 48 self.assertRaises(TypeError, hash, p) 49 50 def testCompare(self): 51 p = NSMakePoint(1, 2) 52 q = NSMakePoint(2, 3) 53 P = (1, 2) 54 Q = (2, 3) 55 56 self.assert_(not (p < p)) 57 self.assert_(not (p < P)) 58 self.assert_(p < q) 59 self.assert_(p < Q) 60 61 self.assert_(p <= p) 62 self.assert_(p <= P) 63 self.assert_(p <= q) 64 self.assert_(p <= Q) 65 66 self.assert_(p == p) 67 self.assert_(p == P) 68 self.assert_(not (p == q)) 69 self.assert_(not (p == Q)) 70 71 self.assert_(p != q) 72 self.assert_(p != Q) 73 self.assert_(not(p != p)) 74 self.assert_(not(p != P)) 75 76 self.assert_(q >= p) 77 self.assert_(q >= P) 78 self.assert_(q >= q) 79 self.assert_(q >= Q) 80 81 self.assert_(not (q > q)) 82 self.assert_(not (q > Q)) 83 self.assert_(q > p) 84 self.assert_(q > P) 85 86 def testRepr(self): 87 p = NSPoint() 88 self.assertEqual(repr(p), "<NSPoint x=0.0 y=0.0>") 89 90 p = NSPoint(42, 98) 91 self.assertEqual(repr(p), "<NSPoint x=42 y=98>") 92 93 p.x = p 94 self.assertEqual(repr(p), "<NSPoint x=<NSPoint ...> y=98>") 95 96 def testStr(self): 97 p = NSPoint() 98 self.assertEqual(str(p), "<NSPoint x=0.0 y=0.0>") 99 100 p = NSPoint(42, 98) 101 self.assertEqual(str(p), "<NSPoint x=42 y=98>") 102 103 p.x = p 104 self.assertEqual(repr(p), "<NSPoint x=<NSPoint ...> y=98>") 105 106 def testSlice(self): 107 p = NSPoint(1,2) 108 q = p[:] 109 110 self.assert_(isinstance(q, tuple)) 111 self.assertEqual(q, (1.0,2.0)) 112 113 def testDeleteAttr(self): 114 p = NSPoint(1,2) 115 self.assertRaises(TypeError, delattr, p, 'x') 116 117 def testDeleteSlice(self): 118 p = NSPoint(1,2) 119 self.assertRaises(TypeError, operator.delitem, p, 0) 120 121 def testAssignSlice(self): 122 p = NSPoint(1,2) 123 p[:] = (4,5) 124 125 self.assert_(isinstance(p, NSPoint)) 126 self.assertEqual(p.x, 4) 127 self.assertEqual(p.y, 5) 128 129 p[:] = p 130 self.assert_(isinstance(p, NSPoint)) 131 self.assertEqual(p.x, 4) 132 self.assertEqual(p.y, 5) 133 134 self.assertRaises(TypeError, do_set_slice, p, 0, 2, [1,2,3]) 135 self.assertRaises(TypeError, do_set_slice, p, 0, 2, [3]) 136 self.assertRaises(TypeError, do_set_slice, p, 0, 3, [1,2,3]) 137 138 self.assertRaises(TypeError, do_del_slice, p, 0, 0) 139 self.assertRaises(TypeError, do_del_slice, p, 0, 1) 140 self.assertRaises(TypeError, do_del_slice, p, 0, 2) 141 142class TestNSSize (TestCase): 143 def testConstructor(self): 144 p = NSSize() 145 self.assert_(isinstance(p, NSSize)) 146 self.assertEqual(p.width, 0) 147 self.assertEqual(p.height, 0) 148 149 p = NSSize(1,2) 150 self.assert_(isinstance(p, NSSize)) 151 self.assertEqual(p.width, 1) 152 self.assertEqual(p.height, 2) 153 self.assertEqual(p[0], 1) 154 self.assertEqual(p[1], 2) 155 156 p = NSSize(height=1,width=2) 157 self.assert_(isinstance(p, NSSize)) 158 self.assertEqual(p.width, 2) 159 self.assertEqual(p.height, 1) 160 self.assertEqual(p[1], 1) 161 self.assertEqual(p[0], 2) 162 163 self.assertRaises(TypeError, NSSize, 1, 2, 3) 164 self.assertRaises(TypeError, NSSize, 1, 2, height=3) 165 self.assertRaises(TypeError, NSSize, 1, width=3) 166 self.assertRaises(TypeError, NSSize, width=3, z=4) 167 168 def testMakeSize(self): 169 p = NSMakeSize(1, 2) 170 self.assert_(isinstance(p, NSSize)) 171 self.assertEqual(p.width, 1) 172 self.assertEqual(p.height, 2) 173 174class TestNSRange (TestCase): 175 def testConstructor(self): 176 p = NSRange() 177 self.assert_(isinstance(p, NSRange)) 178 self.assertEqual(p.location, 0) 179 self.assertEqual(p.length, 0) 180 181 p = NSRange(1,2) 182 self.assert_(isinstance(p, NSRange)) 183 self.assertEqual(p.location, 1) 184 self.assertEqual(p.length, 2) 185 self.assertEqual(p[0], 1) 186 self.assertEqual(p[1], 2) 187 188 p = NSRange(length=1,location=2) 189 self.assert_(isinstance(p, NSRange)) 190 self.assertEqual(p.location, 2) 191 self.assertEqual(p.length, 1) 192 self.assertEqual(p[1], 1) 193 self.assertEqual(p[0], 2) 194 195 self.assertRaises(TypeError, NSRange, 1, 2, 3) 196 self.assertRaises(TypeError, NSRange, 1, 2, length=3) 197 self.assertRaises(TypeError, NSRange, 1, location=3) 198 self.assertRaises(TypeError, NSRange, location=3, z=4) 199 200 def testMakeSize(self): 201 p = NSMakeSize(1, 2) 202 self.assert_(isinstance(p, NSSize)) 203 self.assertEqual(p.width, 1) 204 self.assertEqual(p.height, 2) 205 206class TestNSRect (TestCase): 207 def testConstructor(self): 208 p = NSRect() 209 self.assert_(isinstance(p, NSRect)) 210 self.assert_(p.origin is not None) 211 self.assert_(p.size is not None) 212 self.assertEqual(p.origin, NSPoint(0, 0)) 213 self.assertEqual(p.size, NSSize(0, 0)) 214 215 p = NSRect(1,2) 216 self.assert_(isinstance(p, NSRect)) 217 self.assertEqual(p.origin, 1) 218 self.assertEqual(p.size, 2) 219 self.assertEqual(p[0], 1) 220 self.assertEqual(p[1], 2) 221 222 p = NSRect(size=1,origin=2) 223 self.assert_(isinstance(p, NSRect)) 224 self.assertEqual(p.origin, 2) 225 self.assertEqual(p.size, 1) 226 self.assertEqual(p[1], 1) 227 self.assertEqual(p[0], 2) 228 229 self.assertRaises(TypeError, NSRect, 1, 2, 3) 230 self.assertRaises(TypeError, NSRect, 1, 2, origin=3) 231 self.assertRaises(TypeError, NSRect, 1, origin=3) 232 self.assertRaises(TypeError, NSRect, origin=3, z=4) 233 234 def testMakeRect(self): 235 p = NSMakeRect(1, 2, 3, 4) 236 self.assert_(isinstance(p, NSRect)) 237 self.assertEqual(p.origin, (1, 2)) 238 self.assertEqual(p.size, (3,4)) 239 self.assertEqual(p.origin.x, 1) 240 self.assertEqual(p.origin.y, 2) 241 self.assertEqual(p.size.width, 3) 242 self.assertEqual(p.size.height, 4) 243 244if __name__ == "__main__": 245 main() 246