import sys import os import ctypes ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) if ROOT not in sys.path: sys.path.insert(0, ROOT) from pymsc.lib1553.messages.a1_settings import MsgA1Payload from pymsc.lib1553.messages.a2_operation_command import MsgA2Payload from pymsc.lib1553.messages.a3_graphic_setting import MsgA3Payload from pymsc.lib1553.messages.a4_nav_data_and_cursor import MsgA4Payload from pymsc.lib1553.messages.a7_data_link_targets_1 import MsgA7Payload from pymsc.lib1553.messages.a8_data_link_targets_2 import MsgA8Payload from pymsc.lib1553.messages.b2_tws_targets_3_4_5 import MsgB2Payload from pymsc.lib1553.messages.b4_spt_target import MsgB4Payload from pymsc.lib1553.messages.tws_status_and_targets import TwsStatusAndTargets0102 def test_payload_sizes(): # Expected sizes (words*2) — these are based on current best-effort mappings expected = { 'A1': 16, # bytes 'A2': 6, 'A3': 64, 'A4': 62, 'A7': 64, 'A8': 64, 'B2': 70, 'B4': 66, 'B1': 94, } assert ctypes.sizeof(MsgA1Payload) == expected['A1'] assert ctypes.sizeof(MsgA2Payload) == expected['A2'] assert ctypes.sizeof(MsgA3Payload) == expected['A3'] assert ctypes.sizeof(MsgA4Payload) == expected['A4'] assert ctypes.sizeof(MsgA7Payload) == expected['A7'] assert ctypes.sizeof(MsgA8Payload) == expected['A8'] assert ctypes.sizeof(MsgB2Payload) == expected['B2'] assert ctypes.sizeof(MsgB4Payload) == expected['B4'] assert ctypes.sizeof(TwsStatusAndTargets0102) == expected['B1']