def test_getSpanAverageByCode_and_getPercentageDeltaOffSpanAverage(self): testSymbolData = SymbolData('A') span_to_test = [1.34, 5.6, -3.5, -0.3, 2.2] span_expected_average = 1.068 span_even_expected_average = 0.01333 span_odd_expected_average = 2.65 off_average_value_to_test = 1.12 span_code = 'test_span' testSymbolData.initializeSpanByCode(span_code) first_expected_none_value = testSymbolData.getSpanAverageByCode(span_code) self.assertIsNone(first_expected_none_value, 'A None value was not returned when getting the average of a span with no values') second_expected_none_value = testSymbolData.getPercentageDeltaOffSpanAverage(span_code, off_average_value_to_test) self.assertIsNone(second_expected_none_value, 'A None value was not returned when getting the percentage delta off average of a span with no values') unit_label_prefix = 'units_' i = 0 for value in span_to_test: unit_label_suffix = 'even' if ((i % 2) == 0) else 'odd' unit_label = unit_label_prefix + unit_label_suffix unit_labels_list = [unit_label, i] testSymbolData.addSpanValueByCode(span_code, unit_labels_list, value) i += 1 # Test average for all units in span span_test_average = testSymbolData.getSpanAverageByCode(span_code) self.assertEqual(span_expected_average, span_test_average, 'The computed average for a test span for a test SymbolData object was expected to be {0} but was {1}'.format(span_expected_average, span_test_average)) expected_delta_off_average = 0.0486891385768 test_delta_off_average = testSymbolData.getPercentageDeltaOffSpanAverage(span_code, off_average_value_to_test) test_delta_off_average = round(test_delta_off_average, 13) self.assertEqual(expected_delta_off_average, test_delta_off_average, 'The computed delta percentage off average for a test SymbolData object was expected to be {0} but was {1}'.format(expected_delta_off_average, test_delta_off_average)) # Test average for odd/even units in span even_units_label = unit_label_prefix + 'even' test_even_units_average = testSymbolData.getSpanAverageByCode(span_code, even_units_label) test_even_units_average = round(test_even_units_average, 5) self.assertEqual(test_even_units_average, span_even_expected_average) odd_units_label = unit_label_prefix + 'odd' test_odd_units_average = testSymbolData.getSpanAverageByCode(span_code, odd_units_label) self.assertEqual(test_odd_units_average, span_odd_expected_average) # Test off-average for odd/even units in span expected_off_even_average_value = 83.0 expected_off_odd_average_value = -0.57736 test_delta_off_even_average = testSymbolData.getPercentageDeltaOffSpanAverage(span_code, off_average_value_to_test, even_units_label) test_delta_off_even_average = round(test_delta_off_even_average, 1) test_delta_off_odd_average = testSymbolData.getPercentageDeltaOffSpanAverage(span_code, off_average_value_to_test, odd_units_label) test_delta_off_odd_average = round(test_delta_off_odd_average, 5) self.assertEqual(expected_off_even_average_value, test_delta_off_even_average) self.assertEqual(expected_off_odd_average_value, test_delta_off_odd_average)