1
2import unittest, os, sys
3sys.path.append(os.path.join(sys.argv[1], "src", "pyglue"))
4import PyOpenColorIO as OCIO
5
6class BakerTest(unittest.TestCase):
7
8    SIMPLE_PROFILE = """ocio_profile_version: 1
9
10strictparsing: false
11
12colorspaces:
13
14  - !<ColorSpace>
15    name: lnh
16    bitdepth: 16f
17    isdata: false
18    allocation: lg2
19
20  - !<ColorSpace>
21    name: test
22    bitdepth: 8ui
23    isdata: false
24    allocation: uniform
25    to_reference: !<ExponentTransform> {value: [2.2, 2.2, 2.2, 1]}"""
26
27    EXPECTED_LUT = """CSPLUTV100
283D
29
30BEGIN METADATA
31this is some metadata!
32END METADATA
33
344
350.000977 0.039373 1.587401 64.000000
360.000000 0.333333 0.666667 1.000000
374
380.000977 0.039373 1.587401 64.000000
390.000000 0.333333 0.666667 1.000000
404
410.000977 0.039373 1.587401 64.000000
420.000000 0.333333 0.666667 1.000000
43
442 2 2
450.042823 0.042823 0.042823
466.622026 0.042823 0.042823
470.042823 6.622026 0.042823
486.622026 6.622026 0.042823
490.042823 0.042823 6.622026
506.622026 0.042823 6.622026
510.042823 6.622026 6.622026
526.622026 6.622026 6.622026
53
54"""
55
56    def test_interface(self):
57        bake = OCIO.Baker()
58        bakee = bake.createEditableCopy()
59        cfg = OCIO.Config().CreateFromStream(self.SIMPLE_PROFILE)
60        self.assertEqual(2, cfg.getNumColorSpaces())
61        bakee.setConfig(cfg)
62        cfg2 = bakee.getConfig()
63        self.assertEqual(2, cfg2.getNumColorSpaces())
64        bakee.setFormat("cinespace")
65        self.assertEqual("cinespace", bakee.getFormat())
66        bakee.setType("3D")
67        self.assertEqual("3D", bakee.getType())
68        bakee.setMetadata("this is some metadata!")
69        self.assertEqual("this is some metadata!", bakee.getMetadata())
70        bakee.setInputSpace("lnh")
71        self.assertEqual("lnh", bakee.getInputSpace())
72        bakee.setLooks("foo, +bar")
73        self.assertEqual("foo, +bar", bakee.getLooks())
74        bakee.setLooks("")
75        bakee.setTargetSpace("test")
76        self.assertEqual("test", bakee.getTargetSpace())
77        bakee.setShaperSize(4)
78        self.assertEqual(4, bakee.getShaperSize())
79        bakee.setCubeSize(2)
80        self.assertEqual(2, bakee.getCubeSize())
81        output = bakee.bake()
82        self.assertEqual(self.EXPECTED_LUT, output)
83        self.assertEqual(6, bakee.getNumFormats())
84        self.assertEqual("cinespace", bakee.getFormatNameByIndex(2))
85        self.assertEqual("3dl", bakee.getFormatExtensionByIndex(1))
86