1
2from PyObjCTools.TestSupport import *
3from Quartz.CoreGraphics import *
4
5class TestCGShading (TestCase):
6    def testTypes(self):
7        self.assertIsCFType(CGShadingRef)
8
9    def testFunctions(self):
10        self.assertIsInstance(CGShadingGetTypeID(), (int, long))
11
12        values = []
13        def evaluate(info, input, output):
14            values.append(input)
15            return input * 4
16
17        self.assertIsInstance(CGFunctionGetTypeID(), (int, long))
18
19        myInfo = object()
20        func = CGFunctionCreate(myInfo, 1, [0, 1], 4, [0, 1, 0, 1, 0, 1, 0, 1], evaluate)
21        self.assertIsInstance(func, CGFunctionRef)
22
23
24        self.assertResultIsCFRetained(CGShadingCreateAxial)
25        self.assertArgHasType(CGShadingCreateAxial, 4, objc._C_BOOL)
26        self.assertArgHasType(CGShadingCreateAxial, 5, objc._C_BOOL)
27        shading = CGShadingCreateAxial(
28                CGColorSpaceCreateDeviceRGB(), CGPoint(0, 0), CGPoint(50, 200),
29                func, False, False)
30        self.assertIsInstance(shading, CGShadingRef)
31
32        self.assertResultIsCFRetained(CGShadingCreateRadial)
33        self.assertArgHasType(CGShadingCreateRadial, 6, objc._C_BOOL)
34        self.assertArgHasType(CGShadingCreateRadial, 7, objc._C_BOOL)
35        shading = CGShadingCreateRadial(
36                CGColorSpaceCreateDeviceRGB(), CGPoint(0, 0), 5.0,
37                CGPoint(50, 200), 10.5, func, False, False)
38        self.assertIsInstance(shading, CGShadingRef)
39
40        v = CGShadingRetain(shading)
41        self.assertTrue(v is shading)
42
43        CGShadingRelease(shading)
44
45
46
47
48if __name__ == "__main__":
49    main()
50