Coverage for hummingbird/test_hummingbird_input.py: 100%
61 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-21 08:37 -0400
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-21 08:37 -0400
1import pytest
2import time
4from birdbrain_constant import BirdbrainConstant
5from birdbrain_exception import BirdbrainException
6from birdbrain_hummingbird_input import BirdbrainHummingbirdInput
8def test_acceleration():
9 response = BirdbrainHummingbirdInput.acceleration("A")
11 assert (-100.0 <= response[0] <= 100.0)
12 assert (-100.0 <= response[1] <= 100.0)
13 assert (-100.0 <= response[2] <= 100.0)
15 assert isinstance(response[0], float)
16 assert isinstance(response[1], float)
17 assert isinstance(response[2], float)
19def test_compass():
20 response = BirdbrainHummingbirdInput.compass("A")
22 assert (0 <= response <= 359)
23 assert isinstance(response, int)
25def test_magnetometer():
26 response = BirdbrainHummingbirdInput.magnetometer("A")
28 assert (-180.0 <= response[0] <= 180.0)
29 assert (-180.0 <= response[1] <= 180.0)
30 assert (-180.0 <= response[2] <= 180.0)
32 assert isinstance(response[0], int)
33 assert isinstance(response[1], int)
34 assert isinstance(response[2], int)
36def test_orientation():
37 response = BirdbrainHummingbirdInput.orientation("A")
39 some_position = False
40 for orientation in BirdbrainConstant.HUMMINGBIRD_ORIENTATION_RESULTS:
41 some_position = some_position or (orientation == response)
43 assert some_position
45def test_sensor():
46 response = BirdbrainHummingbirdInput.sensor("A", 1)
48 assert isinstance(response, float)
50def test_light():
51 response = BirdbrainHummingbirdInput.light("A", 1)
52 assert (0 <= response <= 100)
53 assert isinstance(response, int)
55def test_sound():
56 response = BirdbrainHummingbirdInput.sound("A", 1)
57 assert (0 <= response <= 100)
58 assert isinstance(response, int)
60 with pytest.raises(BirdbrainException) as e:
61 response = BirdbrainHummingbirdInput.sound("A", 4)
62 assert e.value.message == "Error: The device is not connected"
64def test_sound_microbit():
65 response = BirdbrainHummingbirdInput.sound("A", "micro:bit")
67 assert (0 <= response <= 100)
68 assert isinstance(response, int)
70def test_distance():
71 response = BirdbrainHummingbirdInput.distance("A", 2)
73 assert (0 <= response <= 298)
74 assert isinstance(response, int)
76def test_dial():
77 response = BirdbrainHummingbirdInput.dial("A", 1)
79 assert (0 <= response <= 100)
80 assert isinstance(response, int)
82def test_voltage():
83 response = BirdbrainHummingbirdInput.voltage("A", 1)
85 assert (0.0 <= response <= 3.3)
86 assert isinstance(response, float)