1
# Copyright (c) 2009 Entertainer Developers - See COPYING - GPLv2
2
"""Tests MotionBuffer"""
4
from entertainerlib.frontend.gui.widgets.motion_buffer import MotionBuffer
5
from entertainerlib.tests import EntertainerTest
6
from entertainerlib.tests.mock import MockPointerEvent
8
class MotionBufferTest(EntertainerTest):
9
"""Test for entertainerlib.frontend.gui.widgets.motion_buffer"""
12
'''Set up the test.'''
13
EntertainerTest.setUp(self)
15
self.buffer = MotionBuffer()
18
'''Clean up after the test.'''
19
EntertainerTest.tearDown(self)
21
def test_create(self):
22
'''Test correct MotionBuffer initialization.'''
23
self.assertTrue(isinstance(self.buffer, MotionBuffer))
25
def test_computations_from_start(self):
26
'''Test all values on a 3 events motion, computed from start.'''
27
self.buffer.start(self._create_first_event())
28
self.buffer.take_new_motion_event(self._create_second_event())
29
self.buffer.compute_from_start(self._create_third_event())
31
self.assertEqual(self.buffer.dt_from_start, 2)
32
self.assertEqual(self.buffer.dx_from_start, 10)
33
self.assertEqual(self.buffer.dy_from_start, 10)
34
self.assertAlmostEqual(self.buffer.distance_from_start, 14.142135624)
36
def test_computations_from_last_event(self):
37
'''Test all values on a 3 events motion, computed from last event.'''
38
self.buffer.start(self._create_first_event())
39
self.buffer.take_new_motion_event(self._create_second_event())
40
self.buffer.compute_from_last_motion_event(self._create_third_event())
42
self.assertEqual(self.buffer.dt_from_last_motion_event, 1)
43
self.assertEqual(self.buffer.dx_from_last_motion_event, 10)
44
self.assertEqual(self.buffer.dy_from_last_motion_event, 0)
45
self.assertEqual(self.buffer.distance_from_last_motion_event, 10.0)
46
self.assertEqual(self.buffer.speed_x_from_last_motion_event, 10.0)
47
self.assertEqual(self.buffer.speed_y_from_last_motion_event, 0.0)
48
self.assertEqual(self.buffer.speed_from_last_motion_event, 10.0)
49
self.assertAlmostEqual(self.buffer.dt_ema, 0.3333333333)
50
self.assertAlmostEqual(self.buffer.dx_ema, 3.3333333333)
51
self.assertAlmostEqual(self.buffer.dy_ema, 0.0)
52
self.assertAlmostEqual(self.buffer.distance_ema, 3.3333333333)
53
self.assertAlmostEqual(self.buffer.speed_x_ema, 3.3333333333)
54
self.assertAlmostEqual(self.buffer.speed_y_ema, 0.0)
55
self.assertAlmostEqual(self.buffer.speed_ema, 3.3333333333)
57
def _create_first_event(self):
58
'''Create a virtual pointer event.'''
59
event = MockPointerEvent()
65
def _create_second_event(self):
66
'''Create a virtual pointer event.'''
67
event = MockPointerEvent()
73
def _create_third_event(self):
74
'''Create a virtual pointer event.'''
75
event = MockPointerEvent()