import pytest rclpy = pytest.importorskip('rclpy') def test_the_node_constructs_with_default_parameters(): """Declaring a parameter twice raises at construction, and nothing else exercises the node.""" from hermes_vision.face_detector_node import FaceDetectorNode rclpy.init() try: node = FaceDetectorNode() assert node.detector.backend in ('yunet', 'haar') node.destroy_node() finally: rclpy.shutdown() def test_detector_rate_can_be_changed_live(): from rclpy.parameter import Parameter from hermes_vision.face_detector_node import FaceDetectorNode rclpy.init() try: node = FaceDetectorNode() assert abs(node.period - 0.25) < 1e-9 assert node.set_parameters([Parameter('rate_hz', value=1.0)])[0].successful assert abs(node.period - 1.0) < 1e-9 assert node.set_parameters([Parameter('rate_hz', value=0.01)])[0].successful assert abs(node.period - 2.0) < 1e-9 # clamped to 0.5 Hz node.destroy_node() finally: rclpy.shutdown()