示例#1
0
class TestDummyCamera(TestCase):
    def setUp(self):
        super(TestDummyCamera, self).setUp()
        self.background = np.ones((256, 256), dtype=np.uint16)
        self.camera = Camera(background=self.background)

    async def test_grab(self):
        frame = await self.camera.grab()
        self.assertIsNotNone(frame)

    def test_trigger_source(self):
        self.camera.trigger_source = self.camera.trigger_sources.EXTERNAL
        self.assertEqual(self.camera.trigger_source, 'EXTERNAL')

    def test_roi(self):
        self.roi_x0 = self.roi_y0 = self.roi_width = self.roi_height = 10 * q.dimensionless
        self.assertEqual(self.roi_x0, 10 * q.dimensionless)
        self.assertEqual(self.roi_y0, 10 * q.dimensionless)
        self.assertEqual(self.roi_width, 10 * q.dimensionless)
        self.assertEqual(self.roi_height, 10 * q.dimensionless)

    def test_has_sensor_dims(self):
        self.assertTrue(hasattr(self.camera, "sensor_pixel_width"))
        self.assertTrue(hasattr(self.camera, "sensor_pixel_height"))

    async def test_buffered_camera(self):
        camera = BufferedCamera()
        i = 0
        async for item in camera.readout_buffer():
            i += 1
        self.assertEqual(i, 3)

    async def test_context_manager(self):
        camera = Camera()

        async with camera.recording():
            self.assertEqual(await camera.get_state(), 'recording')
            await camera.grab()

        self.assertEqual(await camera.get_state(), 'standby')

    async def test_stream(self):
        async def check(producer):
            async for image in producer:
                check.ok = True
                await self.camera.stop_recording()
                break

        check.ok = False

        await check(self.camera.stream())
        self.assertTrue(check.ok)

    async def test_grab_convert(self):
        async def grab():
            return np.mgrid[:5, :5][1]

        self.camera._grab_real = grab
        self.camera.convert = np.fliplr
        image = await self.camera.grab()
        np.testing.assert_equal(image, (await grab())[:, ::-1])

    async def test_simulate(self):
        self.assertTrue(np.any(self.background - await self.camera.grab()))
        camera = Camera(background=self.background, simulate=False)
        np.testing.assert_equal(self.background, await camera.grab())
示例#2
0
class TestDummyCamera(TestCase):

    def setUp(self):
        super(TestDummyCamera, self).setUp()
        self.camera = Camera()

    def test_grab(self):
        frame = self.camera.grab()
        self.assertIsNotNone(frame)

    def test_grab_async(self):
        frame = self.camera.grab_async().result()
        self.assertIsNotNone(frame)

    def test_trigger_source(self):
        self.camera.trigger_source = self.camera.trigger_sources.EXTERNAL
        self.assertEqual(self.camera.trigger_source, 'EXTERNAL')

    def test_roi(self):
        self.roi_x0 = self.roi_y0 = self.roi_width = self.roi_height = 10 * q.dimensionless
        self.assertEqual(self.roi_x0, 10 * q.dimensionless)
        self.assertEqual(self.roi_y0, 10 * q.dimensionless)
        self.assertEqual(self.roi_width, 10 * q.dimensionless)
        self.assertEqual(self.roi_height, 10 * q.dimensionless)

    def test_has_sensor_dims(self):
        self.assertTrue(hasattr(self.camera, "sensor_pixel_width"))
        self.assertTrue(hasattr(self.camera, "sensor_pixel_height"))

    def test_buffered_camera(self):
        camera = BufferedCamera()
        for i, item in enumerate(camera.readout_buffer()):
            pass
        self.assertEqual(i, 2)

    def test_context_manager(self):
        camera = Camera()

        with camera.recording():
            self.assertEqual(camera.state, 'recording')
            camera.grab()

        self.assertEqual(camera.state, 'standby')

    def test_stream(self):
        @coroutine
        def check():
            while True:
                yield
                check.ok = True
                self.camera.stop_recording()
        check.ok = False

        self.camera.stream(check()).join()
        self.assertTrue(check.ok)

    def test_grab_convert(self):
        def grab():
            return np.mgrid[:5, :5][1]

        self.camera._grab_real = grab
        self.camera.convert = np.fliplr
        image = self.camera.grab()
        np.testing.assert_equal(image, grab()[:, ::-1])