| // Copyright 2021 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "components/metrics/metrics_data_validation.h" |
| |
| #include "base/test/scoped_feature_list.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace metrics { |
| |
| namespace { |
| |
| TEST(MetricsDataValidationTest, TestGetPseudoMetricsSampleNumeric) { |
| const double sample = 100; |
| { |
| base::test::ScopedFeatureList scoped_feature_list; |
| |
| // When the feature is not enabled, |sample| should not be changed. |
| EXPECT_DOUBLE_EQ(GetPseudoMetricsSample(sample), sample); |
| } |
| |
| { |
| base::test::ScopedFeatureList scoped_feature_list; |
| // Small effect size. |
| scoped_feature_list.InitAndEnableFeatureWithParameters( |
| internal::kPseudoMetricsEffectFeature, |
| {{"multiplicative_factor", "1.02"}}); |
| |
| // Added a small effect size. Make sure it relects on the pseudo sample. |
| EXPECT_DOUBLE_EQ(GetPseudoMetricsSample(sample), 102); |
| } |
| |
| { |
| base::test::ScopedFeatureList scoped_feature_list; |
| // Add Big effect size and additive factor. |
| scoped_feature_list.InitAndEnableFeatureWithParameters( |
| internal::kPseudoMetricsEffectFeature, |
| {{"multiplicative_factor", "1.10"}, {"additive_factor", "5"}}); |
| |
| // Added a big effect size and additive factor. Make sure it relects on the |
| // pseudo sample. |
| EXPECT_DOUBLE_EQ(GetPseudoMetricsSample(sample), 115); |
| } |
| } |
| |
| TEST(MetricsDataValidationTest, TestGetPseudoMetricsSampleTimeDelta) { |
| // Make sure this also works for time metrics. |
| const base::TimeDelta sample = base::Milliseconds(100); |
| { |
| base::test::ScopedFeatureList scoped_feature_list; |
| |
| EXPECT_EQ(GetPseudoMetricsSample(sample), sample); |
| } |
| |
| { |
| base::test::ScopedFeatureList scoped_feature_list; |
| // Small effect size. |
| scoped_feature_list.InitAndEnableFeatureWithParameters( |
| internal::kPseudoMetricsEffectFeature, |
| {{"multiplicative_factor", "1.02"}}); |
| |
| EXPECT_EQ(GetPseudoMetricsSample(sample), base::Milliseconds(102)); |
| } |
| |
| { |
| base::test::ScopedFeatureList scoped_feature_list; |
| // Big effect size. |
| scoped_feature_list.InitAndEnableFeatureWithParameters( |
| internal::kPseudoMetricsEffectFeature, |
| {{"multiplicative_factor", "1.10"}, {"additive_factor", "5"}}); |
| |
| EXPECT_EQ(GetPseudoMetricsSample(sample), base::Milliseconds(115)); |
| } |
| } |
| |
| } // namespace |
| |
| } // namespace metrics |