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