From beb45759c55df445969488d407c58473b7692bdc Mon Sep 17 00:00:00 2001 From: Erik Moqvist Date: Mon, 9 Nov 2020 12:23:11 +0100 Subject: [PATCH] Revert "Compare ranges with Decimal values (#218)" This reverts commit 9203a08ad955bc0f23b7d93cf5791075db968b57. More testing is needed before releasing this. There are likely cases that will not work when mixing floaf and decimal. And maybe more. --- cantools/database/can/message.py | 12 +++++------ tests/test_database.py | 34 ++------------------------------ 2 files changed, 8 insertions(+), 38 deletions(-) diff --git a/cantools/database/can/message.py b/cantools/database/can/message.py index 4b698c2f..cfc15b30 100644 --- a/cantools/database/can/message.py +++ b/cantools/database/can/message.py @@ -656,21 +656,21 @@ def _check_signals_ranges_scaling(self, signals, data): if isinstance(value, str): continue - if signal.decimal.minimum is not None: - if value < signal.decimal.minimum: + if signal.minimum is not None: + if value < signal.minimum: raise EncodeError( "Expected signal '{}' value greater than or equal to " "{} in message '{}', but got {}.".format(signal.name, - signal.decimal.minimum, + signal.minimum, self._name, value)) - if signal.decimal.maximum is not None: - if value > signal.decimal.maximum: + if signal.maximum is not None: + if value > signal.maximum: raise EncodeError( "Expected signal '{}' value less than or equal to " "{} in message '{}', but got {}.".format(signal.name, - signal.decimal.maximum, + signal.maximum, self.name, value)) diff --git a/tests/test_database.py b/tests/test_database.py index a854ddff..83673d85 100644 --- a/tests/test_database.py +++ b/tests/test_database.py @@ -4821,7 +4821,7 @@ def test_dbc_with_signal_groups(self): filename = 'tests/files/dbc/sig_groups_out.dbc' self.assert_dbc_dump(db, filename) - + def test_dbc_issue_228_empty_signal_groups(self): filename = 'tests/files/dbc/issue_228.dbc' @@ -4933,42 +4933,12 @@ def test_issue_184_cascaded_multiplexors(self): db, 'tests/files/dbc/issue_184_extended_mux_cascaded_dumped.dbc') - def test_floating_point_limits(self): - """Test correct handling of limits in `can.Message.encode` if they - are floating point. - """ - - dbc_content = """ -VERSION "1337" - -BS_: - -BU_: XYY XYZ - -BO_ 123 Message_1: 6 XYY - SG_ Alpha : 7|8@0+ (1,0) [0|255] "" XYZ - SG_ Bravo : 9|2@0+ (1,0) [0|3] "" XYZ - SG_ Charlie : 15|4@0+ (1,0) [0|14] "" XYZ - SG_ Delta : 23|8@0+ (0.394,0) [0.394|100.076] "" XYZ - """ - db = cantools.database.load_string(dbc_content, 'dbc') - message = db.get_message_by_name('Message_1') - data_min = { signal.name: signal.decimal.minimum for signal in message.signals } - message.encode(data_min) - data_max = { signal.name: signal.decimal.maximum for signal in message.signals } - message.encode(data_max) - - # outside of lower bound for Delta - with self.assertRaises(cantools.database.EncodeError): - message.encode({ **data_min, 'Delta': data_min['Delta']-Decimal('0.001') }) - # outside of high bound for Delta - with self.assertRaises(cantools.database.EncodeError): - message.encode({ **data_max, 'Delta': data_max['Delta']+Decimal('0.001') }) def test_bus_comment(self): filename = 'tests/files/dbc/bus_comment.dbc' db = cantools.database.load_file(filename) self.assertEqual(db.buses[0].comment, 'SpecialRelease') self.assert_dbc_dump(db, filename) + # This file is not '__main__' when executed via 'python setup.py3 # test'. logging.basicConfig(level=logging.DEBUG)