Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(626)

Side by Side Diff: components/translate/core/browser/translate_ranker_impl_unittest.cc

Issue 2697703004: Allow TranslateRanker to override decisions taken by heuristics. (Closed)
Patch Set: Remove unused include. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698