1# 2# Tests for the struct-wrapper for NSAffineTransformStruct 3# 4from Foundation import * 5from PyObjCTools.TestSupport import * 6import operator 7 8class TestNSAffineTransformStruct (TestCase): 9 def testConstructor(self): 10 p = NSAffineTransformStruct() 11 self.assert_(isinstance(p, NSAffineTransformStruct)) 12 self.assertEqual(p.m11, 0) 13 self.assertEqual(p.m12, 0) 14 self.assertEqual(p.m21, 0) 15 self.assertEqual(p.m22, 0) 16 self.assertEqual(p.tX, 0) 17 self.assertEqual(p.tY, 0) 18 19 p = NSAffineTransformStruct(1,2, 3, 4, 5, 6) 20 self.assert_(isinstance(p, NSAffineTransformStruct)) 21 self.assertEqual(p.m11, 1) 22 self.assertEqual(p.m12, 2) 23 self.assertEqual(p.m21, 3) 24 self.assertEqual(p.m22, 4) 25 self.assertEqual(p.tX, 5) 26 self.assertEqual(p.tY, 6) 27 self.assertEqual(p[0], 1) 28 self.assertEqual(p[1], 2) 29 self.assertEqual(p[2], 3) 30 self.assertEqual(p[3], 4) 31 self.assertEqual(p[4], 5) 32 self.assertEqual(p[5], 6) 33 34 p = NSAffineTransformStruct(tY=1,tX=2, m22=3, m21=4, m12=5, m11=6) 35 self.assert_(isinstance(p, NSAffineTransformStruct)) 36 self.assertEqual(p.m11, 6) 37 self.assertEqual(p.m12, 5) 38 self.assertEqual(p.m21, 4) 39 self.assertEqual(p.m22, 3) 40 self.assertEqual(p.tX, 2) 41 self.assertEqual(p.tY, 1) 42 self.assertEqual(p[0], 6) 43 self.assertEqual(p[1], 5) 44 self.assertEqual(p[2], 4) 45 self.assertEqual(p[3], 3) 46 self.assertEqual(p[4], 2) 47 self.assertEqual(p[5], 1) 48 49 self.assertRaises(TypeError, NSAffineTransformStruct, 1, 2, 3, 4, 5, 6, 7, 8) 50 self.assertRaises(TypeError, NSAffineTransformStruct, 1, 2, 3, 4, 5, 6, tY=3) 51 self.assertRaises(TypeError, NSAffineTransformStruct, 1, 2, 3, 4, 5, m11=3) 52 self.assertRaises(TypeError, NSAffineTransformStruct, m11=3, mXY=4) 53 54 def testHash(self): 55 p = NSAffineTransformStruct() 56 self.assertRaises(TypeError, hash, p) 57 58 def testCompare(self): 59 p = NSAffineTransformStruct(1, 2, 3, 4, 5, 6) 60 q = NSAffineTransformStruct(1, 2, 3, 4, 5, 7) 61 P = (1, 2, 3, 4, 5, 6) 62 Q = (1, 2, 3, 4, 5, 7) 63 64 self.assert_(not (p == P[:4])) 65 self.assert_((p != P[:4])) 66 self.assert_(not (p <= P[:4])) 67 self.assert_(not (p < P[:4])) 68 self.assert_((p > P[:4])) 69 self.assert_((p >= P[:4])) 70 71 self.assert_(not (p < p)) 72 self.assert_(not (p < P)) 73 self.assert_(p < q) 74 self.assert_(p < Q) 75 76 self.assert_(p <= p) 77 self.assert_(p <= P) 78 self.assert_(p <= q) 79 self.assert_(p <= Q) 80 81 self.assert_(p == p) 82 self.assert_(p == P) 83 self.assert_(not (p == q)) 84 self.assert_(not (p == Q)) 85 86 self.assert_(p != q) 87 self.assert_(p != Q) 88 self.assert_(not(p != p)) 89 self.assert_(not(p != P)) 90 91 self.assert_(q >= p) 92 self.assert_(q >= P) 93 self.assert_(q >= q) 94 self.assert_(q >= Q) 95 96 self.assert_(not (q > q)) 97 self.assert_(not (q > Q)) 98 self.assert_(q > p) 99 self.assert_(q > P) 100 101 def testRepr(self): 102 p = NSAffineTransformStruct() 103 self.assertEqual(repr(p), "<NSAffineTransformStruct m11=0.0 m12=0.0 m21=0.0 m22=0.0 tX=0.0 tY=0.0>") 104 105 p = NSAffineTransformStruct(1, 2, 3, 4, 5, 6) 106 self.assertEqual(repr(p), "<NSAffineTransformStruct m11=1 m12=2 m21=3 m22=4 tX=5 tY=6>") 107 108 p.tX = p 109 self.assertEqual(repr(p), "<NSAffineTransformStruct m11=1 m12=2 m21=3 m22=4 tX=<NSAffineTransformStruct ...> tY=6>") 110 111 def testStr(self): 112 p = NSAffineTransformStruct() 113 self.assertEqual(str(p), "<NSAffineTransformStruct m11=0.0 m12=0.0 m21=0.0 m22=0.0 tX=0.0 tY=0.0>") 114 115 p = NSAffineTransformStruct(1, 2, 3, 4, 5, 6) 116 self.assertEqual(str(p), "<NSAffineTransformStruct m11=1 m12=2 m21=3 m22=4 tX=5 tY=6>") 117 118 p.tX = p 119 self.assertEqual(str(p), "<NSAffineTransformStruct m11=1 m12=2 m21=3 m22=4 tX=<NSAffineTransformStruct ...> tY=6>") 120 121 def testSlice(self): 122 p = NSAffineTransformStruct(1,2,3,4,5,6) 123 q = p[:] 124 125 self.assert_(isinstance(q, tuple)) 126 self.assertEqual(q, (1.0,2.0,3.0,4.0,5.0,6.0)) 127 128 def testDeleteSlice(self): 129 p = NSAffineTransformStruct(1,2) 130 131 def delslice(o, b, e): 132 del o[b:e] 133 134 self.assertRaises(TypeError, operator.delitem, p, 0) 135 self.assertRaises(TypeError, delslice, p, 0, 3) 136 137 def testAssignSlice(self): 138 p = NSAffineTransformStruct(1,2,3,4,5,6) 139 p[:] = (4,5,6,7,8,9) 140 141 self.assert_(isinstance(p, NSAffineTransformStruct)) 142 self.assertEqual(p.m11, 4) 143 self.assertEqual(p.m12, 5) 144 self.assertEqual(p.m21, 6) 145 self.assertEqual(p.m22, 7) 146 self.assertEqual(p.tX, 8) 147 self.assertEqual(p.tY, 9) 148 149 p[:] = p 150 self.assert_(isinstance(p, NSAffineTransformStruct)) 151 self.assertEqual(p.m11, 4) 152 self.assertEqual(p.m12, 5) 153 self.assertEqual(p.m21, 6) 154 self.assertEqual(p.m22, 7) 155 self.assertEqual(p.tX, 8) 156 self.assertEqual(p.tY, 9) 157 158 p[1:4] = range(3) 159 self.assertEqual(p.m11, 4) 160 self.assertEqual(p.m12, 0) 161 self.assertEqual(p.m21, 1) 162 self.assertEqual(p.m22, 2) 163 self.assertEqual(p.tX, 8) 164 self.assertEqual(p.tY, 9) 165 166 def setslice(o, b, e, v): 167 o[b:e] = v 168 169 def delslice(o, b, e): 170 del o[b:e] 171 172 self.assertRaises(TypeError, setslice, p, 0, 2, [1,2,3]) 173 self.assertRaises(TypeError, setslice, p, 0, 2, [3]) 174 175 self.assertRaises(TypeError, delslice, p, 0, 0) 176 self.assertRaises(TypeError, delslice, p, 0, 1) 177 self.assertRaises(TypeError, delslice, p, 0, 2) 178 179 180class TestAffineTransform (TestCase): 181 def testStructReturn (self): 182 transform = NSAffineTransform.transform() 183 s = transform.transformStruct() 184 self.assertIsInstance(s, NSAffineTransformStruct) 185 s = NSAffineTransformStruct(0, 1, 2, 3, 4, 5) 186 transform.setTransformStruct_(s) 187 188 t = transform.transformStruct() 189 self.assertIsInstance(t, NSAffineTransformStruct) 190 self.assertEqual(s, t) 191 192 v = transform.transformPoint_((1,1)) 193 self.assertIsInstance(v, NSPoint) 194 195 v = transform.transformSize_((1,1)) 196 self.assertIsInstance(v, NSSize) 197 198 199 200 201if __name__ == "__main__": 202 main() 203