|
|
@@ -41,3 +41,36 @@ class TestTargetTimeAdjuster(unittest.TestCase): |
|
|
|
self.assertEqual(tta._features_total_time(features), 10.0) |
|
|
|
self.assertEqual(tta._features_total_time([]), 0.0) |
|
|
|
self.assertIs(type(tta._features_total_time([])), float) |
|
|
|
|
|
|
|
def test_determine_margin(self): |
|
|
|
"""Test the TTA can determine the target time margins |
|
|
|
|
|
|
|
Args: time, margin, strategy (strategy in: ABSOLUTE, PERCENT) |
|
|
|
|
|
|
|
Test: |
|
|
|
- margin of zero |
|
|
|
- margin of 5.0 |
|
|
|
- margin of 10.0 |
|
|
|
- margin of 100.0 |
|
|
|
- both ABSOLUTE and PERCENT strategies |
|
|
|
|
|
|
|
TODO: figure out what should be done with negative margins & margins > 100.0 |
|
|
|
""" |
|
|
|
|
|
|
|
tta = adjusters.TargetTimeAdjuster() |
|
|
|
with self.subTest("ABSOLUTE"): |
|
|
|
strategy = adjusters.TargetTimeAdjuster._STRATEGY.ABSOLUTE |
|
|
|
test_cases = [] |
|
|
|
# populate test cases with tuples of (time, margin, expected) |
|
|
|
# zero margin |
|
|
|
test_cases.append((60.0, 0.0, (60.0, 60.0))) |
|
|
|
# margin of 5.0 |
|
|
|
test_cases.append((60.0, 5.0, (55.0, 65.0))) |
|
|
|
# margin of 10.0 |
|
|
|
test_cases.append((60.0, 10.0, (50.0, 70.0))) |
|
|
|
# margin of 100.0 |
|
|
|
test_cases.append((60.0, 100.0, (0.0, 160.0))) |
|
|
|
|
|
|
|
# test |
|
|
|
for time, margin, expected in test_cases: |
|
|
|
self.assertEqual(tta._determine_margin(time, margin, strategy), expected) |