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.assertEquals(p.m11, 0) 13 self.assertEquals(p.m12, 0) 14 self.assertEquals(p.m21, 0) 15 self.assertEquals(p.m22, 0) 16 self.assertEquals(p.tX, 0) 17 self.assertEquals(p.tY, 0) 18 19 p = NSAffineTransformStruct(1,2, 3, 4, 5, 6) 20 self.assert_(isinstance(p, NSAffineTransformStruct)) 21 self.assertEquals(p.m11, 1) 22 self.assertEquals(p.m12, 2) 23 self.assertEquals(p.m21, 3) 24 self.assertEquals(p.m22, 4) 25 self.assertEquals(p.tX, 5) 26 self.assertEquals(p.tY, 6) 27 self.assertEquals(p[0], 1) 28 self.assertEquals(p[1], 2) 29 self.assertEquals(p[2], 3) 30 self.assertEquals(p[3], 4) 31 self.assertEquals(p[4], 5) 32 self.assertEquals(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.assertEquals(p.m11, 6) 37 self.assertEquals(p.m12, 5) 38 self.assertEquals(p.m21, 4) 39 self.assertEquals(p.m22, 3) 40 self.assertEquals(p.tX, 2) 41 self.assertEquals(p.tY, 1) 42 self.assertEquals(p[0], 6) 43 self.assertEquals(p[1], 5) 44 self.assertEquals(p[2], 4) 45 self.assertEquals(p[3], 3) 46 self.assertEquals(p[4], 2) 47 self.assertEquals(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.assertEquals(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.assertEquals(repr(p), "<NSAffineTransformStruct m11=1 m12=2 m21=3 m22=4 tX=5 tY=6>") 107 108 p.tX = p 109 self.assertEquals(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.assertEquals(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.assertEquals(str(p), "<NSAffineTransformStruct m11=1 m12=2 m21=3 m22=4 tX=5 tY=6>") 117 118 p.tX = p 119 self.assertEquals(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.assertEquals(q, (1.0,2.0,3.0,4.0,5.0,6.0)) 127 128 def testDeleteSlice(self): 129 p = NSAffineTransformStruct(1,2) 130 self.assertRaises(TypeError, operator.delitem, p, 0) 131 self.assertRaises(TypeError, operator.delslice, p, 0, 3) 132 133 def testAssignSlice(self): 134 p = NSAffineTransformStruct(1,2,3,4,5,6) 135 p[:] = (4,5,6,7,8,9) 136 137 self.assert_(isinstance(p, NSAffineTransformStruct)) 138 self.assertEquals(p.m11, 4) 139 self.assertEquals(p.m12, 5) 140 self.assertEquals(p.m21, 6) 141 self.assertEquals(p.m22, 7) 142 self.assertEquals(p.tX, 8) 143 self.assertEquals(p.tY, 9) 144 145 p[:] = p 146 self.assert_(isinstance(p, NSAffineTransformStruct)) 147 self.assertEquals(p.m11, 4) 148 self.assertEquals(p.m12, 5) 149 self.assertEquals(p.m21, 6) 150 self.assertEquals(p.m22, 7) 151 self.assertEquals(p.tX, 8) 152 self.assertEquals(p.tY, 9) 153 154 p[1:4] = range(3) 155 self.assertEquals(p.m11, 4) 156 self.assertEquals(p.m12, 0) 157 self.assertEquals(p.m21, 1) 158 self.assertEquals(p.m22, 2) 159 self.assertEquals(p.tX, 8) 160 self.assertEquals(p.tY, 9) 161 162 self.assertRaises(TypeError, operator.setslice, p, 0, 2, [1,2,3]) 163 self.assertRaises(TypeError, operator.setslice, p, 0, 2, [3]) 164 165 self.assertRaises(TypeError, operator.delslice, p, 0, 0) 166 self.assertRaises(TypeError, operator.delslice, p, 0, 1) 167 self.assertRaises(TypeError, operator.delslice, p, 0, 2) 168 169 170class TestAffineTransform (TestCase): 171 def testStructReturn (self): 172 transform = NSAffineTransform.transform() 173 s = transform.transformStruct() 174 self.failUnless(isinstance(s, NSAffineTransformStruct)) 175 176 s = NSAffineTransformStruct(0, 1, 2, 3, 4, 5) 177 transform.setTransformStruct_(s) 178 179 t = transform.transformStruct() 180 self.failUnless(isinstance(t, NSAffineTransformStruct)) 181 self.assertEquals(s, t) 182 183 184 185if __name__ == "__main__": 186 main() 187