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)