Skip to content

Commit 18e4c9d

Browse files
authored
add tests for issue #424 (#500)
add tests for Motorola forward MSB and Motorola forward LSB start_bit
1 parent 10da46d commit 18e4c9d

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

src/canmatrix/tests/test_canmatrix.py

+3
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,9 @@ def test_signal_get_startbit():
243243
def test_signal_get_startbit_conversion():
244244
signal_big = canmatrix.canmatrix.Signal(start_bit=2, size=16, is_little_endian=False)
245245
assert signal_big.get_startbit(start_little=True) == 17 # looking for "end" of the signal: 2 + (16 - 1)
246+
247+
signal_big = canmatrix.canmatrix.Signal(start_bit=32, size=4, is_little_endian=False)
248+
assert signal_big.get_startbit(bit_numbering=True, start_little=True) == 36
246249
# TODO add test for reversed endianning
247250

248251

src/canmatrix/tests/test_dbc.py

+41
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,46 @@ def test_signal_inital_value():
430430
canmatrix.formats.dump(matrix, outdbc, "dbc")
431431
assert 'BA_ "GenSigStartValue" SG_ 17 sig1 2.7;' in outdbc.getvalue().decode('utf8')
432432

433+
434+
def test_candbpp_startbit():
435+
dbc = io.BytesIO(textwrap.dedent(u'''\
436+
BO_ 1809 MSG: 8 DEV2
437+
SG_ SIG1 : 39|4@0+ (1,0) [0|1] "" DEV1
438+
SG_ SIG2 : 52|1@0+ (1,0) [0|1] "" DEV1
439+
SG_ SIG3 : 51|12@0+ (0.1,0) [0|360] "°" DEV1
440+
SG_ SIG4 : 6|1@0+ (1,0) [0|1] "" DEV1
441+
SG_ SIG5 : 5|1@0+ (1,0) [0|1] "" DEV1
442+
SG_ SIG6 : 23|3@0+ (1,0) [0|1] "" DEV1
443+
SG_ SIG7 : 7|1@0+ (1,0) [0|1] "" DEV1
444+
SG_ SIG8 : 34|11@0+ (0.1,-102.4) [-32|32] "A" DEV1
445+
SG_ SIG9 : 18|11@0+ (0.1,-102.4) [-62.5|62.5] "A" DEV1
446+
SG_ SIG10 : 4|13@0+ (0.1,0) [350|450] "V" DEV1
447+
''').encode('utf-8'))
448+
matrix = canmatrix.formats.dbc.load(dbc, dbcImportEncoding="utf8")
449+
# Motorola forward LSB
450+
assert matrix.frames[0].signal_by_name("SIG1").get_startbit(True, True) == 36
451+
assert matrix.frames[0].signal_by_name("SIG2").get_startbit(True, True) == 52
452+
assert matrix.frames[0].signal_by_name("SIG3").get_startbit(True, True) == 56
453+
assert matrix.frames[0].signal_by_name("SIG4").get_startbit(True, True) == 6
454+
assert matrix.frames[0].signal_by_name("SIG5").get_startbit(True, True) == 5
455+
assert matrix.frames[0].signal_by_name("SIG6").get_startbit(True, True) == 21
456+
assert matrix.frames[0].signal_by_name("SIG7").get_startbit(True, True) == 7
457+
assert matrix.frames[0].signal_by_name("SIG8").get_startbit(True, True) == 40
458+
assert matrix.frames[0].signal_by_name("SIG9").get_startbit(True, True) == 24
459+
assert matrix.frames[0].signal_by_name("SIG10").get_startbit(True, True) == 8
460+
# Motorola forward MSB
461+
assert matrix.frames[0].signal_by_name("SIG1").get_startbit(True, False) == 39
462+
assert matrix.frames[0].signal_by_name("SIG2").get_startbit(True, False) == 52
463+
assert matrix.frames[0].signal_by_name("SIG3").get_startbit(True, False) == 51
464+
assert matrix.frames[0].signal_by_name("SIG4").get_startbit(True, False) == 6
465+
assert matrix.frames[0].signal_by_name("SIG5").get_startbit(True, False) == 5
466+
assert matrix.frames[0].signal_by_name("SIG6").get_startbit(True, False) == 23
467+
assert matrix.frames[0].signal_by_name("SIG7").get_startbit(True, False) == 7
468+
assert matrix.frames[0].signal_by_name("SIG8").get_startbit(True, False) == 34
469+
assert matrix.frames[0].signal_by_name("SIG9").get_startbit(True, False) == 18
470+
assert matrix.frames[0].signal_by_name("SIG10").get_startbit(True, False) == 4
471+
472+
433473
def test_missing_space():
434474
dbc = io.BytesIO(textwrap.dedent(u'''\
435475
BO_ 17 Frame_1: 8 Vector__XXX
@@ -438,3 +478,4 @@ def test_missing_space():
438478
matrix = canmatrix.formats.dbc.load(dbc, dbcImportEncoding="utf8")
439479
assert matrix.frames[0].signals[0].name == "sig1"
440480

481+

0 commit comments

Comments
 (0)