diff options
author | Daniel Friesel <daniel.friesel@uos.de> | 2021-03-17 17:56:01 +0100 |
---|---|---|
committer | Daniel Friesel <daniel.friesel@uos.de> | 2021-03-17 17:56:01 +0100 |
commit | 53546c9c52b4b45525726babbeb01f7532922783 (patch) | |
tree | 7b71e101619134f19a1da57c7dbda99940649294 /test/test_timingharness.py | |
parent | 162a0c287f5dab664e9168a60d76c9f8da07e46a (diff) |
always handle co-dependent parameters
Diffstat (limited to 'test/test_timingharness.py')
-rwxr-xr-x | test/test_timingharness.py | 40 |
1 files changed, 31 insertions, 9 deletions
diff --git a/test/test_timingharness.py b/test/test_timingharness.py index 06edc16..0741c7a 100755 --- a/test/test_timingharness.py +++ b/test/test_timingharness.py @@ -3,7 +3,6 @@ from dfatool.functions import StaticFunction from dfatool.loader import TimingData, pta_trace_to_aggregate from dfatool.model import AnalyticModel -from dfatool.parameters import prune_dependent_parameters import os import unittest @@ -36,11 +35,11 @@ class TestModels(unittest.TestCase): self.assertIsInstance(param_info("setup", "duration"), StaticFunction) self.assertEqual( param_info("write", "duration").model_function, - "0 + regression_arg(0) + regression_arg(1) * parameter(max_retry_count) + regression_arg(2) * parameter(retry_delay) + regression_arg(3) * parameter(max_retry_count) * parameter(retry_delay)", + "0 + regression_arg(0) + regression_arg(1) * parameter(max_retry_count) + regression_arg(2) * parameter(retry_delay) + regression_arg(3) * function_arg(1) + regression_arg(4) * parameter(max_retry_count) * parameter(retry_delay) + regression_arg(5) * parameter(max_retry_count) * function_arg(1) + regression_arg(6) * parameter(retry_delay) * function_arg(1) + regression_arg(7) * parameter(max_retry_count) * parameter(retry_delay) * function_arg(1)", ) self.assertAlmostEqual( - param_info("write", "duration").model_args[0], 1163, places=0 + param_info("write", "duration").model_args[0], 1281, places=0 ) self.assertAlmostEqual( param_info("write", "duration").model_args[1], 464, places=0 @@ -49,14 +48,25 @@ class TestModels(unittest.TestCase): param_info("write", "duration").model_args[2], 1, places=0 ) self.assertAlmostEqual( - param_info("write", "duration").model_args[3], 1, places=0 + param_info("write", "duration").model_args[3], -9, places=0 + ) + self.assertAlmostEqual( + param_info("write", "duration").model_args[4], 1, places=0 + ) + self.assertAlmostEqual( + param_info("write", "duration").model_args[5], 0, places=0 + ) + self.assertAlmostEqual( + param_info("write", "duration").model_args[6], 0, places=0 + ) + self.assertAlmostEqual( + param_info("write", "duration").model_args[7], 0, places=0 ) def test_dependent_parameter_pruning(self): raw_data = TimingData(["test-data/20190815_103347_nRF24_no-rx.json"]) preprocessed_data = raw_data.get_preprocessed_data() by_name, parameters, arg_count = pta_trace_to_aggregate(preprocessed_data) - prune_dependent_parameters(by_name, parameters) model = AnalyticModel(by_name, parameters, arg_count) self.assertEqual( model.names, "getObserveTx setPALevel setRetries setup write".split(" ") @@ -84,20 +94,32 @@ class TestModels(unittest.TestCase): self.assertIsInstance(param_info("setup", "duration"), StaticFunction) self.assertEqual( param_info("write", "duration").model_function, - "0 + regression_arg(0) + regression_arg(1) * parameter(max_retry_count) + regression_arg(2) * parameter(retry_delay) + regression_arg(3) * parameter(max_retry_count) * parameter(retry_delay)", + "0 + regression_arg(0) + regression_arg(1) * parameter(max_retry_count) + regression_arg(2) * parameter(retry_delay) + regression_arg(3) * function_arg(1) + regression_arg(4) * parameter(max_retry_count) * parameter(retry_delay) + regression_arg(5) * parameter(max_retry_count) * function_arg(1) + regression_arg(6) * parameter(retry_delay) * function_arg(1) + regression_arg(7) * parameter(max_retry_count) * parameter(retry_delay) * function_arg(1)", ) self.assertAlmostEqual( - param_info("write", "duration").model_args[0], 1163, places=0 + param_info("write", "duration").model_args[0], 1282, places=0 ) self.assertAlmostEqual( - param_info("write", "duration").model_args[1], 464, places=0 + param_info("write", "duration").model_args[1], 463, places=0 ) self.assertAlmostEqual( param_info("write", "duration").model_args[2], 1, places=0 ) self.assertAlmostEqual( - param_info("write", "duration").model_args[3], 1, places=0 + param_info("write", "duration").model_args[3], -9, places=0 + ) + self.assertAlmostEqual( + param_info("write", "duration").model_args[4], 1, places=0 + ) + self.assertAlmostEqual( + param_info("write", "duration").model_args[5], 0, places=0 + ) + self.assertAlmostEqual( + param_info("write", "duration").model_args[6], 0, places=0 + ) + self.assertAlmostEqual( + param_info("write", "duration").model_args[7], 0, places=0 ) def test_function_override(self): |