def test_value_dict(self): sig = CANSignal('Signal', 0, 8) sig.value_dict = {0: 'Value0'} sig.raw_value = 0 assert sig.value == sig.value_dict[sig.raw_value] sig.raw_value = 1 assert sig.value == sig.raw_value
def test_raw_value_setter_signing_exception(self): sig = CANSignal('Signal', 0, 8) sig.signed = False sig.raw_value = 0 sig.raw_value = 10 with pytest.raises(AttributeError): sig.raw_value = -1 sig.signed = True sig.raw_value = -1
def test_int_two_signals(self): msg = CANMessage(1, 'Name', 2) sig0 = CANSignal('Signal0', 0, 8) sig0.raw_value = 159 msg.add_signal(sig0) sig1 = CANSignal('Signal1', 8, 8) sig1.raw_value = 96 msg.add_signal(sig1) assert int(msg) == int(sig0.bits) + (int(sig1.bits) << 8)
def test_raw_value_setter_exceed_length(self): sig = CANSignal('Signal', 0, 3) sig.raw_value = 7 assert sig.raw_value == 7 with pytest.raises(AttributeError): sig.raw_value = 8 sig.signed = True sig.raw_value = 3 assert sig.raw_value == 3 sig.raw_value = -3 assert sig.raw_value == -3 with pytest.raises(AttributeError): sig.raw_value = 4 assert sig.raw_value == -3 with pytest.raises(AttributeError): sig.raw_value = -4 assert sig.raw_value == -3
def test_value_getter(self): sig = CANSignal('Signal', 0, 8) sig.factor = 2.5 sig.offset = 1.25 sig.raw_value = 2 assert sig.value == sig.raw_value * 2.5 + 1.25
def test_raw_value_setter_only_int(self): sig = CANSignal('Signal', 0, 3) with pytest.raises(AttributeError): sig.raw_value = None with pytest.raises(AttributeError): sig.raw_value = 'a'
def test_int_splitted(self): msg = CANMessage(1, 'Name', 2) sig = CANSignal('Signal', 4, 8) sig.raw_value = 100 msg.add_signal(sig) assert int(msg) == int(sig.bits) << 4
def test_int(self): msg = CANMessage(1, 'Name', 1) sig = CANSignal('Signal', 0, 8) sig.raw_value = 100 msg.add_signal(sig) assert int(msg) == 100