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