xref: /aosp_15_r20/external/cronet/components/metrics/metrics_data_validation_unittest.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2021 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "components/metrics/metrics_data_validation.h"
6 
7 #include "base/test/scoped_feature_list.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9 
10 namespace metrics {
11 
12 namespace {
13 
TEST(MetricsDataValidationTest,TestGetPseudoMetricsSampleNumeric)14 TEST(MetricsDataValidationTest, TestGetPseudoMetricsSampleNumeric) {
15   const double sample = 100;
16   {
17     base::test::ScopedFeatureList scoped_feature_list;
18 
19     // When the feature is not enabled, |sample| should not be changed.
20     EXPECT_DOUBLE_EQ(GetPseudoMetricsSample(sample), sample);
21   }
22 
23   {
24     base::test::ScopedFeatureList scoped_feature_list;
25     // Small effect size.
26     scoped_feature_list.InitAndEnableFeatureWithParameters(
27         internal::kPseudoMetricsEffectFeature,
28         {{"multiplicative_factor", "1.02"}});
29 
30     // Added a small effect size. Make sure it relects on the pseudo sample.
31     EXPECT_DOUBLE_EQ(GetPseudoMetricsSample(sample), 102);
32   }
33 
34   {
35     base::test::ScopedFeatureList scoped_feature_list;
36     // Add Big effect size and additive factor.
37     scoped_feature_list.InitAndEnableFeatureWithParameters(
38         internal::kPseudoMetricsEffectFeature,
39         {{"multiplicative_factor", "1.10"}, {"additive_factor", "5"}});
40 
41     // Added a big effect size and additive factor. Make sure it relects on the
42     // pseudo sample.
43     EXPECT_DOUBLE_EQ(GetPseudoMetricsSample(sample), 115);
44   }
45 }
46 
TEST(MetricsDataValidationTest,TestGetPseudoMetricsSampleTimeDelta)47 TEST(MetricsDataValidationTest, TestGetPseudoMetricsSampleTimeDelta) {
48   // Make sure this also works for time metrics.
49   const base::TimeDelta sample = base::Milliseconds(100);
50   {
51     base::test::ScopedFeatureList scoped_feature_list;
52 
53     EXPECT_EQ(GetPseudoMetricsSample(sample), sample);
54   }
55 
56   {
57     base::test::ScopedFeatureList scoped_feature_list;
58     // Small effect size.
59     scoped_feature_list.InitAndEnableFeatureWithParameters(
60         internal::kPseudoMetricsEffectFeature,
61         {{"multiplicative_factor", "1.02"}});
62 
63     EXPECT_EQ(GetPseudoMetricsSample(sample), base::Milliseconds(102));
64   }
65 
66   {
67     base::test::ScopedFeatureList scoped_feature_list;
68     // Big effect size.
69     scoped_feature_list.InitAndEnableFeatureWithParameters(
70         internal::kPseudoMetricsEffectFeature,
71         {{"multiplicative_factor", "1.10"}, {"additive_factor", "5"}});
72 
73     EXPECT_EQ(GetPseudoMetricsSample(sample), base::Milliseconds(115));
74   }
75 }
76 
77 }  // namespace
78 
79 }  // namespace metrics
80