Skip to content

Commit

Permalink
Cleanup and expand tests
Browse files Browse the repository at this point in the history
  • Loading branch information
thomasmholder committed Jun 9, 2023
1 parent 4ed8fde commit 87055e5
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 42 deletions.
71 changes: 50 additions & 21 deletions tests/format/test_position.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,39 +3,68 @@
from EosLib.format.formats.position import Position
from EosLib.format.formats.position import FlightState

good_data_list = [datetime.datetime.now(),
33.7756,
84.3963,
974.5,
70.2,
5,
FlightState.DESCENT]


def get_position_from_list(position_list: [float]):
return Position(position_list[0],
position_list[1],
position_list[2],
position_list[3],
position_list[4],
position_list[5],
position_list[6])


def get_good_position():
return Position(datetime.datetime.now(),
33.7756,
84.3963,
974.5,
70.2,
5,
FlightState.DESCENT)
return get_position_from_list(good_data_list)


def test_encode_decode_bytes():
base_position = get_good_position()
base_position_bytes = base_position.encode()
new_position = Position.decode(base_position_bytes)
assert base_position.gps_time == new_position.gps_time and \
base_position.latitude == new_position.latitude and \
base_position.longitude == new_position.longitude and \
base_position.altitude == new_position.altitude and \
base_position.speed == new_position.speed and \
base_position.number_of_satellites == new_position.number_of_satellites and \
base_position.flight_state == new_position.flight_state
assert base_position == new_position


def test_encode_decode_csv():
base_position = get_good_position()
base_position_csv = base_position.encode_to_csv()
new_position = Position.decode_from_csv(base_position_csv)

assert base_position.gps_time == new_position.gps_time and \
base_position.latitude == new_position.latitude and \
base_position.longitude == new_position.longitude and \
base_position.altitude == new_position.altitude and \
base_position.speed == new_position.speed and \
base_position.number_of_satellites == new_position.number_of_satellites and \
base_position.flight_state == new_position.flight_state
assert base_position == new_position


class TestEQ:
def test_is_eq(self):
data_1 = get_good_position()
data_2 = get_good_position()

assert data_1 == data_2

def test_not_eq(self):
test_passed = True

data_1 = get_good_position()

for i in range(len(good_data_list)):
new_data_list = good_data_list
if isinstance(good_data_list[i], float):
new_data_list[i] += 1
elif isinstance(good_data_list[i], datetime.datetime):
new_data_list[i] += datetime.timedelta(1)
elif isinstance(good_data_list[i], FlightState):
new_data_list[i] = FlightState.ASCENT
data_2 = get_position_from_list(new_data_list)

if data_1 == data_2:
test_passed = False

assert test_passed

59 changes: 39 additions & 20 deletions tests/format/test_telemetry_data.py
Original file line number Diff line number Diff line change
@@ -1,38 +1,57 @@
from EosLib.format.formats.telemetry_data import TelemetryData


good_data_list = [32.0, 1013.25, 50.5, 30.0, 45.0, 60.0]


def get_telemetry_data_from_list(data_list: [float]):
return TelemetryData(data_list[0],
data_list[1],
data_list[2],
data_list[3],
data_list[4],
data_list[5])


def get_good_telemetry_data():
return TelemetryData(32.0,
1013.25,
50.5,
30.0,
45.0,
60.0)
return get_telemetry_data_from_list(good_data_list)


def test_encode_decode_bytes():
base_data = get_good_telemetry_data()
encoded_new_data = base_data.encode()
new_data = TelemetryData.decode(encoded_new_data)

assert base_data.temperature == new_data.temperature \
and base_data.pressure == new_data.pressure \
and base_data.humidity == new_data.humidity \
and base_data.x_rotation == new_data.x_rotation \
and base_data.y_rotation == new_data.y_rotation \
and base_data.z_rotation == new_data.z_rotation \
and base_data.valid == new_data.valid
assert base_data == new_data


def test_encode_decode_csv():
base_data = get_good_telemetry_data()
encoded_new_data = base_data.encode()
new_data = TelemetryData.decode(encoded_new_data)

assert base_data.temperature == new_data.temperature \
and base_data.pressure == new_data.pressure \
and base_data.humidity == new_data.humidity \
and base_data.x_rotation == new_data.x_rotation \
and base_data.y_rotation == new_data.y_rotation \
and base_data.z_rotation == new_data.z_rotation \
and base_data.valid == new_data.valid
assert base_data == new_data


class TestEQ:
def test_is_eq(self):
data_1 = get_good_telemetry_data()
data_2 = get_good_telemetry_data()

assert data_1 == data_2

def test_not_eq(self):
test_passed = True

data_1 = get_good_telemetry_data()

for i in range(len(good_data_list)):
new_data_list = good_data_list
new_data_list[i] += 1
data_2 = get_telemetry_data_from_list(new_data_list)

if data_1 == data_2:
test_passed = False

assert test_passed

2 changes: 1 addition & 1 deletion tests/packet/test_packet.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ def test_validate_empty_body_packet(packet):


def test_body_too_large(packet):
packet.body = bytes(Packet.radio_body_max_bytes + 1)
packet.body = MockFormat(Packet.radio_body_max_bytes + 1)
with pytest.raises(PacketFormatError):
packet.encode()

Expand Down

0 comments on commit 87055e5

Please sign in to comment.