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