Coverage for finch/test_finch_output.py: 95%
64 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-04 20:20 -0500
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-04 20:20 -0500
1import pytest
2import time
4from birdbrain_constant import BirdbrainConstant
5from birdbrain_exception import BirdbrainException
6from birdbrain_finch import BirdbrainFinch
7from birdbrain_finch_output import BirdbrainFinchOutput
8from birdbrain_request import BirdbrainRequest
10def test_beak():
11 assert BirdbrainFinchOutput.beak("B", 10, 50, 50)
12 time.sleep(0.15)
13 assert BirdbrainFinchOutput.beak("B", 0, 0, 0)
15def test_tail():
16 assert BirdbrainFinchOutput.tail("B", 1, 10, 50, 50)
17 time.sleep(0.1)
18 assert BirdbrainFinchOutput.tail("B", 1, "0", 50, "0")
19 time.sleep(0.1)
20 assert BirdbrainFinchOutput.tail("B", "2", "0", 50, "0")
21 time.sleep(0.1)
22 assert BirdbrainFinchOutput.tail("B", 3, "0", 50, "0")
23 time.sleep(0.1)
24 assert BirdbrainFinchOutput.tail("B", 4, "0", 50, "0")
25 time.sleep(0.1)
26 assert BirdbrainFinchOutput.tail("B", "all", 0, 0, 100)
27 time.sleep(0.1)
28 assert BirdbrainFinchOutput.tail("B", "all", 0, 0, 0)
30def test_move():
31 assert BirdbrainFinchOutput.move("B", BirdbrainConstant.FORWARD, 4, 5)
32 assert BirdbrainFinchOutput.move("B", BirdbrainConstant.FORWARD, "4", "5")
34 assert BirdbrainFinchOutput.move("B", BirdbrainConstant.BACKWARD, 4, 5)
35 assert BirdbrainFinchOutput.move("B", BirdbrainConstant.BACKWARD, "4", "5")
37 with pytest.raises(BirdbrainException):
38 assert BirdbrainFinchOutput.move("B", "BAD", 4, 5)
39 assert e.value.message == "Error: Request to device failed"
41 with pytest.raises(BirdbrainException) as e:
42 assert BirdbrainFinchOutput.move("B", None, 4, 5)
43 assert e.value.message == "Error: Request to device failed"
45 BirdbrainRequest.stop_all("B")
47def test_turn():
48 assert BirdbrainFinchOutput.turn("B", "L", 25, 50)
49 assert BirdbrainFinchOutput.turn("B", "R", 25, 50)
50 assert BirdbrainFinchOutput.turn("B", "L", "25", 50)
51 assert BirdbrainFinchOutput.turn("B", "R", 25, "50")
53 with pytest.raises(BirdbrainException):
54 assert BirdbrainFinchOutput.turn("B", "BAD", 90, 50)
55 assert e.value.message == "Error: Request to device failed"
57def test_motors():
58 assert BirdbrainFinchOutput.motors("B", 25, 0)
59 time.sleep(0.2)
60 assert BirdbrainFinchOutput.motors("B", -25, 0)
61 time.sleep(0.2)
63 assert BirdbrainFinchOutput.motors("B", 0, -25)
64 time.sleep(0.2)
65 assert BirdbrainFinchOutput.motors("B", "0", "25")
66 time.sleep(0.2)
68 BirdbrainRequest.stop_all("B")
70def test_stop():
71 assert BirdbrainFinchOutput.move("B", BirdbrainConstant.FORWARD, 99999, 5, False)
72 time.sleep(0.2)
73 assert BirdbrainFinchOutput.stop("B")
75 assert BirdbrainFinchOutput.move("B", BirdbrainConstant.BACKWARD, 99999, 5, False)
76 time.sleep(0.2)
77 assert BirdbrainFinchOutput.stop("B")
79def test_reset_encoders():
80 assert BirdbrainFinchOutput.reset_encoders("B")