summaryrefslogtreecommitdiff
path: root/test/test_timingharness.py
diff options
context:
space:
mode:
authorDaniel Friesel <daniel.friesel@uos.de>2021-03-17 17:56:01 +0100
committerDaniel Friesel <daniel.friesel@uos.de>2021-03-17 17:56:01 +0100
commit53546c9c52b4b45525726babbeb01f7532922783 (patch)
tree7b71e101619134f19a1da57c7dbda99940649294 /test/test_timingharness.py
parent162a0c287f5dab664e9168a60d76c9f8da07e46a (diff)
always handle co-dependent parameters
Diffstat (limited to 'test/test_timingharness.py')
-rwxr-xr-xtest/test_timingharness.py40
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):