* Created a TransformsBaseTest module. Moving some unit testing of Transforms module to a base class. Signed-off-by: Mei Chu <meimchu@gmail.com> * Updated four transforms tests to use TransformsBaseTest. - AllocationTransformTest - BuiltinTranformTest - CDLTransformTest - ColorSpaceTransformTest Updated to add a space at the end of TransformBaseTest per feedback. Signed-off-by: Mei Chu <meimchu@gmail.com> * Updated four transforms tests to use TransformsBaseTest. - DisplayViewTransformTest - ExponentTransformTest - ExponentWithLinearTransformTest - ExposureContrastTransformTest - FileTransformTest - FixedFunctionTransformTest - LogTransformTest - LookTransformTest Signed-off-by: Mei Chu <meimchu@gmail.com> * Address feedback https://github.com/AcademySoftwareFoundation/OpenColorIO/pull/1288#discussion_r565265034 Signed-off-by: Mei Chu <meimchu@gmail.com> * Updated a few transforms unit tests with TransformsBaseTest. Signed-off-by: Mei Chu <meimchu@gmail.com> * Updated to prioritize setUp methods first in individual python unit tests. Signed-off-by: Mei Chu <meimchu@gmail.com> Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
116 lines
4.2 KiB
Python
116 lines
4.2 KiB
Python
# SPDX-License-Identifier: BSD-3-Clause
|
|
# Copyright Contributors to the OpenColorIO Project.
|
|
|
|
import unittest
|
|
|
|
import PyOpenColorIO as OCIO
|
|
from TransformsBaseTest import TransformsBaseTest
|
|
|
|
|
|
class AllocationTransformTest(unittest.TestCase, TransformsBaseTest):
|
|
TEST_ALLOCATION = OCIO.ALLOCATION_LG2
|
|
TEST_VARS = [0, 1]
|
|
TEST_DIRECTION = OCIO.TRANSFORM_DIR_INVERSE
|
|
|
|
def setUp(self):
|
|
self.tr = OCIO.AllocationTransform()
|
|
|
|
def test_transform_type(self):
|
|
"""
|
|
Test the getTransformType() method.
|
|
"""
|
|
self.assertEqual(self.tr.getTransformType(),
|
|
OCIO.TRANSFORM_TYPE_ALLOCATION)
|
|
|
|
def test_allocation(self):
|
|
"""
|
|
Test the setAllocation() and getAllocation() methods.
|
|
"""
|
|
|
|
# Default initialized allocation value is OCIO.ALLOCATION_UNIFORM
|
|
self.assertEqual(self.tr.getAllocation(), OCIO.ALLOCATION_UNIFORM)
|
|
|
|
for allocation in OCIO.Allocation.__members__.values():
|
|
self.tr.setAllocation(allocation)
|
|
self.assertEqual(self.tr.getAllocation(), allocation)
|
|
|
|
# Wrong type tests.
|
|
for invalid in (None, 1):
|
|
with self.assertRaises(TypeError):
|
|
self.tr.setAllocation(invalid)
|
|
|
|
def test_vars(self):
|
|
"""
|
|
Test the setVars() and getVars() methods.
|
|
"""
|
|
|
|
# Default initialized vars value is []
|
|
self.assertEqual(self.tr.getVars(), [])
|
|
|
|
vars_array = []
|
|
for i in range(1, 5):
|
|
# Appending 0.1... 0.4 to vars_array
|
|
vars_array.append(i/10)
|
|
|
|
# setVars() only take in array in length of 2 or 3.
|
|
if len(vars_array) < 2 or len(vars_array) > 3:
|
|
with self.assertRaises(OCIO.Exception):
|
|
self.tr.setVars(vars_array)
|
|
else:
|
|
self.tr.setVars(vars_array)
|
|
for i, var in enumerate(self.tr.getVars()):
|
|
self.assertAlmostEqual(vars_array[i], var, places=7)
|
|
|
|
# Wrong type tests.
|
|
for invalid in (None, 'hello'):
|
|
with self.assertRaises(TypeError):
|
|
self.tr.setVars(invalid)
|
|
|
|
def test_constructor_with_keyword(self):
|
|
"""
|
|
Test AllocationTransform constructor with keywords and validate its values.
|
|
"""
|
|
|
|
# With keywords in their proper order.
|
|
allo_tr = OCIO.AllocationTransform(allocation=self.TEST_ALLOCATION,
|
|
vars=self.TEST_VARS,
|
|
direction=self.TEST_DIRECTION)
|
|
|
|
self.assertEqual(allo_tr.getAllocation(), self.TEST_ALLOCATION)
|
|
for i, var in enumerate(allo_tr.getVars()):
|
|
self.assertAlmostEqual(self.TEST_VARS[i], var, places=7)
|
|
self.assertEqual(allo_tr.getDirection(), self.TEST_DIRECTION)
|
|
|
|
# With keywords not in their proper order.
|
|
allo_tr2 = OCIO.AllocationTransform(direction=self.TEST_DIRECTION,
|
|
allocation=self.TEST_ALLOCATION,
|
|
vars=self.TEST_VARS)
|
|
|
|
self.assertEqual(allo_tr2.getAllocation(), self.TEST_ALLOCATION)
|
|
for i, var in enumerate(allo_tr2.getVars()):
|
|
self.assertAlmostEqual(self.TEST_VARS[i], var, places=7)
|
|
self.assertEqual(allo_tr2.getDirection(), self.TEST_DIRECTION)
|
|
|
|
def test_constructor_with_positional(self):
|
|
"""
|
|
Test AllocationTransform constructor without keywords and validate its values.
|
|
"""
|
|
|
|
allo_tr = OCIO.AllocationTransform(self.TEST_ALLOCATION,
|
|
self.TEST_VARS,
|
|
self.TEST_DIRECTION)
|
|
|
|
self.assertEqual(allo_tr.getAllocation(), self.TEST_ALLOCATION)
|
|
for i, var in enumerate(allo_tr.getVars()):
|
|
self.assertAlmostEqual(self.TEST_VARS[i], var, places=7)
|
|
self.assertEqual(allo_tr.getDirection(), self.TEST_DIRECTION)
|
|
|
|
def test_constructor_wrong_parameter_type(self):
|
|
"""
|
|
Test AllocationTransform constructor with a wrong parameter type.
|
|
"""
|
|
|
|
for invalid in (None, 1):
|
|
with self.assertRaises(TypeError):
|
|
allo_tr = OCIO.AllocationTransform(invalid)
|