Skip to content

Commit f554eee

Browse files
committed
Add tests for value scaling
1 parent 0ed05c6 commit f554eee

File tree

1 file changed

+83
-0
lines changed

1 file changed

+83
-0
lines changed

tests/unit/test_mapper.py

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,3 +340,86 @@ def test_event_mapping(self):
340340
self.assertEqual(len(messages2), 1)
341341
event_data2 = json.loads(messages2[0].data)
342342
self.assertEqual(event_data2["text"], "This event tests the event mapping")
343+
344+
def test_value_scaling_combined(self):
345+
register_def = {
346+
"number": 100,
347+
"startbit": 0,
348+
"nobits": 16,
349+
"multiplier": 3,
350+
"divisor": 4,
351+
"decimalshiftright": 1,
352+
"offset": -20,
353+
"signed": False,
354+
"measurementmapping": {"templatestring": '{"temp": %%}'},
355+
}
356+
357+
messages, _ = self.mapper.map_register(
358+
read_register=[20], register_def=register_def
359+
)
360+
data = json.loads(messages[0].data)
361+
self.assertAlmostEqual(data["temp"], 130.0)
362+
363+
def test_value_scaling_multiplier(self):
364+
register_def = {
365+
"number": 100,
366+
"startbit": 0,
367+
"nobits": 16,
368+
"multiplier": 3,
369+
"signed": False,
370+
"measurementmapping": {"templatestring": '{"temp": %%}'},
371+
}
372+
373+
messages, _ = self.mapper.map_register(
374+
read_register=[20], register_def=register_def
375+
)
376+
data = json.loads(messages[0].data)
377+
self.assertAlmostEqual(data["temp"], 60.0)
378+
379+
def test_value_scaling_divisor(self):
380+
register_def = {
381+
"number": 100,
382+
"startbit": 0,
383+
"nobits": 16,
384+
"divisor": 4,
385+
"signed": False,
386+
"measurementmapping": {"templatestring": '{"temp": %%}'},
387+
}
388+
389+
messages, _ = self.mapper.map_register(
390+
read_register=[20], register_def=register_def
391+
)
392+
data = json.loads(messages[0].data)
393+
self.assertAlmostEqual(data["temp"], 5.0)
394+
395+
def test_value_scaling_decimalshiftright(self):
396+
register_def = {
397+
"number": 100,
398+
"startbit": 0,
399+
"nobits": 16,
400+
"decimalshiftright": 2,
401+
"signed": False,
402+
"measurementmapping": {"templatestring": '{"temp": %%}'},
403+
}
404+
405+
messages, _ = self.mapper.map_register(
406+
read_register=[20], register_def=register_def
407+
)
408+
data = json.loads(messages[0].data)
409+
self.assertAlmostEqual(data["temp"], 2000.0)
410+
411+
def test_value_scaling_offset(self):
412+
register_def = {
413+
"number": 100,
414+
"startbit": 0,
415+
"nobits": 16,
416+
"offset": 10,
417+
"signed": False,
418+
"measurementmapping": {"templatestring": '{"temp": %%}'},
419+
}
420+
421+
messages, _ = self.mapper.map_register(
422+
read_register=[50], register_def=register_def
423+
)
424+
data = json.loads(messages[0].data)
425+
self.assertAlmostEqual(data["temp"], 60.0)

0 commit comments

Comments
 (0)