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

Unified Diff: components/autofill/core/browser/autofill_metrics_unittest.cc

Issue 2870163003: Log Autofill.Quality.*.ByFieldType by predicted type for unknown data. (Closed)
Patch Set: rebase Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: components/autofill/core/browser/autofill_metrics_unittest.cc
diff --git a/components/autofill/core/browser/autofill_metrics_unittest.cc b/components/autofill/core/browser/autofill_metrics_unittest.cc
index 55e78d4a7681b0da84de925a283c5bf388a08bc6..19cc58a0807fd460a466bb957dc3996939c880a8 100644
--- a/components/autofill/core/browser/autofill_metrics_unittest.cc
+++ b/components/autofill/core/browser/autofill_metrics_unittest.cc
@@ -523,109 +523,201 @@ TEST_F(AutofillMetricsTest, QualityMetrics) {
// Heuristic predictions.
// Unknown:
histogram_tester.ExpectBucketCount("Autofill.Quality.HeuristicType",
- AutofillMetrics::TYPE_UNKNOWN, 1);
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN,
+ 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.ByFieldType",
GetFieldTypeGroupMetric(ADDRESS_HOME_COUNTRY,
- AutofillMetrics::TYPE_UNKNOWN),
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN),
1);
// Match:
histogram_tester.ExpectBucketCount("Autofill.Quality.HeuristicType",
- AutofillMetrics::TYPE_MATCH, 2);
+ AutofillMetrics::TRUE_POSITIVE, 2);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.ByFieldType",
- GetFieldTypeGroupMetric(NAME_FULL, AutofillMetrics::TYPE_MATCH), 1);
+ GetFieldTypeGroupMetric(NAME_FULL, AutofillMetrics::TRUE_POSITIVE), 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.ByFieldType",
GetFieldTypeGroupMetric(PHONE_HOME_CITY_AND_NUMBER,
- AutofillMetrics::TYPE_MATCH),
+ AutofillMetrics::TRUE_POSITIVE),
1);
// Mismatch:
histogram_tester.ExpectBucketCount("Autofill.Quality.HeuristicType",
- AutofillMetrics::TYPE_MISMATCH, 1);
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH,
+ 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.ByFieldType",
- GetFieldTypeGroupMetric(EMAIL_ADDRESS, AutofillMetrics::TYPE_MISMATCH),
+ GetFieldTypeGroupMetric(EMAIL_ADDRESS,
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH),
1);
// Server predictions:
// Unknown:
histogram_tester.ExpectBucketCount("Autofill.Quality.ServerType",
- AutofillMetrics::TYPE_UNKNOWN, 1);
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN,
+ 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.ServerType.ByFieldType",
GetFieldTypeGroupMetric(ADDRESS_HOME_COUNTRY,
- AutofillMetrics::TYPE_UNKNOWN),
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN),
1);
// Match:
histogram_tester.ExpectBucketCount("Autofill.Quality.ServerType",
- AutofillMetrics::TYPE_MATCH, 2);
+ AutofillMetrics::TRUE_POSITIVE, 2);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.ServerType.ByFieldType",
- GetFieldTypeGroupMetric(EMAIL_ADDRESS, AutofillMetrics::TYPE_MATCH), 1);
+ GetFieldTypeGroupMetric(EMAIL_ADDRESS, AutofillMetrics::TRUE_POSITIVE),
+ 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.ServerType.ByFieldType",
GetFieldTypeGroupMetric(PHONE_HOME_WHOLE_NUMBER,
- AutofillMetrics::TYPE_MATCH),
+ AutofillMetrics::TRUE_POSITIVE),
1);
// Mismatch:
histogram_tester.ExpectBucketCount("Autofill.Quality.ServerType",
- AutofillMetrics::TYPE_MISMATCH, 1);
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH,
+ 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.ServerType.ByFieldType",
- GetFieldTypeGroupMetric(NAME_FULL, AutofillMetrics::TYPE_MISMATCH), 1);
+ GetFieldTypeGroupMetric(NAME_FULL,
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH),
+ 1);
// Overall predictions:
// Unknown:
histogram_tester.ExpectBucketCount("Autofill.Quality.PredictedType",
- AutofillMetrics::TYPE_UNKNOWN, 1);
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN,
+ 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.PredictedType.ByFieldType",
GetFieldTypeGroupMetric(ADDRESS_HOME_COUNTRY,
- AutofillMetrics::TYPE_UNKNOWN),
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN),
1);
// Match:
histogram_tester.ExpectBucketCount("Autofill.Quality.PredictedType",
- AutofillMetrics::TYPE_MATCH, 2);
+ AutofillMetrics::TRUE_POSITIVE, 2);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.PredictedType.ByFieldType",
- GetFieldTypeGroupMetric(EMAIL_ADDRESS, AutofillMetrics::TYPE_MATCH), 1);
+ GetFieldTypeGroupMetric(EMAIL_ADDRESS, AutofillMetrics::TRUE_POSITIVE),
+ 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.PredictedType.ByFieldType",
GetFieldTypeGroupMetric(PHONE_HOME_WHOLE_NUMBER,
- AutofillMetrics::TYPE_MATCH),
+ AutofillMetrics::TRUE_POSITIVE),
1);
// Mismatch:
histogram_tester.ExpectBucketCount("Autofill.Quality.PredictedType",
- AutofillMetrics::TYPE_MISMATCH, 1);
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH,
+ 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.PredictedType.ByFieldType",
- GetFieldTypeGroupMetric(NAME_FULL, AutofillMetrics::TYPE_MISMATCH), 1);
+ GetFieldTypeGroupMetric(NAME_FULL,
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH),
+ 1);
}
// Tests the true negatives (empty + no prediction and unknown + no prediction)
// and false positives (empty + bad prediction and unknown + bad prediction)
// are counted correctly.
-struct UnrecognizedOrEmptyFieldsCase {
+struct QualityMetricsTestCase {
+ const ServerFieldType predicted_field_type;
const ServerFieldType actual_field_type;
- const bool make_prediction;
- const AutofillMetrics::FieldTypeQualityMetric metric_to_test;
};
-class UnrecognizedOrEmptyFieldsTest
+class QualityMetricsTest
: public AutofillMetricsTest,
- public testing::WithParamInterface<UnrecognizedOrEmptyFieldsCase> {};
+ public testing::WithParamInterface<QualityMetricsTestCase> {
+ public:
+ const char* ValueForType(ServerFieldType type) {
+ switch (type) {
+ case EMPTY_TYPE:
+ return "";
+ case UNKNOWN_TYPE:
+ return "unknown";
+ case COMPANY_NAME:
+ return "Decca";
+ case NAME_FIRST:
+ return "Elvis";
+ case NAME_MIDDLE:
+ return "Aaron";
+ case NAME_LAST:
+ return "Presley";
+ case NAME_FULL:
+ return "Elvis Aaron Presley";
+ case EMAIL_ADDRESS:
+ return "buddy@gmail.com";
+ case PHONE_HOME_NUMBER:
+ case PHONE_HOME_WHOLE_NUMBER:
+ case PHONE_HOME_CITY_AND_NUMBER:
+ return "2345678901";
+ case ADDRESS_HOME_STREET_ADDRESS:
+ return "123 Apple St.\nunit 6";
+ case ADDRESS_HOME_LINE1:
+ return "123 Apple St.";
+ case ADDRESS_HOME_LINE2:
+ return "unit 6";
+ case ADDRESS_HOME_CITY:
+ return "Lubbock";
+ case ADDRESS_HOME_STATE:
+ return "Texas";
+ case ADDRESS_HOME_ZIP:
+ return "79401";
+ case ADDRESS_HOME_COUNTRY:
+ return "US";
+ default:
+ NOTREACHED(); // Fall through
+ return "unexpected!";
+ }
+ }
+
+ bool IsExampleOf(AutofillMetrics::FieldTypeQualityMetric metric,
+ ServerFieldType predicted_type,
+ ServerFieldType actual_type) {
+ switch (metric) {
+ case AutofillMetrics::TRUE_POSITIVE:
+ return actual_type != UNKNOWN_TYPE && actual_type != EMPTY_TYPE &&
+ predicted_type == actual_type;
+
+ case AutofillMetrics::TRUE_NEGATIVE_UNKNOWN:
+ return actual_type == UNKNOWN_TYPE && predicted_type == UNKNOWN_TYPE;
+
+ case AutofillMetrics::TRUE_NEGATIVE_EMPTY:
+ return actual_type == EMPTY_TYPE && predicted_type == UNKNOWN_TYPE;
+
+ // False negative mismatch and false positive mismatch trigger on the same
+ // conditions:
+ // - False positive prediction of predicted type
+ // - False negative prediction of actual type
+ case AutofillMetrics::FALSE_POSITIVE_MISMATCH:
+ case AutofillMetrics::FALSE_NEGATIVE_MISMATCH:
+ return actual_type != UNKNOWN_TYPE && actual_type != EMPTY_TYPE &&
+ actual_type != predicted_type && predicted_type != UNKNOWN_TYPE;
+
+ case AutofillMetrics::FALSE_POSITIVE_UNKNOWN:
+ return actual_type == UNKNOWN_TYPE && predicted_type != UNKNOWN_TYPE;
+
+ case AutofillMetrics::FALSE_POSITIVE_EMPTY:
+ return actual_type == EMPTY_TYPE && predicted_type != UNKNOWN_TYPE;
+
+ case AutofillMetrics::FALSE_NEGATIVE_UNKNOWN:
+ return actual_type != EMPTY_TYPE && actual_type != UNKNOWN_TYPE &&
+ actual_type != predicted_type && predicted_type == UNKNOWN_TYPE;
+ default:
+ NOTREACHED();
+ }
+ return false;
+ }
+};
-TEST_P(UnrecognizedOrEmptyFieldsTest, QualityMetrics) {
+TEST_P(QualityMetricsTest, Classification) {
// Setup the test parameters.
const ServerFieldType actual_field_type = GetParam().actual_field_type;
- const ServerFieldType heuristic_type =
- GetParam().make_prediction ? EMAIL_ADDRESS : UNKNOWN_TYPE;
- const ServerFieldType server_type =
- GetParam().make_prediction ? EMAIL_ADDRESS : NO_SERVER_DATA;
- const AutofillMetrics::FieldTypeQualityMetric metric_to_test =
- GetParam().metric_to_test;
+ const ServerFieldType predicted_type = GetParam().predicted_field_type;
+
+ VLOG(2) << "Test Case = Predicted: "
+ << AutofillType(predicted_type).ToString() << "; "
+ << "Actual: " << AutofillType(actual_field_type).ToString();
// Set up our form data.
FormData form;
@@ -637,27 +729,26 @@ TEST_P(UnrecognizedOrEmptyFieldsTest, QualityMetrics) {
AutofillField field;
// Add a first name field, that is predicted correctly.
- test::CreateTestFormField("first", "first", "Elvis", "text", &field);
- field.set_possible_types({NAME_FIRST});
+ test::CreateTestFormField("first", "first", ValueForType(NAME_FIRST), "text",
+ &field);
form.fields.push_back(field);
heuristic_types.push_back(NAME_FIRST);
server_types.push_back(NAME_FIRST);
// Add a last name field, that is predicted correctly.
- test::CreateTestFormField("last", "last", "Presley", "test", &field);
- field.set_possible_types({NAME_LAST});
+ test::CreateTestFormField("last", "last", ValueForType(NAME_LAST), "test",
+ &field);
form.fields.push_back(field);
heuristic_types.push_back(NAME_LAST);
server_types.push_back(NAME_LAST);
// Add an empty or unknown field, that is predicted as per the test params.
test::CreateTestFormField("Unknown", "Unknown",
- (actual_field_type == EMPTY_TYPE ? "" : "unknown"),
- "text", &field);
- field.set_possible_types({actual_field_type});
+ ValueForType(actual_field_type), "text", &field);
form.fields.push_back(field);
- heuristic_types.push_back(heuristic_type);
- server_types.push_back(server_type);
+ heuristic_types.push_back(predicted_type);
+ server_types.push_back(predicted_type == UNKNOWN_TYPE ? NO_SERVER_DATA
+ : predicted_type);
// Simulate having seen this form on page load.
autofill_manager_->AddSeenForm(form, heuristic_types, server_types);
@@ -671,60 +762,77 @@ TEST_P(UnrecognizedOrEmptyFieldsTest, QualityMetrics) {
// The metric enum value we're currently examining.
auto metric = static_cast<AutofillMetrics::FieldTypeQualityMetric>(i);
- // For the overall metric counts...
- // If the current metric is the metric we're testing, then we expect its
- // count to be 1. Otherwise, the metric's count should be zero (0) except
- // for the TYPE_MATCH metric which should be 2 (because of the matching
- // first and last name fields)
- int overall_expected_count =
- (metric == metric_to_test)
- ? 1
- : ((metric == AutofillMetrics::TYPE_MATCH) ? 2 : 0);
+ // The type specific expected count is 1 if (predicted, actual) is an
+ // example
+ int basic_expected_count =
+ IsExampleOf(metric, predicted_type, actual_field_type) ? 1 : 0;
+
+ // We don't capture aggregate FALSE_POSITIVE_MISMATCH.
+ int aggregate_expected_count =
+ (metric == AutofillMetrics::TRUE_POSITIVE ? 2 : 0) +
+ (metric == AutofillMetrics::FALSE_POSITIVE_MISMATCH
+ ? 0
+ : basic_expected_count);
histogram_tester.ExpectBucketCount("Autofill.Quality.HeuristicType", metric,
- overall_expected_count);
+ aggregate_expected_count);
histogram_tester.ExpectBucketCount("Autofill.Quality.ServerType", metric,
- overall_expected_count);
+ aggregate_expected_count);
histogram_tester.ExpectBucketCount("Autofill.Quality.PredictedType", metric,
- overall_expected_count);
+ aggregate_expected_count);
- // For the ByFieldType metric counts...
- // We only examine the counter for the field_type being tested. If the
- // current metric is the metric we're testing, then we expect its
- // count to be 1 otherwise it should be 0.
- int field_type_expected_count = (metric == metric_to_test) ? 1 : 0;
+ int expected_count_for_actual_type =
+ (actual_field_type != UNKNOWN_TYPE && actual_field_type != EMPTY_TYPE &&
+ metric != AutofillMetrics::FALSE_POSITIVE_MISMATCH)
+ ? basic_expected_count
+ : 0;
+ // For the ByFieldType metric counts for actual_field_type...
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.ByFieldType",
GetFieldTypeGroupMetric(actual_field_type, metric),
- field_type_expected_count);
+ expected_count_for_actual_type);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.ServerType.ByFieldType",
GetFieldTypeGroupMetric(actual_field_type, metric),
- field_type_expected_count);
+ expected_count_for_actual_type);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.PredictedType.ByFieldType",
GetFieldTypeGroupMetric(actual_field_type, metric),
- field_type_expected_count);
+ expected_count_for_actual_type);
+
+ int expected_count_for_predicted_type =
+ (predicted_type != UNKNOWN_TYPE &&
+ metric != AutofillMetrics::FALSE_NEGATIVE_MISMATCH)
+ ? basic_expected_count
+ : 0;
+
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.HeuristicType.ByFieldType",
+ GetFieldTypeGroupMetric(predicted_type, metric),
+ expected_count_for_predicted_type);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.ServerType.ByFieldType",
+ GetFieldTypeGroupMetric(predicted_type, metric),
+ expected_count_for_predicted_type);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.PredictedType.ByFieldType",
+ GetFieldTypeGroupMetric(predicted_type, metric),
+ expected_count_for_predicted_type);
}
}
INSTANTIATE_TEST_CASE_P(
AutofillMetricsTest,
- UnrecognizedOrEmptyFieldsTest,
- testing::Values(
- UnrecognizedOrEmptyFieldsCase{EMPTY_TYPE,
- /* make_prediction = */ false,
- AutofillMetrics::TYPE_MATCH_EMPTY},
- UnrecognizedOrEmptyFieldsCase{UNKNOWN_TYPE,
- /* make_prediction = */ false,
- AutofillMetrics::TYPE_MATCH_UNKNOWN},
- UnrecognizedOrEmptyFieldsCase{EMPTY_TYPE,
- /* make_prediction = */ true,
- AutofillMetrics::TYPE_MISMATCH_EMPTY},
- UnrecognizedOrEmptyFieldsCase{UNKNOWN_TYPE,
- /* make_prediction = */ true,
- AutofillMetrics::TYPE_MISMATCH_UNKNOWN}));
+ QualityMetricsTest,
+ testing::Values(QualityMetricsTestCase{UNKNOWN_TYPE, EMPTY_TYPE},
+ QualityMetricsTestCase{UNKNOWN_TYPE, UNKNOWN_TYPE},
+ QualityMetricsTestCase{UNKNOWN_TYPE, EMAIL_ADDRESS},
+ QualityMetricsTestCase{EMAIL_ADDRESS, EMPTY_TYPE},
+ QualityMetricsTestCase{EMAIL_ADDRESS, UNKNOWN_TYPE},
+ QualityMetricsTestCase{EMAIL_ADDRESS, EMAIL_ADDRESS},
+ QualityMetricsTestCase{EMAIL_ADDRESS, COMPANY_NAME},
+ QualityMetricsTestCase{COMPANY_NAME, EMAIL_ADDRESS}));
// Ensures that metrics that measure timing some important Autofill functions
// actually are recorded and retrieved.
@@ -833,89 +941,98 @@ TEST_F(AutofillMetricsTest, QualityMetrics_NoSubmission) {
// Unknown:
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.NoSubmission",
- AutofillMetrics::TYPE_UNKNOWN, 1);
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN, 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.ByFieldType.NoSubmission",
GetFieldTypeGroupMetric(ADDRESS_HOME_COUNTRY,
- AutofillMetrics::TYPE_UNKNOWN),
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN),
1);
// Match:
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.NoSubmission",
- AutofillMetrics::TYPE_MATCH, 2);
+ AutofillMetrics::TRUE_POSITIVE, 2);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.ByFieldType.NoSubmission",
- GetFieldTypeGroupMetric(NAME_FULL, AutofillMetrics::TYPE_MATCH), 1);
+ GetFieldTypeGroupMetric(NAME_FULL, AutofillMetrics::TRUE_POSITIVE), 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.ByFieldType.NoSubmission",
GetFieldTypeGroupMetric(PHONE_HOME_WHOLE_NUMBER,
- AutofillMetrics::TYPE_MATCH),
+ AutofillMetrics::TRUE_POSITIVE),
1);
// Mismatch:
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.NoSubmission",
- AutofillMetrics::TYPE_MISMATCH, 1);
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH, 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.ByFieldType.NoSubmission",
- GetFieldTypeGroupMetric(EMAIL_ADDRESS, AutofillMetrics::TYPE_MISMATCH),
+ GetFieldTypeGroupMetric(EMAIL_ADDRESS,
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH),
1);
// Server predictions:
// Unknown:
histogram_tester.ExpectBucketCount("Autofill.Quality.ServerType.NoSubmission",
- AutofillMetrics::TYPE_UNKNOWN, 1);
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN,
+ 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.ServerType.ByFieldType.NoSubmission",
GetFieldTypeGroupMetric(ADDRESS_HOME_COUNTRY,
- AutofillMetrics::TYPE_UNKNOWN),
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN),
1);
// Match:
histogram_tester.ExpectBucketCount("Autofill.Quality.ServerType.NoSubmission",
- AutofillMetrics::TYPE_MATCH, 2);
+ AutofillMetrics::TRUE_POSITIVE, 2);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.ServerType.ByFieldType.NoSubmission",
- GetFieldTypeGroupMetric(EMAIL_ADDRESS, AutofillMetrics::TYPE_MATCH), 1);
+ GetFieldTypeGroupMetric(EMAIL_ADDRESS, AutofillMetrics::TRUE_POSITIVE),
+ 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.ServerType.ByFieldType.NoSubmission",
GetFieldTypeGroupMetric(PHONE_HOME_WHOLE_NUMBER,
- AutofillMetrics::TYPE_MATCH),
+ AutofillMetrics::TRUE_POSITIVE),
1);
// Mismatch:
histogram_tester.ExpectBucketCount("Autofill.Quality.ServerType.NoSubmission",
- AutofillMetrics::TYPE_MISMATCH, 1);
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH,
+ 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.ServerType.ByFieldType.NoSubmission",
- GetFieldTypeGroupMetric(NAME_FULL, AutofillMetrics::TYPE_MISMATCH), 1);
+ GetFieldTypeGroupMetric(NAME_FULL,
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH),
+ 1);
// Overall predictions:
// Unknown:
histogram_tester.ExpectBucketCount(
"Autofill.Quality.PredictedType.NoSubmission",
- AutofillMetrics::TYPE_UNKNOWN, 1);
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN, 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.PredictedType.ByFieldType.NoSubmission",
GetFieldTypeGroupMetric(ADDRESS_HOME_COUNTRY,
- AutofillMetrics::TYPE_UNKNOWN),
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN),
1);
// Match:
histogram_tester.ExpectBucketCount(
"Autofill.Quality.PredictedType.NoSubmission",
- AutofillMetrics::TYPE_MATCH, 2);
+ AutofillMetrics::TRUE_POSITIVE, 2);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.PredictedType.ByFieldType.NoSubmission",
- GetFieldTypeGroupMetric(EMAIL_ADDRESS, AutofillMetrics::TYPE_MATCH), 1);
+ GetFieldTypeGroupMetric(EMAIL_ADDRESS, AutofillMetrics::TRUE_POSITIVE),
+ 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.PredictedType.ByFieldType.NoSubmission",
GetFieldTypeGroupMetric(PHONE_HOME_WHOLE_NUMBER,
- AutofillMetrics::TYPE_MATCH),
+ AutofillMetrics::TRUE_POSITIVE),
1);
// Mismatch:
histogram_tester.ExpectBucketCount(
"Autofill.Quality.PredictedType.NoSubmission",
- AutofillMetrics::TYPE_MISMATCH, 1);
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH, 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.PredictedType.ByFieldType.NoSubmission",
- GetFieldTypeGroupMetric(NAME_FULL, AutofillMetrics::TYPE_MISMATCH), 1);
+ GetFieldTypeGroupMetric(NAME_FULL,
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH),
+ 1);
}
// Test that we log quality metrics for heuristics and server predictions based
@@ -990,49 +1107,55 @@ TEST_F(AutofillMetricsTest, QualityMetrics_BasedOnAutocomplete) {
// Unknown:
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.BasedOnAutocomplete",
- AutofillMetrics::TYPE_UNKNOWN, 1);
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN, 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.ByFieldType.BasedOnAutocomplete",
- GetFieldTypeGroupMetric(ADDRESS_HOME_ZIP, AutofillMetrics::TYPE_UNKNOWN),
+ GetFieldTypeGroupMetric(ADDRESS_HOME_ZIP,
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN),
1);
// Match:
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.BasedOnAutocomplete",
- AutofillMetrics::TYPE_MATCH, 1);
+ AutofillMetrics::TRUE_POSITIVE, 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.ByFieldType.BasedOnAutocomplete",
- GetFieldTypeGroupMetric(NAME_LAST, AutofillMetrics::TYPE_MATCH), 1);
+ GetFieldTypeGroupMetric(NAME_LAST, AutofillMetrics::TRUE_POSITIVE), 1);
// Mismatch:
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.BasedOnAutocomplete",
- AutofillMetrics::TYPE_MISMATCH, 1);
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH, 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.ByFieldType.BasedOnAutocomplete",
- GetFieldTypeGroupMetric(NAME_MIDDLE, AutofillMetrics::TYPE_MISMATCH), 1);
+ GetFieldTypeGroupMetric(NAME_MIDDLE,
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH),
+ 1);
// Server predictions.
// Unknown:
histogram_tester.ExpectBucketCount(
"Autofill.Quality.ServerType.BasedOnAutocomplete",
- AutofillMetrics::TYPE_UNKNOWN, 1);
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN, 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.ServerType.ByFieldType.BasedOnAutocomplete",
- GetFieldTypeGroupMetric(ADDRESS_HOME_ZIP, AutofillMetrics::TYPE_UNKNOWN),
+ GetFieldTypeGroupMetric(ADDRESS_HOME_ZIP,
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN),
1);
// Match:
histogram_tester.ExpectBucketCount(
"Autofill.Quality.ServerType.BasedOnAutocomplete",
- AutofillMetrics::TYPE_MATCH, 1);
+ AutofillMetrics::TRUE_POSITIVE, 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.ServerType.ByFieldType.BasedOnAutocomplete",
- GetFieldTypeGroupMetric(NAME_LAST, AutofillMetrics::TYPE_MATCH), 1);
+ GetFieldTypeGroupMetric(NAME_LAST, AutofillMetrics::TRUE_POSITIVE), 1);
// Mismatch:
histogram_tester.ExpectBucketCount(
"Autofill.Quality.ServerType.BasedOnAutocomplete",
- AutofillMetrics::TYPE_MISMATCH, 1);
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH, 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.ServerType.ByFieldType.BasedOnAutocomplete",
- GetFieldTypeGroupMetric(NAME_MIDDLE, AutofillMetrics::TYPE_MISMATCH), 1);
+ GetFieldTypeGroupMetric(NAME_MIDDLE,
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH),
+ 1);
}
// Test that we log UPI Virtual Payment Address.
@@ -1306,18 +1429,18 @@ TEST_F(AutofillMetricsTest, PredictedMetricsWithAutocomplete) {
histogram_tester.ExpectBucketCount(
"Autofill.Quality.ServerType.ByFieldType",
GetFieldTypeGroupMetric(ADDRESS_HOME_COUNTRY,
- AutofillMetrics::TYPE_UNKNOWN),
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN),
1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.ByFieldType",
GetFieldTypeGroupMetric(ADDRESS_HOME_COUNTRY,
- AutofillMetrics::TYPE_UNKNOWN),
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN),
1);
// We expect a match for country because it had |autocomplete_attribute|.
histogram_tester.ExpectBucketCount(
"Autofill.Quality.PredictedType.ByFieldType",
GetFieldTypeGroupMetric(ADDRESS_HOME_COUNTRY,
- AutofillMetrics::TYPE_MATCH),
+ AutofillMetrics::TRUE_POSITIVE),
1);
// We did not predict zip code or phone number, because they did not have
@@ -1325,32 +1448,32 @@ TEST_F(AutofillMetricsTest, PredictedMetricsWithAutocomplete) {
histogram_tester.ExpectBucketCount(
"Autofill.Quality.ServerType.ByFieldType",
GetFieldTypeGroupMetric(ADDRESS_HOME_ZIP,
- AutofillMetrics::TYPE_UNKNOWN),
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN),
1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.ByFieldType",
GetFieldTypeGroupMetric(ADDRESS_HOME_ZIP,
- AutofillMetrics::TYPE_UNKNOWN),
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN),
1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.PredictedType.ByFieldType",
GetFieldTypeGroupMetric(ADDRESS_HOME_ZIP,
- AutofillMetrics::TYPE_UNKNOWN),
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN),
1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.ServerType.ByFieldType",
GetFieldTypeGroupMetric(PHONE_HOME_WHOLE_NUMBER,
- AutofillMetrics::TYPE_UNKNOWN),
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN),
1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.ByFieldType",
GetFieldTypeGroupMetric(PHONE_HOME_WHOLE_NUMBER,
- AutofillMetrics::TYPE_UNKNOWN),
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN),
1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.PredictedType.ByFieldType",
GetFieldTypeGroupMetric(PHONE_HOME_WHOLE_NUMBER,
- AutofillMetrics::TYPE_UNKNOWN),
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN),
1);
// Sanity check.
@@ -1417,84 +1540,94 @@ TEST_F(AutofillMetricsTest, SaneMetricsWithCacheMismatch) {
// Heuristic predictions.
// Unknown:
histogram_tester.ExpectBucketCount("Autofill.Quality.HeuristicType",
- AutofillMetrics::TYPE_UNKNOWN, 1);
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN,
+ 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.ByFieldType",
GetFieldTypeGroupMetric(ADDRESS_HOME_STATE,
- AutofillMetrics::TYPE_UNKNOWN),
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN),
1);
// Match:
histogram_tester.ExpectBucketCount("Autofill.Quality.HeuristicType",
- AutofillMetrics::TYPE_MATCH, 2);
+ AutofillMetrics::TRUE_POSITIVE, 2);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.ByFieldType",
- GetFieldTypeGroupMetric(ADDRESS_HOME_CITY, AutofillMetrics::TYPE_MATCH),
+ GetFieldTypeGroupMetric(ADDRESS_HOME_CITY,
+ AutofillMetrics::TRUE_POSITIVE),
1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.ByFieldType",
- GetFieldTypeGroupMetric(NAME_FULL, AutofillMetrics::TYPE_MATCH), 1);
+ GetFieldTypeGroupMetric(NAME_FULL, AutofillMetrics::TRUE_POSITIVE), 1);
// Mismatch:
histogram_tester.ExpectBucketCount("Autofill.Quality.HeuristicType",
- AutofillMetrics::TYPE_MISMATCH, 1);
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH,
+ 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.HeuristicType.ByFieldType",
- GetFieldTypeGroupMetric(EMAIL_ADDRESS, AutofillMetrics::TYPE_MISMATCH),
+ GetFieldTypeGroupMetric(EMAIL_ADDRESS,
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH),
1);
// Server predictions:
// Unknown:
histogram_tester.ExpectBucketCount("Autofill.Quality.ServerType",
- AutofillMetrics::TYPE_UNKNOWN, 1);
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN,
+ 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.ServerType.ByFieldType",
GetFieldTypeGroupMetric(ADDRESS_HOME_STATE,
- AutofillMetrics::TYPE_UNKNOWN),
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN),
1);
// Match:
histogram_tester.ExpectBucketCount("Autofill.Quality.ServerType",
- AutofillMetrics::TYPE_MATCH, 1);
+ AutofillMetrics::TRUE_POSITIVE, 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.ServerType.ByFieldType",
- GetFieldTypeGroupMetric(NAME_FULL, AutofillMetrics::TYPE_MATCH), 1);
+ GetFieldTypeGroupMetric(NAME_FULL, AutofillMetrics::TRUE_POSITIVE), 1);
// Mismatch:
histogram_tester.ExpectBucketCount("Autofill.Quality.ServerType",
- AutofillMetrics::TYPE_MISMATCH, 2);
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH,
+ 2);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.ServerType.ByFieldType",
GetFieldTypeGroupMetric(ADDRESS_HOME_CITY,
- AutofillMetrics::TYPE_MISMATCH),
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH),
1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.ServerType.ByFieldType",
- GetFieldTypeGroupMetric(EMAIL_ADDRESS, AutofillMetrics::TYPE_MISMATCH),
+ GetFieldTypeGroupMetric(EMAIL_ADDRESS,
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH),
1);
// Overall predictions:
// Unknown:
histogram_tester.ExpectBucketCount("Autofill.Quality.PredictedType",
- AutofillMetrics::TYPE_UNKNOWN, 1);
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN,
+ 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.PredictedType.ByFieldType",
GetFieldTypeGroupMetric(ADDRESS_HOME_STATE,
- AutofillMetrics::TYPE_UNKNOWN),
+ AutofillMetrics::FALSE_NEGATIVE_UNKNOWN),
1);
// Match:
histogram_tester.ExpectBucketCount("Autofill.Quality.PredictedType",
- AutofillMetrics::TYPE_MATCH, 1);
+ AutofillMetrics::TRUE_POSITIVE, 1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.PredictedType.ByFieldType",
- GetFieldTypeGroupMetric(NAME_FULL, AutofillMetrics::TYPE_MATCH), 1);
+ GetFieldTypeGroupMetric(NAME_FULL, AutofillMetrics::TRUE_POSITIVE), 1);
// Mismatch:
histogram_tester.ExpectBucketCount("Autofill.Quality.PredictedType",
- AutofillMetrics::TYPE_MISMATCH, 2);
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH,
+ 2);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.PredictedType.ByFieldType",
GetFieldTypeGroupMetric(ADDRESS_HOME_CITY,
- AutofillMetrics::TYPE_MISMATCH),
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH),
1);
histogram_tester.ExpectBucketCount(
"Autofill.Quality.PredictedType.ByFieldType",
- GetFieldTypeGroupMetric(EMAIL_ADDRESS, AutofillMetrics::TYPE_MISMATCH),
+ GetFieldTypeGroupMetric(EMAIL_ADDRESS,
+ AutofillMetrics::FALSE_NEGATIVE_MISMATCH),
1);
}

Powered by Google App Engine
This is Rietveld 408576698