1 2from PyObjCTools.TestSupport import * 3from Quartz.CoreGraphics import * 4 5class TestCGAffineTransform (TestCase): 6 def testStruct(self): 7 v = CGAffineTransform() 8 self.assertTrue(hasattr(v, "a")) 9 self.assertTrue(hasattr(v, "b")) 10 self.assertTrue(hasattr(v, "c")) 11 self.assertTrue(hasattr(v, "d")) 12 self.assertTrue(hasattr(v, "tx")) 13 self.assertTrue(hasattr(v, "ty")) 14 15 def testConstants(self): 16 self.assertIsInstance(CGAffineTransformIdentity, CGAffineTransform) 17 self.assertIsInstance(CGAffineTransformIdentity.a, float) 18 self.assertIsInstance(CGAffineTransformIdentity.b, float) 19 self.assertIsInstance(CGAffineTransformIdentity.c, float) 20 self.assertIsInstance(CGAffineTransformIdentity.d, float) 21 self.assertIsInstance(CGAffineTransformIdentity.tx, float) 22 self.assertIsInstance(CGAffineTransformIdentity.ty, float) 23 24 def testFunctions(self): 25 tf = CGAffineTransformMake(1.5, 2.5, 3.5, 4.5, 5.5, 6.5) 26 self.assertIsInstance(tf, CGAffineTransform) 27 self.assertEqual(tf.a, 1.5) 28 self.assertEqual(tf.b, 2.5) 29 self.assertEqual(tf.c, 3.5) 30 self.assertEqual(tf.d, 4.5) 31 self.assertEqual(tf.tx, 5.5) 32 self.assertEqual(tf.ty, 6.5) 33 34 tf = CGAffineTransformMakeTranslation(2.5, 3.5) 35 self.assertIsInstance(tf, CGAffineTransform) 36 self.assertEqual(tf.a, 1.0) 37 self.assertEqual(tf.b, 0.0) 38 self.assertEqual(tf.c, 0.0) 39 self.assertEqual(tf.d, 1.0) 40 self.assertEqual(tf.tx, 2.5) 41 self.assertEqual(tf.ty, 3.5) 42 43 tf = CGAffineTransformMakeScale(2.5, 3.5) 44 self.assertIsInstance(tf, CGAffineTransform) 45 self.assertEqual(tf.a, 2.5) 46 self.assertEqual(tf.b, 0.0) 47 self.assertEqual(tf.c, 0.0) 48 self.assertEqual(tf.d, 3.5) 49 self.assertEqual(tf.tx, 0.0) 50 self.assertEqual(tf.ty, 0.0) 51 52 tf = CGAffineTransformMakeRotation(3.4) 53 self.assertIsInstance(tf, CGAffineTransform) 54 55 self.assertResultHasType(CGAffineTransformIsIdentity, objc._C_BOOL) 56 self.assertTrue(CGAffineTransformIsIdentity(tf) is False) 57 self.assertTrue(CGAffineTransformIsIdentity(CGAffineTransformIdentity) is True) 58 59 tf = CGAffineTransformTranslate(tf, 2.5, 3.5) 60 self.assertIsInstance(tf, CGAffineTransform) 61 62 tf = CGAffineTransformScale(tf, 5.5, 9.5) 63 self.assertIsInstance(tf, CGAffineTransform) 64 65 tf = CGAffineTransformRotate(tf, 0.8) 66 self.assertIsInstance(tf, CGAffineTransform) 67 68 tf = CGAffineTransformInvert(tf) 69 self.assertIsInstance(tf, CGAffineTransform) 70 71 tf2 = CGAffineTransformConcat(tf, 72 CGAffineTransformMake(1.0, 1.0, 1.0, 1.0, 1.0, 1.0)) 73 self.assertIsInstance(tf2, CGAffineTransform) 74 75 self.assertResultHasType(CGAffineTransformEqualToTransform, objc._C_BOOL) 76 self.assertTrue(CGAffineTransformEqualToTransform(tf, tf2) is False) 77 self.assertTrue(CGAffineTransformEqualToTransform(tf2, tf2) is True) 78 79 pt = CGPointApplyAffineTransform((2.5, 3.5), tf) 80 self.assertIsInstance(pt, CGPoint) 81 82 sz = CGSizeApplyAffineTransform((2.5, 3.5), tf) 83 self.assertIsInstance(sz, CGSize) 84 85 rct = CGRectApplyAffineTransform(((2.5, 3.5), (4.5, 5.5)), tf) 86 self.assertIsInstance(rct, CGRect) 87 88if __name__ == "__main__": 89 main() 90