Download external/pyrep/tests/test_objects.py from lsnu/VLAdaptorBench: direct link, hf CLI and curl.
- Browser
- Download file 11.9 kB
-
https://huggingface.co/lsnu/VLAdaptorBench/resolve/cd265468967fd6bb40591e7532e98dcdc4e2baec/external/pyrep/tests/test_objects.py
- Command line
-
hf download hf://lsnu/VLAdaptorBench@cd265468967fd6bb40591e7532e98dcdc4e2baec/external/pyrep/tests/test_objects.py
-
curl -L -o test_objects.py https://huggingface.co/lsnu/VLAdaptorBench/resolve/cd265468967fd6bb40591e7532e98dcdc4e2baec/external/pyrep/tests/test_objects.py
11.9 kB
| import unittest | |
| from pyrep.const import ObjectType | |
| from tests.core import TestCore | |
| from pyrep.objects.shape import Shape | |
| from pyrep.objects.dummy import Dummy | |
| from pyrep.objects.object import Object | |
| from pyrep.objects.vision_sensor import VisionSensor | |
| import numpy as np | |
| class TestObjects(TestCore): | |
| def setUp(self): | |
| super().setUp() | |
| self.dynamic_cube = Shape('dynamic_cube') | |
| self.cubes_under_dummy = Dummy('cubes_under_dummy') | |
| self.cube0 = Shape('cube0') | |
| self.dummy = Dummy('dummy') | |
| self.simple_model = Shape('simple_model') | |
| def test_get_object_type(self): | |
| self.assertEqual(Object.get_object_type('dynamic_cube'), | |
| ObjectType.SHAPE) | |
| self.assertEqual(Object.get_object_type('dummy'), | |
| ObjectType.DUMMY) | |
| def test_get_object_name(self): | |
| self.assertEqual(Object.get_object_name('dynamic_cube'), | |
| 'dynamic_cube') | |
| self.assertEqual( | |
| Object.get_object_name(self.dynamic_cube.get_handle()), | |
| 'dynamic_cube') | |
| def test_get_object(self): | |
| self.assertEqual(Object.get_object('dynamic_cube'), | |
| self.dynamic_cube) | |
| self.assertEqual(Object.get_object('dummy'), | |
| self.dummy) | |
| self.assertEqual(Object.get_object(self.dynamic_cube.get_handle()), | |
| self.dynamic_cube) | |
| self.assertEqual(Object.get_object(self.dummy.get_handle()), | |
| self.dummy) | |
| def test_equality(self): | |
| cube2 = Shape('dynamic_cube') | |
| self.assertEqual(self.dynamic_cube, cube2) | |
| def test_get_handle(self): | |
| self.assertGreater(self.dynamic_cube.get_handle(), 0) | |
| def test_get_type(self): | |
| self.assertEqual(self.dynamic_cube.get_type(), ObjectType.SHAPE) | |
| def test_still_exists(self): | |
| self.assertTrue(self.dynamic_cube.still_exists()) | |
| self.dynamic_cube.remove() | |
| self.assertFalse(self.dynamic_cube.still_exists()) | |
| def test_object_exists(self): | |
| yes = Object.exists('dynamic_cube') | |
| no = Object.exists('dynamic_cubeee') | |
| self.assertTrue(yes) | |
| self.assertFalse(no) | |
| def test_get_set_name(self): | |
| self.dynamic_cube.set_name('test1') | |
| self.assertEqual(self.dynamic_cube.get_name(), 'test1') | |
| def test_get_set_position(self): | |
| position = self.cube0.get_position() | |
| self.assertIsInstance(position, np.ndarray) | |
| self.assertEqual(position.shape, (3,)) | |
| self.cube0.set_position([0.1, 0.1, 0.1], self.cubes_under_dummy) | |
| self.assertTrue(np.allclose( | |
| self.cube0.get_position(self.cubes_under_dummy), [0.1, 0.1, 0.1])) | |
| self.cube0.set_position([0.2, 0.2, 0.2]) | |
| self.assertTrue(np.allclose(self.cube0.get_position(), [0.2, 0.2, 0.2])) | |
| def test_get_set_orientation(self): | |
| orientation = self.cube0.get_orientation() | |
| self.assertIsInstance(orientation, np.ndarray) | |
| self.assertEqual(orientation.shape, (3,)) | |
| self.cube0.set_orientation([0.0, 0.0, 0.2], self.cubes_under_dummy) | |
| self.assertTrue(np.allclose( | |
| self.cube0.get_orientation(self.cubes_under_dummy), | |
| [0.0, 0.0, 0.2])) | |
| self.cube0.set_orientation([0.0, 0.0, 0.3]) | |
| self.assertTrue(np.allclose( | |
| self.cube0.get_orientation(), [0.0, 0.0, 0.3])) | |
| def test_get_set_quaternion(self): | |
| quaternion = self.cube0.get_quaternion() | |
| self.assertIsInstance(quaternion, np.ndarray) | |
| self.assertEqual(quaternion.shape, (4,)) | |
| # x, y, z, w | |
| self.cube0.set_quaternion([1., 0., 0., 0.], self.cubes_under_dummy) | |
| self.assertTrue(np.allclose( | |
| self.cube0.get_quaternion(self.cubes_under_dummy), | |
| [1., 0., 0., 0.])) | |
| self.cube0.set_quaternion([np.sqrt(0.5), 0, 0., np.sqrt(0.5)]) | |
| self.assertTrue(np.allclose( | |
| self.cube0.get_quaternion(), | |
| [np.sqrt(0.5), 0, 0., np.sqrt(0.5)])) | |
| def test_get_velocity(self): | |
| linear_vel, angular_vel = self.cube0.get_velocity() | |
| self.assertIsInstance(linear_vel, np.ndarray) | |
| self.assertEqual(linear_vel.shape, (3,)) | |
| self.assertIsInstance(angular_vel, np.ndarray) | |
| self.assertEqual(angular_vel.shape, (3,)) | |
| def test_get_set_parent(self): | |
| self.dynamic_cube.set_parent(self.dummy) | |
| parent = self.dynamic_cube.get_parent() | |
| self.assertEqual(parent, self.dummy) | |
| def test_get_set_parent_not_in_place(self): | |
| init_pos = self.dynamic_cube.get_position() | |
| self.dynamic_cube.set_parent(self.dummy, keep_in_place=False) | |
| parent = self.dynamic_cube.get_parent() | |
| self.assertEqual(parent, self.dummy) | |
| self.assertFalse(np.allclose( | |
| init_pos, self.dynamic_cube.get_position())) | |
| def test_get_parent_when_orphan(self): | |
| parent = self.dummy.get_parent() | |
| self.assertIsNone(parent) | |
| def test_get_set_matrix(self): | |
| m = self.dynamic_cube.get_matrix() | |
| self.assertEqual(m.shape, (4, 4)) | |
| self.simple_model.set_matrix(m) | |
| self.assertListEqual(self.simple_model.get_matrix().tolist(), m.tolist()) | |
| def test_get_set_collidable(self): | |
| self.dynamic_cube.set_collidable(False) | |
| self.assertFalse(self.dynamic_cube.is_collidable()) | |
| self.dynamic_cube.set_collidable(True) | |
| self.assertTrue(self.dynamic_cube.is_collidable()) | |
| def test_get_contact(self): | |
| contact = self.dynamic_cube.get_contact(self.simple_model, get_contact_normal=True) | |
| self.assertTrue(len(contact) == 0) | |
| for _ in range(20): | |
| self.pyrep.step() | |
| c1 = Shape('colliding_cube1') | |
| c0 = Shape('colliding_cube0') | |
| contact = c1.get_contact(None, True) | |
| self.assertTrue(len(contact) > 0) | |
| contact = c0.get_contact(None, True) | |
| self.assertTrue(len(contact) > 0) | |
| def test_get_set_measurable(self): | |
| self.dynamic_cube.set_measurable(False) | |
| self.assertFalse(self.dynamic_cube.is_measurable()) | |
| self.dynamic_cube.set_measurable(True) | |
| self.assertTrue(self.dynamic_cube.is_measurable()) | |
| def test_get_set_detectable(self): | |
| self.dynamic_cube.set_detectable(False) | |
| self.assertFalse(self.dynamic_cube.is_detectable()) | |
| self.dynamic_cube.set_detectable(True) | |
| self.assertTrue(self.dynamic_cube.is_detectable()) | |
| def test_get_set_renderable(self): | |
| self.dynamic_cube.set_renderable(False) | |
| self.assertFalse(self.dynamic_cube.is_renderable()) | |
| self.dynamic_cube.set_renderable(True) | |
| self.assertTrue(self.dynamic_cube.is_renderable()) | |
| def test_is_model(self): | |
| self.assertFalse(self.dynamic_cube.is_model()) | |
| self.assertTrue(self.simple_model.is_model()) | |
| def test_set_model(self): | |
| self.simple_model.set_model(False) | |
| self.dynamic_cube.set_model(True) | |
| self.assertFalse(self.simple_model.is_model()) | |
| self.assertTrue(self.dynamic_cube.is_model()) | |
| def test_remove(self): | |
| self.dynamic_cube.remove() | |
| self.simple_model.remove() | |
| self.assertFalse(self.dynamic_cube.still_exists()) | |
| self.assertFalse(self.simple_model.still_exists()) | |
| self.assertFalse(Object.exists('dynamic_cube')) | |
| self.assertFalse(Object.exists('simple_model')) | |
| def test_dynamic_object(self): | |
| # Can't really test this. So lets just make sure it doesn't error | |
| self.dynamic_cube.reset_dynamic_object() | |
| def test_get_bounding_box(self): | |
| bb = self.dynamic_cube.get_bounding_box() | |
| self.assertTrue(np.allclose(bb, [-0.05, 0.05] * 3)) | |
| def test_get_objects_in_tree(self): | |
| dummys = [Dummy('nested_dummy%d' % i) for i in range(3)] | |
| objects = dummys[0].get_objects_in_tree( | |
| exclude_base=False, first_generation_only=False) | |
| self.assertListEqual(objects, dummys) | |
| for obj in objects: | |
| self.assertIs(type(obj), Dummy) | |
| self.assertListEqual( | |
| dummys[0].get_objects_in_tree( | |
| exclude_base=True, first_generation_only=False), dummys[1:]) | |
| self.assertListEqual( | |
| dummys[0].get_objects_in_tree( | |
| exclude_base=False,first_generation_only=True), dummys[:-1]) | |
| def test_get_extention_string(self): | |
| self.assertEqual(self.dynamic_cube.get_extension_string(), 'test') | |
| def test_get_configuration_tree(self): | |
| config = self.dynamic_cube.get_configuration_tree() | |
| self.assertIsNotNone(config) | |
| def test_rotate(self): | |
| self.dynamic_cube.rotate([0.02, 0.04, 0.06]) | |
| self.assertTrue(np.allclose( | |
| self.dynamic_cube.get_orientation(), [0.02, 0.04, 0.06])) | |
| def test_get_set_model_collidable(self): | |
| self.simple_model.set_model_collidable(False) | |
| self.assertFalse(self.simple_model.is_model_collidable()) | |
| self.simple_model.set_model_collidable(True) | |
| self.assertTrue(self.simple_model.is_model_collidable()) | |
| def test_get_set_model_measurable(self): | |
| self.simple_model.set_model_measurable(False) | |
| self.assertFalse(self.simple_model.is_model_measurable()) | |
| self.simple_model.set_model_measurable(True) | |
| self.assertTrue(self.simple_model.is_model_measurable()) | |
| def test_get_set_model_detectable(self): | |
| self.simple_model.set_model_detectable(False) | |
| self.assertFalse(self.simple_model.is_model_detectable()) | |
| self.simple_model.set_model_detectable(True) | |
| self.assertTrue(self.simple_model.is_model_detectable()) | |
| def test_get_set_model_renderable(self): | |
| self.simple_model.set_model_renderable(False) | |
| self.assertFalse(self.simple_model.is_model_renderable()) | |
| self.simple_model.set_model_renderable(True) | |
| self.assertTrue(self.simple_model.is_model_renderable()) | |
| def test_get_set_model_dynamic(self): | |
| self.simple_model.set_model_dynamic(False) | |
| self.assertFalse(self.simple_model.is_model_dynamic()) | |
| self.simple_model.set_model_dynamic(True) | |
| self.assertTrue(self.simple_model.is_model_dynamic()) | |
| def test_get_set_model_respondable(self): | |
| self.simple_model.set_model_respondable(False) | |
| self.assertFalse(self.simple_model.is_model_respondable()) | |
| self.simple_model.set_model_respondable(True) | |
| self.assertTrue(self.simple_model.is_model_respondable()) | |
| def test_check_collision(self): | |
| c1 = Shape('colliding_cube0') | |
| c2 = Shape('colliding_cube1') | |
| self.assertTrue(c1.check_collision(c2)) | |
| def test_check_collision_all(self): | |
| c1 = Shape('colliding_cube0') | |
| self.assertTrue(c1.check_collision(None)) | |
| def test_copy(self): | |
| cube1 = self.cube0.copy() | |
| self.assertGreater(cube1.get_handle(), 0) | |
| self.assertIsInstance(cube1, Shape) | |
| self.assertNotEqual(self.cube0, cube1) | |
| def test_check_distance(self): | |
| dist = self.dummy.check_distance(self.cube0) | |
| self.assertAlmostEqual(dist, 1.4629, places=3) | |
| def test_set_get_bullet_friction(self): | |
| self.dynamic_cube.set_bullet_friction(0.7) | |
| friction = self.dynamic_cube.get_bullet_friction() | |
| self.assertAlmostEqual(friction, 0.7, places=1) | |
| def test_set_get_explicit_handling(self): | |
| cam = VisionSensor.create((640, 480)) | |
| flag_orig = cam.get_explicit_handling() | |
| cam.set_explicit_handling(value=1) | |
| flag = cam.get_explicit_handling() | |
| self.assertEqual(flag, 1) | |
| cam.set_explicit_handling(value=0) | |
| flag = cam.get_explicit_handling() | |
| self.assertEqual(flag, 0) | |
| cam.set_explicit_handling(flag_orig) | |
| cam.remove() | |
| if __name__ == '__main__': | |
| unittest.main() | |