def test_ai_config_from_dict_defaults(): # Arrange from inference import ai_config_from_dict # Act cfg = ai_config_from_dict({}) # Assert assert cfg.model_batch_size == 8 assert cfg.frame_period_recognition == 4 assert cfg.frame_recognition_seconds == 2 assert cfg.has_camera_config is False assert cfg.has_altitude is False def test_ai_config_from_dict_altitude_override_sets_flag(): # Arrange from inference import ai_config_from_dict # Act cfg = ai_config_from_dict({"altitude": 400}) # Assert assert cfg.has_camera_config is True assert cfg.has_altitude is True assert cfg.altitude == 400 assert cfg.current_height == 400 def test_ai_config_from_dict_overrides(): # Arrange from inference import ai_config_from_dict # Act cfg = ai_config_from_dict({"model_batch_size": 4, "probability_threshold": 0.5}) # Assert assert cfg.model_batch_size == 4 assert cfg.probability_threshold == 0.5 def test_ai_config_from_dict_camera_config_sets_physical_filter_fields(): # Arrange from inference import ai_config_from_dict # Act cfg = ai_config_from_dict( { "camera_config": { "focal_length": 35, "sensor_width": 36, "current_zoom": 2, "current_angle": 80, "current_height": 300, } } ) # Assert assert cfg.has_camera_config is True assert cfg.current_height == 300 assert cfg.focal_length == 35 assert cfg.sensor_width == 36 assert cfg.current_zoom == 2 assert cfg.current_angle == 80