示例#1
0
 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]))
示例#2
0
    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)