Coverage for hummingbird/test_hummingbird_input.py: 100%

61 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-03-04 20:20 -0500

1import pytest 

2import time 

3 

4from birdbrain_constant import BirdbrainConstant 

5from birdbrain_exception import BirdbrainException 

6from birdbrain_hummingbird_input import BirdbrainHummingbirdInput 

7 

8def test_acceleration(): 

9 response = BirdbrainHummingbirdInput.acceleration("A") 

10 

11 assert (-100.0 <= response[0] <= 100.0) 

12 assert (-100.0 <= response[1] <= 100.0) 

13 assert (-100.0 <= response[2] <= 100.0) 

14 

15 assert isinstance(response[0], float) 

16 assert isinstance(response[1], float) 

17 assert isinstance(response[2], float) 

18 

19def test_compass(): 

20 response = BirdbrainHummingbirdInput.compass("A") 

21 

22 assert (0 <= response <= 359) 

23 assert isinstance(response, int) 

24 

25def test_magnetometer(): 

26 response = BirdbrainHummingbirdInput.magnetometer("A") 

27 

28 assert (-180.0 <= response[0] <= 180.0) 

29 assert (-180.0 <= response[1] <= 180.0) 

30 assert (-180.0 <= response[2] <= 180.0) 

31 

32 assert isinstance(response[0], int) 

33 assert isinstance(response[1], int) 

34 assert isinstance(response[2], int) 

35 

36def test_orientation(): 

37 response = BirdbrainHummingbirdInput.orientation("A") 

38 

39 some_position = False 

40 for orientation in BirdbrainConstant.HUMMINGBIRD_ORIENTATION_RESULTS: 

41 some_position = some_position or (orientation == response) 

42 

43 assert some_position 

44 

45def test_sensor(): 

46 response = BirdbrainHummingbirdInput.sensor("A", 1) 

47 

48 assert isinstance(response, float) 

49 

50def test_light(): 

51 response = BirdbrainHummingbirdInput.light("A", 1) 

52 assert (0 <= response <= 100) 

53 assert isinstance(response, int) 

54 

55def test_sound(): 

56 response = BirdbrainHummingbirdInput.sound("A", 1) 

57 assert (0 <= response <= 100) 

58 assert isinstance(response, int) 

59 

60 with pytest.raises(BirdbrainException) as e: 

61 response = BirdbrainHummingbirdInput.sound("A", 4) 

62 assert e.value.message == "Error: The device is not connected" 

63 

64def test_sound_microbit(): 

65 response = BirdbrainHummingbirdInput.sound("A", "micro:bit") 

66 

67 assert (0 <= response <= 100) 

68 assert isinstance(response, int) 

69 

70def test_distance(): 

71 response = BirdbrainHummingbirdInput.distance("A", 2) 

72 

73 assert (0 <= response <= 298) 

74 assert isinstance(response, int) 

75 

76def test_dial(): 

77 response = BirdbrainHummingbirdInput.dial("A", 1) 

78 

79 assert (0 <= response <= 100) 

80 assert isinstance(response, int) 

81 

82def test_voltage(): 

83 response = BirdbrainHummingbirdInput.voltage("A", 1) 

84 

85 assert (0.0 <= response <= 3.3) 

86 assert isinstance(response, float)