(self, mjcf_element,
expected_values=None, recursive=False)
| 100 | self._test_properties(mujoco, parent=None, root=mujoco, recursive=True) |
| 101 | |
| 102 | def _test_attributes(self, mjcf_element, |
| 103 | expected_values=None, recursive=False): |
| 104 | attributes = mjcf_element.get_attributes() |
| 105 | self.assertNotIn('class', attributes) |
| 106 | for attribute_name in mjcf_element.spec.attributes.keys(): |
| 107 | if attribute_name == 'class': |
| 108 | attribute_name = 'dclass' |
| 109 | self.assertHasAttr(mjcf_element, attribute_name) |
| 110 | self.assertIn(attribute_name, dir(mjcf_element)) |
| 111 | attribute_value = getattr(mjcf_element, attribute_name) |
| 112 | if attribute_value is not None: |
| 113 | self.assertIn(attribute_name, attributes) |
| 114 | else: |
| 115 | self.assertNotIn(attribute_name, attributes) |
| 116 | if expected_values: |
| 117 | if attribute_name in expected_values: |
| 118 | expected_value = expected_values[attribute_name] |
| 119 | np.testing.assert_array_equal(attribute_value, expected_value) |
| 120 | else: |
| 121 | self.assertIsNone(attribute_value) |
| 122 | if recursive: |
| 123 | for child in mjcf_element.all_children(): |
| 124 | self._test_attributes(child, recursive=True) |
| 125 | |
| 126 | def testAttributes(self): |
| 127 | mujoco = element.RootElement(model='test') |
no test coverage detected