Esempio n. 1
0
    def test_generate_equi_width_buckets(self):
        _assert_buckets_almost_equal(
            self,
            quantiles_util.generate_equi_width_buckets(
                quantiles=[1.0, 5.0, 10.0, 15.0, 20.0],
                min_val=0,
                max_val=24.0,
                total_count=18,
                num_buckets=3), [
                    quantiles_util.Bucket(0, 8.0, 7.8),
                    quantiles_util.Bucket(8.0, 16.0, 4.8),
                    quantiles_util.Bucket(16.0, 24.0, 5.4)
                ])

        _assert_buckets_almost_equal(
            self,
            quantiles_util.generate_equi_width_buckets(
                quantiles=[1.0, 2.0, 3.0, 4.0, 5.0],
                min_val=1.0,
                max_val=5.0,
                total_count=6,
                num_buckets=3), [
                    quantiles_util.Bucket(1.0, 2.33333333, 2.33333333),
                    quantiles_util.Bucket(2.33333333, 3.66666666, 1.33333333),
                    quantiles_util.Bucket(3.66666666, 5, 2.33333333)
                ])

        _assert_buckets_almost_equal(
            self,
            quantiles_util.generate_equi_width_buckets(
                quantiles=[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],
                min_val=1.0,
                max_val=1.0,
                total_count=100,
                num_buckets=3), [quantiles_util.Bucket(1.0, 1.0, 100.0)])
Esempio n. 2
0
_EQUI_WIDTH_BUCKETS_TESTS = [
    {
        'testcase_name':
        'finite_values_integer_boundaries',
        'quantiles': [0, 1.0, 5.0, 10.0, 15.0, 20.0, 24.0],
        'finite_min':
        0,
        'finite_max':
        24,
        'total_count':
        18,
        'num_buckets':
        3,
        'expected_buckets': [
            quantiles_util.Bucket(0, 8.0, 7.8),
            quantiles_util.Bucket(8.0, 16.0, 4.8),
            quantiles_util.Bucket(16.0, 24.0, 5.4)
        ],
    },
    {
        'testcase_name':
        'finite_values_float_boundaries',
        'quantiles': [1.0, 1.0, 2.0, 3.0, 4.0, 5.0, 5.0],
        'finite_min':
        1,
        'finite_max':
        5,
        'total_count':
        6,
        'num_buckets':
Esempio n. 3
0
  def test_find_median(self):
    self.assertEqual(quantiles_util.find_median([5.0]), 5.0)
    self.assertEqual(quantiles_util.find_median([3.0, 5.0]), 4.0)
    self.assertEqual(quantiles_util.find_median([3.0, 4.0, 5.0]), 4.0)
    self.assertEqual(quantiles_util.find_median([3.0, 4.0, 5.0, 6.0]), 4.5)


_EQUI_WIDTH_BUCKETS_TESTS = [
    {
        'testcase_name': 'finite_values_integer_boundaries',
        'quantiles': [0, 1.0, 5.0, 10.0, 15.0, 20.0, 24.0],
        'finite_min': 0,
        'finite_max': 24,
        'total_count': 18,
        'num_buckets': 3,
        'expected_buckets': [quantiles_util.Bucket(0, 8.0, 7.8),
                             quantiles_util.Bucket(8.0, 16.0, 4.8),
                             quantiles_util.Bucket(16.0, 24.0, 5.4)],
    },
    {
        'testcase_name': 'finite_values_float_boundaries',
        'quantiles': [1.0, 1.0, 2.0, 3.0, 4.0, 5.0, 5.0],
        'finite_min': 1,
        'finite_max': 5,
        'total_count': 6,
        'num_buckets': 3,
        'expected_buckets': [
            quantiles_util.Bucket(1.0, 2.33333333, 2.33333333),
            quantiles_util.Bucket(2.33333333, 3.66666666, 1.33333333),
            quantiles_util.Bucket(3.66666666, 5, 2.33333333)],
    },