Files
OpenColorIO/tests/python/ViewTransformTest.py
T
Rémi AchardandPatrick Hodoul d5bf1e1b45 Python copy support (#1575)
* Add deepcopy support for object with createEditableCopy method

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Minor fixes

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Removing python shallow copy method

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Update comment and formating

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Testing COnfig FileRules deepCopy

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Add comment for ConfigTest

Signed-off-by: Rémi Achard <remiachard@gmail.com>

Co-authored-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2022-01-13 08:51:31 -05:00

162 lines
6.0 KiB
Python

# SPDX-License-Identifier: BSD-3-Clause
# Copyright Contributors to the OpenColorIO Project.
import copy, unittest, os, sys
import PyOpenColorIO as OCIO
class ViewTransformTest(unittest.TestCase):
def test_default_contructor(self):
"""
Test the constructor.
"""
for ref_type in OCIO.ReferenceSpaceType.__members__.values():
vt = OCIO.ViewTransform(ref_type)
self.assertEqual(vt.getReferenceSpaceType(), ref_type)
self.assertEqual(vt.getName(), '')
self.assertEqual(vt.getFamily(), '')
self.assertEqual(vt.getDescription(), '')
self.assertEqual(len(vt.getCategories()), 0)
for dir in OCIO.ViewTransformDirection.__members__.values():
self.assertEqual(vt.getTransform(dir), None)
vt = OCIO.ViewTransform()
self.assertEqual(vt.getReferenceSpaceType(), OCIO.REFERENCE_SPACE_SCENE)
vt = OCIO.ViewTransform(referenceSpace=OCIO.REFERENCE_SPACE_DISPLAY)
self.assertEqual(vt.getReferenceSpaceType(), OCIO.REFERENCE_SPACE_DISPLAY)
vt = OCIO.ViewTransform(name='test')
self.assertEqual(vt.getName(), 'test')
vt = OCIO.ViewTransform(family='family')
self.assertEqual(vt.getFamily(), 'family')
vt = OCIO.ViewTransform(description='description')
self.assertEqual(vt.getDescription(), 'description')
vt = OCIO.ViewTransform(categories=['cat1', 'cat2'])
cats = vt.getCategories()
self.assertEqual(len(cats), 2)
self.assertEqual(cats[0], 'cat1')
self.assertEqual(cats[1], 'cat2')
mat = OCIO.MatrixTransform()
vt = OCIO.ViewTransform(toReference=mat)
self.assertTrue(vt.getTransform(OCIO.VIEWTRANSFORM_DIR_TO_REFERENCE).equals(mat))
vt = OCIO.ViewTransform(fromReference=mat)
self.assertTrue(vt.getTransform(OCIO.VIEWTRANSFORM_DIR_FROM_REFERENCE).equals(mat))
def test_copy(self):
"""
Test the deepcopy() method.
"""
vt = OCIO.ViewTransform()
vt.setName('test name')
vt.setFamily('test family')
vt.setDescription('test description')
mat = OCIO.MatrixTransform()
vt.setTransform(mat, OCIO.VIEWTRANSFORM_DIR_TO_REFERENCE)
vt.setTransform(direction=OCIO.VIEWTRANSFORM_DIR_FROM_REFERENCE, transform=mat)
vt.addCategory('cat1')
other = copy.deepcopy(vt)
self.assertFalse(other is vt)
self.assertEqual(other.getName(), vt.getName())
self.assertEqual(other.getFamily(), vt.getFamily())
self.assertEqual(other.getDescription(), vt.getDescription())
self.assertTrue(other.getTransform(OCIO.VIEWTRANSFORM_DIR_TO_REFERENCE).equals(vt.getTransform(OCIO.VIEWTRANSFORM_DIR_TO_REFERENCE)))
self.assertTrue(other.getTransform(OCIO.VIEWTRANSFORM_DIR_FROM_REFERENCE).equals(vt.getTransform(OCIO.VIEWTRANSFORM_DIR_FROM_REFERENCE)))
self.assertEqual(list(other.getCategories()), list(vt.getCategories()))
def test_name(self):
"""
Test get/setName.
"""
vt = OCIO.ViewTransform()
self.assertEqual(vt.getName(), '')
vt.setName('test name')
self.assertEqual(vt.getName(), 'test name')
def test_family(self):
"""
Test get/setFamily.
"""
vt = OCIO.ViewTransform()
self.assertEqual(vt.getFamily(), '')
vt.setFamily('test family')
self.assertEqual(vt.getFamily(), 'test family')
def test_description(self):
"""
Test get/setDescription.
"""
vt = OCIO.ViewTransform()
self.assertEqual(vt.getDescription(), '')
vt.setDescription('test description')
self.assertEqual(vt.getDescription(), 'test description')
def test_transform(self):
"""
Test get/setTransform.
"""
vt = OCIO.ViewTransform()
self.assertEqual(vt.getTransform(OCIO.VIEWTRANSFORM_DIR_TO_REFERENCE), None)
self.assertEqual(vt.getTransform(OCIO.VIEWTRANSFORM_DIR_FROM_REFERENCE), None)
mat = OCIO.MatrixTransform()
vt.setTransform(mat, OCIO.VIEWTRANSFORM_DIR_TO_REFERENCE)
self.assertTrue(vt.getTransform(OCIO.VIEWTRANSFORM_DIR_TO_REFERENCE).equals(mat))
vt.setTransform(None, OCIO.VIEWTRANSFORM_DIR_TO_REFERENCE)
self.assertEqual(vt.getTransform(OCIO.VIEWTRANSFORM_DIR_TO_REFERENCE), None)
vt.setTransform(direction=OCIO.VIEWTRANSFORM_DIR_FROM_REFERENCE, transform=mat)
self.assertTrue(vt.getTransform(OCIO.VIEWTRANSFORM_DIR_FROM_REFERENCE).equals(mat))
vt.setTransform(transform=None, direction=OCIO.VIEWTRANSFORM_DIR_FROM_REFERENCE)
self.assertEqual(vt.getTransform(OCIO.VIEWTRANSFORM_DIR_FROM_REFERENCE), None)
def test_categories(self):
"""
Test hasCategory, addCategory, removeCategory, getCategories, and clearCategories.
"""
vt = OCIO.ViewTransform()
self.assertEqual(len(vt.getCategories()), 0)
vt.addCategory('cat1')
self.assertEqual(len(vt.getCategories()), 1)
self.assertEqual(vt.getCategories()[0], 'cat1')
self.assertTrue(vt.hasCategory('cat1'))
# Category is not case sensitive.
self.assertTrue(vt.hasCategory('cAt1'))
self.assertFalse(vt.hasCategory('cat2'))
vt.addCategory('cat1')
self.assertEqual(len(vt.getCategories()), 1)
vt.addCategory('CAT1')
self.assertEqual(len(vt.getCategories()), 1)
vt.addCategory('CAT2')
cats = vt.getCategories()
self.assertEqual(len(cats), 2)
# Original case is preserved.
self.assertEqual(cats[0], 'cat1')
self.assertEqual(cats[1], 'CAT2')
vt.removeCategory('cat3')
self.assertEqual(len(vt.getCategories()), 2)
vt.removeCategory('CAT1')
self.assertEqual(len(vt.getCategories()), 1)
vt.addCategory('CAT3')
vt.addCategory('CAT4')
self.assertEqual(len(vt.getCategories()), 3)
vt.clearCategories()
self.assertEqual(len(vt.getCategories()), 0)