~rockstar/entertainer/package-structure-apocalypse

« back to all changes in this revision

Viewing changes to entertainerlib/tests/test_motionbuffer.py

  • Committer: Paul Hummer
  • Date: 2009-05-10 17:36:49 UTC
  • mfrom: (360.1.3 entertainer-future)
  • Revision ID: paul@eventuallyanyway.com-20090510173649-0odjpoqifn303t46
Merged from entertainer-future

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Copyright (c) 2009 Entertainer Developers - See COPYING - GPLv2
 
2
"""Tests MotionBuffer"""
 
3
 
 
4
from entertainerlib.frontend.gui.widgets.motion_buffer import MotionBuffer
 
5
from entertainerlib.tests import EntertainerTest
 
6
from entertainerlib.tests.mock import MockPointerEvent
 
7
 
 
8
class MotionBufferTest(EntertainerTest):
 
9
    """Test for entertainerlib.frontend.gui.widgets.motion_buffer"""
 
10
 
 
11
    def setUp(self):
 
12
        '''Set up the test.'''
 
13
        EntertainerTest.setUp(self)
 
14
 
 
15
        self.buffer = MotionBuffer()
 
16
 
 
17
    def tearDown(self):
 
18
        '''Clean up after the test.'''
 
19
        EntertainerTest.tearDown(self)
 
20
 
 
21
    def test_create(self):
 
22
        '''Test correct MotionBuffer initialization.'''
 
23
        self.assertTrue(isinstance(self.buffer, MotionBuffer))
 
24
 
 
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())
 
30
 
 
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)
 
35
 
 
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())
 
41
 
 
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)
 
56
 
 
57
    def _create_first_event(self):
 
58
        '''Create a virtual pointer event.'''
 
59
        event = MockPointerEvent()
 
60
        event.x = 100
 
61
        event.y = 100
 
62
        event.time = 0
 
63
        return event
 
64
 
 
65
    def _create_second_event(self):
 
66
        '''Create a virtual pointer event.'''
 
67
        event = MockPointerEvent()
 
68
        event.x = 100
 
69
        event.y = 110
 
70
        event.time = 1
 
71
        return event
 
72
 
 
73
    def _create_third_event(self):
 
74
        '''Create a virtual pointer event.'''
 
75
        event = MockPointerEvent()
 
76
        event.x = 110
 
77
        event.y = 110
 
78
        event.time = 2
 
79
        return event
 
80