Remove NumericStats temporarily.

NumericStats support will be reenabled when the formula is resolved.
See: go/tq-cobalt-error-formulae

Change-Id: Ibc9b3611e53e6e951b439e7718b3aea15acb7d7d
Reviewed-on: https://fuchsia-review.googlesource.com/c/cobalt/+/477718
Reviewed-by: Alexandre Zani <azani@google.com>
Commit-Queue: Jared Weinstein <jaredweinstein@google.com>
diff --git a/src/bin/config_parser/src/privacy/error_calculator.go b/src/bin/config_parser/src/privacy/error_calculator.go
index 357d937..f0e9c50 100644
--- a/src/bin/config_parser/src/privacy/error_calculator.go
+++ b/src/bin/config_parser/src/privacy/error_calculator.go
@@ -62,16 +62,17 @@
 		errorEstimate = MultipleContributionRapporRMSE(24*population, privacyEncodingParams, report.MaxCount)
 	case config.ReportDefinition_FLEETWIDE_HISTOGRAMS:
 		errorEstimate = MultipleContributionRapporRMSE(24*population, privacyEncodingParams, 1)
-	case config.ReportDefinition_UNIQUE_DEVICE_NUMERIC_STATS:
-		if err := meanReportConfigurationError(report, minDenominatorEstimate); err != nil {
-			return -1, err
-		}
-		errorEstimate = NumericStatsRapporRMSE(population, privacyEncodingParams, minDenominatorEstimate, report)
-	case config.ReportDefinition_HOURLY_VALUE_NUMERIC_STATS:
-		if err := meanReportConfigurationError(report, minDenominatorEstimate); err != nil {
-			return -1, err
-		}
-		errorEstimate = NumericStatsRapporRMSE(24*population, privacyEncodingParams, minDenominatorEstimate, report)
+	// TODO(jaredweinstein): Enable NumericStats once the formula is resolved.
+	// case config.ReportDefinition_UNIQUE_DEVICE_NUMERIC_STATS:
+	//         if err := meanReportConfigurationError(report, minDenominatorEstimate); err != nil {
+	//                 return -1, err
+	//         }
+	//         errorEstimate = NumericStatsRapporRMSE(population, privacyEncodingParams, minDenominatorEstimate, report)
+	// case config.ReportDefinition_HOURLY_VALUE_NUMERIC_STATS:
+	//         if err := meanReportConfigurationError(report, minDenominatorEstimate); err != nil {
+	//                 return -1, err
+	//         }
+	//         errorEstimate = NumericStatsRapporRMSE(24*population, privacyEncodingParams, minDenominatorEstimate, report)
 	case config.ReportDefinition_FLEETWIDE_MEANS:
 		if err := meanReportConfigurationError(report, minDenominatorEstimate); err != nil {
 			return -1, err
@@ -112,21 +113,22 @@
 	return estimate
 }
 
-func NumericStatsRapporRMSE(population uint64, params PrivacyEncodingParams, minDenominatorEstimate uint64, report *config.ReportDefinition) float64 {
-	sigma := SingleContributionRapporRMSE(population, params)
-	a := params.ProbBitFlip / (1 - 2*params.ProbBitFlip)
-	M := uint64(math.Max(math.Abs(float64(report.MinValue)), math.Abs(float64(report.MaxValue))))
-
-	// Numerator is aggregated like FleetwideOccurrenceCounts.
-	rmseNumerator := MultipleContributionRapporRMSE(population, params, M)
-	mseNumerator := math.Pow(rmseNumerator, 2)
-
-	// Denominator is aggregated like UniqueDeviceCounts.
-	rmseDenominator := SingleContributionRapporRMSE(population, params)
-	mseDenominator := math.Pow(rmseDenominator, 2)
-
-	return meanRapporRMSE(mseNumerator, mseDenominator, sigma, a, float64(M), float64(minDenominatorEstimate))
-}
+// TODO(jaredweinstein): Add back NumericStats once the formula is resolved.
+// func NumericStatsRapporRMSE(population uint64, params PrivacyEncodingParams, minDenominatorEstimate uint64, report *config.ReportDefinition) float64 {
+//         sigma := SingleContributionRapporRMSE(population, params)
+//         a := params.ProbBitFlip / (1 - 2*params.ProbBitFlip)
+//         M := uint64(math.Max(math.Abs(float64(report.MinValue)), math.Abs(float64(report.MaxValue))))
+//
+//         // Numerator is aggregated like FleetwideOccurrenceCounts.
+//         rmseNumerator := MultipleContributionRapporRMSE(population, params, M)
+//         mseNumerator := math.Pow(rmseNumerator, 2)
+//
+//         // Denominator is aggregated like UniqueDeviceCounts.
+//         rmseDenominator := SingleContributionRapporRMSE(population, params)
+//         mseDenominator := math.Pow(rmseDenominator, 2)
+//
+//         return meanRapporRMSE(mseNumerator, mseDenominator, sigma, a, float64(M), float64(minDenominatorEstimate))
+// }
 
 func FleetwideMeansRapporRMSE(population uint64, params PrivacyEncodingParams, minDenominatorEstimate uint64, report *config.ReportDefinition) float64 {
 	t := float64(report.MaxCount)
diff --git a/src/bin/config_parser/src/privacy/error_calculator_test.go b/src/bin/config_parser/src/privacy/error_calculator_test.go
index 89df399..b7c8736 100644
--- a/src/bin/config_parser/src/privacy/error_calculator_test.go
+++ b/src/bin/config_parser/src/privacy/error_calculator_test.go
@@ -61,20 +61,20 @@
 		ReportType:                config.ReportDefinition_FLEETWIDE_HISTOGRAMS,
 		LocalAggregationProcedure: config.ReportDefinition_SELECT_FIRST,
 	}
-	uniqueDeviceNumericStats := config.ReportDefinition{
-		ReportName: "UniqueDeviceNumericStats",
-		ReportType: config.ReportDefinition_UNIQUE_DEVICE_NUMERIC_STATS,
-		MaxValue:   1,
-	}
-	hourlyValueNumericStats := config.ReportDefinition{
-		ReportName: "HourlyDeviceNumericStats",
-		ReportType: config.ReportDefinition_HOURLY_VALUE_NUMERIC_STATS,
-		MaxValue:   1,
-	}
-	uniqueDeviceNumericStatsMissingMaxValue := config.ReportDefinition{
-		ReportName: "UniqueDeviceNumericStatsMissingMaxValue",
-		ReportType: config.ReportDefinition_UNIQUE_DEVICE_NUMERIC_STATS,
-	}
+	// uniqueDeviceNumericStats := config.ReportDefinition{
+	//         ReportName: "UniqueDeviceNumericStats",
+	//         ReportType: config.ReportDefinition_UNIQUE_DEVICE_NUMERIC_STATS,
+	//         MaxValue:   1,
+	// }
+	// hourlyValueNumericStats := config.ReportDefinition{
+	//         ReportName: "HourlyDeviceNumericStats",
+	//         ReportType: config.ReportDefinition_HOURLY_VALUE_NUMERIC_STATS,
+	//         MaxValue:   1,
+	// }
+	// uniqueDeviceNumericStatsMissingMaxValue := config.ReportDefinition{
+	//         ReportName: "UniqueDeviceNumericStatsMissingMaxValue",
+	//         ReportType: config.ReportDefinition_UNIQUE_DEVICE_NUMERIC_STATS,
+	// }
 	fleetwideMeans := config.ReportDefinition{
 		ReportName: "FleetwideMeans",
 		ReportType: config.ReportDefinition_FLEETWIDE_MEANS,
@@ -128,14 +128,14 @@
 		{args{&testMetric, &fleetwideHistogram, 1, 20000, 0}, true, 74.80302164673793},
 
 		// Mean reports
-		{args{&testMetric, &uniqueDeviceNumericStats, 1, 10000, 500}, true, 0.027891803930152177},
-		{args{&testMetric, &uniqueDeviceNumericStats, 10, 10000, 500}, true, 0.018650077285590205},
-		{args{&testMetric, &uniqueDeviceNumericStats, 1, 20000, 500}, true, 0.039654432133364455},
-		{args{&testMetric, &uniqueDeviceNumericStats, 1, 10000, 2000}, true, 0.006907368191507632},
-		{args{&testMetric, &hourlyValueNumericStats, 1, 10000, 500}, true, 0.14403990551821316},
-		{args{&testMetric, &hourlyValueNumericStats, 10, 10000, 500}, true, 0.09424308127635954},
-		{args{&testMetric, &hourlyValueNumericStats, 1, 20000, 500}, true, 0.20996453488325503},
-		{args{&testMetric, &hourlyValueNumericStats, 1, 10000, 2000}, true, 0.03425744055252169},
+		// {args{&testMetric, &uniqueDeviceNumericStats, 1, 10000, 500}, true, 0.027891803930152177},
+		// {args{&testMetric, &uniqueDeviceNumericStats, 10, 10000, 500}, true, 0.018650077285590205},
+		// {args{&testMetric, &uniqueDeviceNumericStats, 1, 20000, 500}, true, 0.039654432133364455},
+		// {args{&testMetric, &uniqueDeviceNumericStats, 1, 10000, 2000}, true, 0.006907368191507632},
+		// {args{&testMetric, &hourlyValueNumericStats, 1, 10000, 500}, true, 0.14403990551821316},
+		// {args{&testMetric, &hourlyValueNumericStats, 10, 10000, 500}, true, 0.09424308127635954},
+		// {args{&testMetric, &hourlyValueNumericStats, 1, 20000, 500}, true, 0.20996453488325503},
+		// {args{&testMetric, &hourlyValueNumericStats, 1, 10000, 2000}, true, 0.03425744055252169},
 		{args{&testMetric, &fleetwideMeans, 1, 10000, 500}, true, 0.14403990551821316},
 		{args{&testMetric, &fleetwideMeans, 10, 10000, 500}, true, 0.09424308127635954},
 		{args{&testMetric, &fleetwideMeans, 1, 20000, 500}, true, 0.20996453488325503},
@@ -147,9 +147,9 @@
 
 		// Invalid input
 		// Mean Report missing minDenominatorEstimate
-		{args{&testMetric, &uniqueDeviceNumericStats, 1, 10000, 0}, false, 0},
-		{args{&testMetric, &hourlyValueNumericStats, 1, 10000, 0}, false, 0},
-		{args{&testMetric, &uniqueDeviceNumericStatsMissingMaxValue, 1, 10000, 500}, false, 0},
+		// {args{&testMetric, &uniqueDeviceNumericStats, 1, 10000, 0}, false, 0},
+		// {args{&testMetric, &hourlyValueNumericStats, 1, 10000, 0}, false, 0},
+		// {args{&testMetric, &uniqueDeviceNumericStatsMissingMaxValue, 1, 10000, 500}, false, 0},
 		{args{&testMetric, &fleetwideMeansMissingMaxValue, 1, 10000, 500}, false, 0},
 
 		// This report type is not currently supported.