diff options
author | bartn@chromium.org <bartn@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-26 22:41:34 +0000 |
---|---|---|
committer | bartn@chromium.org <bartn@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-26 22:41:34 +0000 |
commit | ff34ad59ce2dd38e33ff85ed64a3b14f4a324a31 (patch) | |
tree | acac6c2f65694afdb23ebabbedf0484626aa5efa /chrome/browser/omnibox/omnibox_field_trial_unittest.cc | |
parent | ead51fead0f5832bf8167499ba9c58b20e49d992 (diff) | |
download | chromium_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.cc | 58 |
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))); +} |