| import numpy |
| import unittest |
|
|
| import collada |
| from collada.xmlutil import etree |
|
|
| fromstring = etree.fromstring |
| tostring = etree.tostring |
|
|
|
|
| class TestSource(unittest.TestCase): |
|
|
| def setUp(self): |
| self.dummy = collada.Collada(validate_output=True) |
|
|
| def test_float_source_saving(self): |
| floatsource = collada.source.FloatSource("myfloatsource", numpy.array([0.1, 0.2, 0.3]), ('X', 'Y', 'X')) |
| self.assertEqual(floatsource.id, "myfloatsource") |
| self.assertEqual(len(floatsource), 1) |
| self.assertTupleEqual(floatsource.components, ('X', 'Y', 'X')) |
| self.assertIsNotNone(str(floatsource)) |
| floatsource.id = "yourfloatsource" |
| floatsource.components = ('S', 'T') |
| floatsource.data = numpy.array([0.4, 0.5, 0.6, 0.7, 0.8, 0.9]) |
| floatsource.save() |
| loaded_floatsource = collada.source.Source.load(self.dummy, {}, fromstring(tostring(floatsource.xmlnode))) |
| self.assertTrue(isinstance(loaded_floatsource, collada.source.FloatSource)) |
| self.assertEqual(floatsource.id, "yourfloatsource") |
| self.assertEqual(len(floatsource), 3) |
| self.assertTupleEqual(floatsource.components, ('S', 'T')) |
|
|
| def test_idref_source_saving(self): |
| idrefsource = collada.source.IDRefSource("myidrefsource", |
| numpy.array(['Ref1', 'Ref2'], dtype=numpy.bytes_), |
| ('MORPH_TARGET',)) |
| self.assertEqual(idrefsource.id, "myidrefsource") |
| self.assertEqual(len(idrefsource), 2) |
| self.assertTupleEqual(idrefsource.components, ('MORPH_TARGET',)) |
| self.assertIsNotNone(str(idrefsource)) |
| idrefsource.id = "youridrefsource" |
| idrefsource.components = ('JOINT_TARGET', 'WHATEVER_TARGET') |
| idrefsource.data = numpy.array(['Ref5', 'Ref6', 'Ref7', 'Ref8', 'Ref9', 'Ref10'], dtype=numpy.bytes_) |
| idrefsource.save() |
| loaded_idrefsource = collada.source.Source.load(self.dummy, {}, fromstring(tostring(idrefsource.xmlnode))) |
| self.assertTrue(isinstance(loaded_idrefsource, collada.source.IDRefSource)) |
| self.assertEqual(loaded_idrefsource.id, "youridrefsource") |
| self.assertEqual(len(loaded_idrefsource), 3) |
| self.assertTupleEqual(loaded_idrefsource.components, ('JOINT_TARGET', 'WHATEVER_TARGET')) |
|
|
| def test_name_source_saving(self): |
| namesource = collada.source.NameSource("mynamesource", |
| numpy.array(['Name1', 'Name2'], dtype=numpy.bytes_), |
| ('JOINT',)) |
| self.assertEqual(namesource.id, "mynamesource") |
| self.assertEqual(len(namesource), 2) |
| self.assertTupleEqual(namesource.components, ('JOINT',)) |
| self.assertIsNotNone(str(namesource)) |
| namesource.id = "yournamesource" |
| namesource.components = ('WEIGHT', 'WHATEVER') |
| namesource.data = numpy.array(['Name1', 'Name2', 'Name3', 'Name4', 'Name5', 'Name6'], dtype=numpy.bytes_) |
| namesource.save() |
| loaded_namesource = collada.source.Source.load(self.dummy, {}, fromstring(tostring(namesource.xmlnode))) |
| self.assertTrue(isinstance(loaded_namesource, collada.source.NameSource)) |
| self.assertEqual(loaded_namesource.id, "yournamesource") |
| self.assertEqual(len(loaded_namesource), 3) |
| self.assertTupleEqual(loaded_namesource.components, ('WEIGHT', 'WHATEVER')) |
|
|
|
|
| if __name__ == '__main__': |
| unittest.main() |
|
|