summaryrefslogtreecommitdiffstats
path: root/chrome/browser/omnibox/omnibox_field_trial_unittest.cc
diff options
context:
space:
mode:
authorbartn@chromium.org <bartn@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-26 22:41:34 +0000
committerbartn@chromium.org <bartn@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-26 22:41:34 +0000
commitff34ad59ce2dd38e33ff85ed64a3b14f4a324a31 (patch)
treeacac6c2f65694afdb23ebabbedf0484626aa5efa /chrome/browser/omnibox/omnibox_field_trial_unittest.cc
parentead51fead0f5832bf8167499ba9c58b20e49d992 (diff)
downloadchromium_src-ff34ad59ce2dd38e33ff85ed64a3b14f4a324a31.zip
chromium_src-ff34ad59ce2dd38e33ff85ed64a3b14f4a324a31.tar.gz
chromium_src-ff34ad59ce2dd38e33ff85ed64a3b14f4a324a31.tar.bz2
HUP Experimental Scoring framework.
High level summary: (a) Introduce a new set of Finch variation params and use it in the Omnibox bundled experiment (b) Group together HUP scoring params in a HUPScoringParams struct and initialize it based on the new experiment params (c) Modify HUP scoring by applying optional demotion This change is fairly safe because of the following reasons: (1) It is disabled by default (2) It never changes the relative order of HUP matches (3) It can only demote a HUP match (4) It is fairly isolated and unobtrusive BUG=295756 TESTS=OmniboxFieldTrialTest,HistoryURLProviderTest Review URL: https://codereview.chromium.org/23707058 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242569 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/omnibox/omnibox_field_trial_unittest.cc')
-rw-r--r--chrome/browser/omnibox/omnibox_field_trial_unittest.cc58
1 files changed, 58 insertions, 0 deletions
diff --git a/chrome/browser/omnibox/omnibox_field_trial_unittest.cc b/chrome/browser/omnibox/omnibox_field_trial_unittest.cc
index 4eda354..32e1d80 100644
--- a/chrome/browser/omnibox/omnibox_field_trial_unittest.cc
+++ b/chrome/browser/omnibox/omnibox_field_trial_unittest.cc
@@ -325,3 +325,61 @@ TEST_F(OmniboxFieldTrialTest, GetValueForRuleInContext) {
"rule5", AutocompleteInput::OTHER); // no rule at all
}
}
+
+TEST_F(OmniboxFieldTrialTest, HUPNewScoringFieldTrial) {
+ {
+ std::map<std::string, std::string> params;
+ params[std::string(OmniboxFieldTrial::kHUPNewScoringEnabledParam)] = "1";
+ params[std::string(
+ OmniboxFieldTrial::kHUPNewScoringTypedCountRelevanceCapParam)] = "56";
+ params[std::string(
+ OmniboxFieldTrial::kHUPNewScoringTypedCountHalfLifeTimeParam)] = "77";
+ params[std::string(
+ OmniboxFieldTrial::kHUPNewScoringTypedCountScoreBucketsParam)] =
+ "0.2:25,0.1:1001,2.3:777";
+ params[std::string(
+ OmniboxFieldTrial::kHUPNewScoringVisitedCountRelevanceCapParam)] = "11";
+ params[std::string(
+ OmniboxFieldTrial::kHUPNewScoringVisitedCountHalfLifeTimeParam)] = "31";
+ params[std::string(
+ OmniboxFieldTrial::kHUPNewScoringVisitedCountScoreBucketsParam)] =
+ "5:300,0:200";
+ ASSERT_TRUE(chrome_variations::AssociateVariationParams(
+ OmniboxFieldTrial::kBundledExperimentFieldTrialName, "A", params));
+ }
+ base::FieldTrialList::CreateFieldTrial(
+ OmniboxFieldTrial::kBundledExperimentFieldTrialName, "A");
+
+ HUPScoringParams scoring_params;
+ OmniboxFieldTrial::GetExperimentalHUPScoringParams(&scoring_params);
+ EXPECT_TRUE(scoring_params.experimental_scoring_enabled);
+ EXPECT_EQ(56, scoring_params.typed_count_buckets.relevance_cap());
+ EXPECT_EQ(77, scoring_params.typed_count_buckets.half_life_days());
+ ASSERT_EQ(3u, scoring_params.typed_count_buckets.buckets().size());
+ EXPECT_EQ(std::make_pair(2.3, 777),
+ scoring_params.typed_count_buckets.buckets()[0]);
+ EXPECT_EQ(std::make_pair(0.2, 25),
+ scoring_params.typed_count_buckets.buckets()[1]);
+ EXPECT_EQ(std::make_pair(0.1, 1001),
+ scoring_params.typed_count_buckets.buckets()[2]);
+ EXPECT_EQ(11, scoring_params.visited_count_buckets.relevance_cap());
+ EXPECT_EQ(31, scoring_params.visited_count_buckets.half_life_days());
+ ASSERT_EQ(2u, scoring_params.visited_count_buckets.buckets().size());
+ EXPECT_EQ(std::make_pair(5.0, 300),
+ scoring_params.visited_count_buckets.buckets()[0]);
+ EXPECT_EQ(std::make_pair(0.0, 200),
+ scoring_params.visited_count_buckets.buckets()[1]);
+}
+
+TEST_F(OmniboxFieldTrialTest, HalfLifeTimeDecay) {
+ HUPScoringParams::ScoreBuckets buckets;
+
+ // No decay by default.
+ EXPECT_EQ(1.0, buckets.HalfLifeTimeDecay(base::TimeDelta::FromDays(7)));
+
+ buckets.set_half_life_days(7);
+ EXPECT_EQ(0.5, buckets.HalfLifeTimeDecay(base::TimeDelta::FromDays(7)));
+ EXPECT_EQ(0.25, buckets.HalfLifeTimeDecay(base::TimeDelta::FromDays(14)));
+ EXPECT_EQ(1.0, buckets.HalfLifeTimeDecay(base::TimeDelta::FromDays(0)));
+ EXPECT_EQ(1.0, buckets.HalfLifeTimeDecay(base::TimeDelta::FromDays(-1)));
+}