from unittest import TestCase from arm_application.camera_profiles import depth_profile from arm_application.realsense_color_pub import stream_open_passes, usb2_needs_reset class CameraProfilesTest(TestCase): def test_1080p_color_keeps_native_720p_depth_at_same_rate(self): modes={(1280,720,30),(848,480,30),(640,480,15)} self.assertEqual(depth_profile((1920,1080,30),modes),(1280,720,30)) self.assertEqual(depth_profile((848,480,30),modes),(848,480,30)) with self.assertRaises(ValueError): depth_profile((1920,1080,60),modes) def test_usb2_enumeration_requests_one_hardware_reset(self): self.assertTrue(usb2_needs_reset('2.1')) self.assertTrue(usb2_needs_reset('2.0')) self.assertFalse(usb2_needs_reset('3.2')) self.assertFalse(usb2_needs_reset('')) def test_depth_is_exhausted_before_color_only_fallback(self): names = [name for name, _modes in stream_open_passes(True, False, False)] self.assertEqual(names, ['depth', 'color']) depth_modes = next(modes for name, modes in stream_open_passes(True, False, True) if name == 'depth') self.assertEqual(depth_modes, ((True, 'none'),)) self.assertTrue(all(with_depth for with_depth, _infra in depth_modes))