def test_default_config(self):
        configuration = {"source": "simulation"}

        configuration = CameraConfig("simulation", configuration)
        complete_config = configuration.get_configuration()

        self.assertIsNone(complete_config["camera_calibration"])
        self.assertFalse(complete_config["mirror_x"])
        self.assertFalse(complete_config["mirror_y"])
        self.assertEqual(complete_config["rotate"], 0)
        self.assertEqual(complete_config["source_type"], "epics")

        configuration = {"source": "simulation", "camera_calibration": {}}

        configuration = CameraConfig("simulation", configuration)
        complete_config = configuration.get_configuration()

        self.assertSetEqual(
            set(complete_config["camera_calibration"].keys()),
            set(CameraConfig.DEFAULT_CAMERA_CALIBRATION.keys()),
            "Missing keys in camera calibration.")
    def test_camera_frame_rate(self):
        camera = CameraSimulation(CameraConfig("simulation"))

        self.assertEqual(camera.frame_rate, 10)

        new_frame_rate = 1
        camera_config = CameraConfig("simulation")
        configuration = camera_config.get_configuration()
        configuration["frame_rate"] = new_frame_rate
        camera_config.set_configuration(configuration)

        camera = CameraSimulation(camera_config)

        self.assertEqual(camera.frame_rate, new_frame_rate)
    def test_camera_simulation_interval(self):
        camera = CameraSimulation(CameraConfig("simulation"))

        self.assertEqual(camera.simulation_interval,
                         config.DEFAULT_CAMERA_SIMULATION_INTERVAL)

        new_simulation_interval = 1
        camera_config = CameraConfig("simulation")
        configuration = camera_config.get_configuration()
        configuration["simulation_interval"] = new_simulation_interval
        camera_config.set_configuration(configuration)

        camera = CameraSimulation(camera_config)

        self.assertEqual(camera.simulation_interval, new_simulation_interval)