| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/translate/core/browser/translate_ranker_impl.h" | 5 #include "components/translate/core/browser/translate_ranker_impl.h" |
| 6 | 6 |
| 7 #include <initializer_list> | 7 #include <initializer_list> |
| 8 #include <memory> | 8 #include <memory> |
| 9 | 9 |
| 10 #include "base/feature_list.h" | 10 #include "base/feature_list.h" |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 #include "components/translate/core/browser/translate_prefs.h" | 25 #include "components/translate/core/browser/translate_prefs.h" |
| 26 #include "net/url_request/test_url_fetcher_factory.h" | 26 #include "net/url_request/test_url_fetcher_factory.h" |
| 27 #include "net/url_request/url_request_test_util.h" | 27 #include "net/url_request/url_request_test_util.h" |
| 28 #include "testing/gtest/include/gtest/gtest.h" | 28 #include "testing/gtest/include/gtest/gtest.h" |
| 29 | 29 |
| 30 namespace { | 30 namespace { |
| 31 | 31 |
| 32 using translate::kTranslateRankerEnforcement; | 32 using translate::kTranslateRankerEnforcement; |
| 33 using translate::kTranslateRankerLogging; | 33 using translate::kTranslateRankerLogging; |
| 34 using translate::kTranslateRankerQuery; | 34 using translate::kTranslateRankerQuery; |
| 35 using translate::kTranslateRankerDecisionOverride; |
| 35 using translate::TranslateDownloadManager; | 36 using translate::TranslateDownloadManager; |
| 36 using translate::TranslateRankerFeatures; | 37 using translate::TranslateRankerFeatures; |
| 37 using translate::TranslatePrefs; | 38 using translate::TranslatePrefs; |
| 38 using translate::TranslateRankerImpl; | 39 using translate::TranslateRankerImpl; |
| 39 | 40 |
| 40 class TranslateRankerImplTest : public ::testing::Test { | 41 class TranslateRankerImplTest : public ::testing::Test { |
| 41 protected: | 42 protected: |
| 42 TranslateRankerImplTest(); | 43 TranslateRankerImplTest(); |
| 43 | 44 |
| 44 void SetUp() override; | 45 void SetUp() override; |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 return translate_event; | 190 return translate_event; |
| 190 } | 191 } |
| 191 | 192 |
| 192 } // namespace | 193 } // namespace |
| 193 | 194 |
| 194 TEST_F(TranslateRankerImplTest, DisabledByDefault) { | 195 TEST_F(TranslateRankerImplTest, DisabledByDefault) { |
| 195 InitFeatures({}, {}); | 196 InitFeatures({}, {}); |
| 196 auto ranker = GetRankerForTest(0.5); | 197 auto ranker = GetRankerForTest(0.5); |
| 197 EXPECT_FALSE(ranker->IsQueryEnabled()); | 198 EXPECT_FALSE(ranker->IsQueryEnabled()); |
| 198 EXPECT_FALSE(ranker->IsEnforcementEnabled()); | 199 EXPECT_FALSE(ranker->IsEnforcementEnabled()); |
| 200 EXPECT_FALSE(ranker->IsDecisionOverrideEnabled()); |
| 199 EXPECT_FALSE(ranker->IsLoggingEnabled()); | 201 EXPECT_FALSE(ranker->IsLoggingEnabled()); |
| 200 } | 202 } |
| 201 | 203 |
| 202 TEST_F(TranslateRankerImplTest, ExplicitlyDisabled) { | 204 TEST_F(TranslateRankerImplTest, ExplicitlyDisabled) { |
| 203 InitFeatures({}, {kTranslateRankerQuery, kTranslateRankerEnforcement, | 205 InitFeatures({}, {kTranslateRankerQuery, kTranslateRankerEnforcement, |
| 204 kTranslateRankerLogging}); | 206 kTranslateRankerLogging, kTranslateRankerDecisionOverride}); |
| 205 auto ranker = GetRankerForTest(0.5); | 207 auto ranker = GetRankerForTest(0.5); |
| 206 EXPECT_FALSE(ranker->IsQueryEnabled()); | 208 EXPECT_FALSE(ranker->IsQueryEnabled()); |
| 207 EXPECT_FALSE(ranker->IsEnforcementEnabled()); | 209 EXPECT_FALSE(ranker->IsEnforcementEnabled()); |
| 210 EXPECT_FALSE(ranker->IsDecisionOverrideEnabled()); |
| 208 EXPECT_FALSE(ranker->IsLoggingEnabled()); | 211 EXPECT_FALSE(ranker->IsLoggingEnabled()); |
| 209 } | 212 } |
| 210 | 213 |
| 211 TEST_F(TranslateRankerImplTest, EnableQuery) { | 214 TEST_F(TranslateRankerImplTest, EnableQuery) { |
| 212 InitFeatures({kTranslateRankerQuery}, {kTranslateRankerEnforcement}); | 215 InitFeatures({kTranslateRankerQuery}, {kTranslateRankerEnforcement}); |
| 213 auto ranker = GetRankerForTest(0.5); | 216 auto ranker = GetRankerForTest(0.5); |
| 214 EXPECT_TRUE(ranker->IsQueryEnabled()); | 217 EXPECT_TRUE(ranker->IsQueryEnabled()); |
| 215 EXPECT_FALSE(ranker->IsEnforcementEnabled()); | 218 EXPECT_FALSE(ranker->IsEnforcementEnabled()); |
| 219 EXPECT_FALSE(ranker->IsDecisionOverrideEnabled()); |
| 216 EXPECT_FALSE(ranker->IsLoggingEnabled()); | 220 EXPECT_FALSE(ranker->IsLoggingEnabled()); |
| 217 } | 221 } |
| 218 | 222 |
| 219 TEST_F(TranslateRankerImplTest, EnableEnforcement) { | 223 TEST_F(TranslateRankerImplTest, EnableEnforcement) { |
| 220 InitFeatures({kTranslateRankerEnforcement}, {kTranslateRankerQuery}); | 224 InitFeatures({kTranslateRankerEnforcement}, {kTranslateRankerQuery}); |
| 221 auto ranker = GetRankerForTest(0.5); | 225 auto ranker = GetRankerForTest(0.5); |
| 222 EXPECT_FALSE(ranker->IsQueryEnabled()); | 226 EXPECT_FALSE(ranker->IsQueryEnabled()); |
| 223 EXPECT_TRUE(ranker->IsEnforcementEnabled()); | 227 EXPECT_TRUE(ranker->IsEnforcementEnabled()); |
| 228 EXPECT_FALSE(ranker->IsDecisionOverrideEnabled()); |
| 224 EXPECT_FALSE(ranker->IsLoggingEnabled()); | 229 EXPECT_FALSE(ranker->IsLoggingEnabled()); |
| 225 } | 230 } |
| 226 | 231 |
| 227 TEST_F(TranslateRankerImplTest, EnableQueryAndEnforcement) { | 232 TEST_F(TranslateRankerImplTest, EnableQueryAndEnforcement) { |
| 228 InitFeatures({kTranslateRankerQuery, kTranslateRankerEnforcement}, {}); | 233 InitFeatures({kTranslateRankerQuery, kTranslateRankerEnforcement}, {}); |
| 229 auto ranker = GetRankerForTest(0.5); | 234 auto ranker = GetRankerForTest(0.5); |
| 230 EXPECT_TRUE(ranker->IsQueryEnabled()); | 235 EXPECT_TRUE(ranker->IsQueryEnabled()); |
| 231 EXPECT_TRUE(ranker->IsEnforcementEnabled()); | 236 EXPECT_TRUE(ranker->IsEnforcementEnabled()); |
| 237 EXPECT_FALSE(ranker->IsDecisionOverrideEnabled()); |
| 232 EXPECT_FALSE(ranker->IsLoggingEnabled()); | 238 EXPECT_FALSE(ranker->IsLoggingEnabled()); |
| 233 } | 239 } |
| 234 | 240 |
| 241 TEST_F(TranslateRankerImplTest, EnableDecisionOverride) { |
| 242 InitFeatures({kTranslateRankerDecisionOverride}, {}); |
| 243 auto ranker = GetRankerForTest(0.5); |
| 244 EXPECT_FALSE(ranker->IsQueryEnabled()); |
| 245 EXPECT_TRUE(ranker->IsEnforcementEnabled()); |
| 246 EXPECT_TRUE(ranker->IsDecisionOverrideEnabled()); |
| 247 EXPECT_FALSE(ranker->IsLoggingEnabled()); |
| 248 } |
| 249 |
| 235 TEST_F(TranslateRankerImplTest, EnableLogging) { | 250 TEST_F(TranslateRankerImplTest, EnableLogging) { |
| 236 InitFeatures({kTranslateRankerLogging}, {}); | 251 InitFeatures({kTranslateRankerLogging}, {}); |
| 237 auto ranker = GetRankerForTest(0.5); | 252 auto ranker = GetRankerForTest(0.5); |
| 238 EXPECT_FALSE(ranker->IsQueryEnabled()); | 253 EXPECT_FALSE(ranker->IsQueryEnabled()); |
| 239 EXPECT_FALSE(ranker->IsEnforcementEnabled()); | 254 EXPECT_FALSE(ranker->IsEnforcementEnabled()); |
| 255 EXPECT_FALSE(ranker->IsDecisionOverrideEnabled()); |
| 240 EXPECT_TRUE(ranker->IsLoggingEnabled()); | 256 EXPECT_TRUE(ranker->IsLoggingEnabled()); |
| 241 } | 257 } |
| 242 | 258 |
| 243 TEST_F(TranslateRankerImplTest, EnableAll) { | 259 TEST_F(TranslateRankerImplTest, EnableAll) { |
| 244 InitFeatures({kTranslateRankerQuery, kTranslateRankerEnforcement, | 260 InitFeatures({kTranslateRankerQuery, kTranslateRankerEnforcement, |
| 245 kTranslateRankerLogging}, | 261 kTranslateRankerLogging, kTranslateRankerDecisionOverride}, |
| 246 {}); | 262 {}); |
| 247 auto ranker = GetRankerForTest(0.5); | 263 auto ranker = GetRankerForTest(0.5); |
| 248 EXPECT_TRUE(ranker->IsQueryEnabled()); | 264 EXPECT_TRUE(ranker->IsQueryEnabled()); |
| 249 EXPECT_TRUE(ranker->IsEnforcementEnabled()); | 265 EXPECT_TRUE(ranker->IsEnforcementEnabled()); |
| 266 EXPECT_TRUE(ranker->IsDecisionOverrideEnabled()); |
| 250 EXPECT_TRUE(ranker->IsLoggingEnabled()); | 267 EXPECT_TRUE(ranker->IsLoggingEnabled()); |
| 251 } | 268 } |
| 252 | 269 |
| 253 TEST_F(TranslateRankerImplTest, CalculateScore) { | 270 TEST_F(TranslateRankerImplTest, CalculateScore) { |
| 254 InitFeatures({kTranslateRankerQuery, kTranslateRankerEnforcement}, {}); | 271 InitFeatures({kTranslateRankerQuery, kTranslateRankerEnforcement}, {}); |
| 255 auto ranker = GetRankerForTest(0.01f); | 272 auto ranker = GetRankerForTest(0.01f); |
| 256 // Calculate the score using: a 50:50 accept/decline ratio; the one-hot | 273 // Calculate the score using: a 50:50 accept/decline ratio; the one-hot |
| 257 // values for the src lang, dest lang, locale and counry; and, the bias. | 274 // values for the src lang, dest lang, locale and counry; and, the bias. |
| 258 double expected = Sigmoid(50.0 * 0.13f + // accept count * weight | 275 double expected = Sigmoid(50.0 * 0.13f + // accept count * weight |
| 259 50.0 * -0.14f + // decline count * weight | 276 50.0 * -0.14f + // decline count * weight |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 315 EXPECT_EQ(0U, flushed_events.size()); | 332 EXPECT_EQ(0U, flushed_events.size()); |
| 316 | 333 |
| 317 ranker->AddTranslateEvent(CreateTranslateEvent("fr", "en", 1, 0, 3)); | 334 ranker->AddTranslateEvent(CreateTranslateEvent("fr", "en", 1, 0, 3)); |
| 318 ranker->AddTranslateEvent(CreateTranslateEvent("jp", "en", 2, 0, 3)); | 335 ranker->AddTranslateEvent(CreateTranslateEvent("jp", "en", 2, 0, 3)); |
| 319 ranker->AddTranslateEvent(CreateTranslateEvent("es", "de", 4, 5, 6)); | 336 ranker->AddTranslateEvent(CreateTranslateEvent("es", "de", 4, 5, 6)); |
| 320 | 337 |
| 321 // Logging is disabled, so no events should be cached. | 338 // Logging is disabled, so no events should be cached. |
| 322 ranker->FlushTranslateEvents(&flushed_events); | 339 ranker->FlushTranslateEvents(&flushed_events); |
| 323 EXPECT_EQ(0U, flushed_events.size()); | 340 EXPECT_EQ(0U, flushed_events.size()); |
| 324 } | 341 } |
| OLD | NEW |