def test_should_return_correct_size_ranges(self): expected = [0.8591994480026335, 1.7041441133233817, 3.3800151591412964, 6.703953255306071, 13.296682746460451] self.assertEqual( expected, statistics.size_ranges([1, 2, 3, 4, 5, 6, 7]))
def execute(self): """Calculate and display the relative size table report""" data = io.read_csv_file(self.file_path) if not data: print "NO DATA" return if not all([self.are_valid_keys(each.keys()) for each in data]): raise RuntimeError( 'Invalid data columns {}'.format(data[0].keys())) normalized_data = self.get_normalized_data(data) normalized_by_category = self.group_by_category(normalized_data) results = {} for category, items in normalized_by_category.iteritems(): if len(items) < 2: results[category] = [items[0]] * 5 else: results[category] = statistics.size_ranges(items) self.print_table(results)