summaryrefslogtreecommitdiff
path: root/src/main/java/com/android/vts/util/ProfilingPointSummary.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/android/vts/util/ProfilingPointSummary.java')
-rw-r--r--src/main/java/com/android/vts/util/ProfilingPointSummary.java155
1 files changed, 0 insertions, 155 deletions
diff --git a/src/main/java/com/android/vts/util/ProfilingPointSummary.java b/src/main/java/com/android/vts/util/ProfilingPointSummary.java
deleted file mode 100644
index b08615a..0000000
--- a/src/main/java/com/android/vts/util/ProfilingPointSummary.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you
- * may not use this file except in compliance with the License. You may
- * obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-package com.android.vts.util;
-
-import com.android.vts.entity.ProfilingPointSummaryEntity;
-import com.android.vts.proto.VtsReportMessage.VtsProfilingRegressionMode;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-/** Represents statistical summaries of each profiling point. */
-public class ProfilingPointSummary implements Iterable<StatSummary> {
- private List<StatSummary> statSummaries;
- private Map<String, Integer> labelIndices;
- private List<String> labels;
- private VtsProfilingRegressionMode regressionMode;
- public String xLabel;
- public String yLabel;
-
- /** Initializes the summary with empty arrays. */
- public ProfilingPointSummary(
- String xLabel, String yLabel, VtsProfilingRegressionMode regressionMode) {
- statSummaries = new ArrayList<>();
- labelIndices = new HashMap<>();
- labels = new ArrayList<>();
- this.regressionMode = regressionMode;
- this.xLabel = xLabel;
- this.yLabel = yLabel;
- }
-
- /**
- * Determines if a data label is present in the profiling point.
- *
- * @param label The name of the label.
- * @return true if the label is present, false otherwise.
- */
- public boolean hasLabel(String label) {
- return labelIndices.containsKey(label);
- }
-
- /**
- * Gets the statistical summary for a specified data label.
- *
- * @param label The name of the label.
- * @return The StatSummary object if it exists, or null otherwise.
- */
- public StatSummary getStatSummary(String label) {
- if (!hasLabel(label)) return null;
- return statSummaries.get(labelIndices.get(label));
- }
-
- /**
- * Gets the last-seen regression mode.
- *
- * @return The VtsProfilingRegressionMode value.
- */
- public VtsProfilingRegressionMode getRegressionMode() {
- return regressionMode;
- }
-
- /**
- * Updates the profiling summary with the data from a new profiling report.
- *
- * @param ppSummary The profiling point run entity object containing profiling data.
- */
- public void update(ProfilingPointSummaryEntity ppSummary) {
- for (String label : ppSummary.getLabels()) {
- if (!ppSummary.getLabelStats().containsKey(label)) continue;
- if (!labelIndices.containsKey(label)) {
- labelIndices.put(label, statSummaries.size());
- labels.add(label);
- statSummaries.add(ppSummary.getLabelStats().get(label));
- } else {
- StatSummary summary = getStatSummary(label);
- summary.merge(ppSummary.getLabelStats().get(label));
- }
- }
- }
-
- /**
- * Updates the profiling summary at a label with the data from a new profiling report.
- *
- * <p>Updates the summary specified by the label with all values provided in the report. If
- * labels are provided in the report, they will be ignored -- all values are updated only to the
- * provided label.
- *
- * @param ppSummary The ProfilingPointSummaryEntity object containing profiling data.
- * @param label The String label for which all values in the report will be updated.
- */
- public void updateLabel(ProfilingPointSummaryEntity ppSummary, String label) {
- if (!labelIndices.containsKey(label)) {
- labelIndices.put(label, labels.size());
- labels.add(label);
- StatSummary stat =
- new StatSummary(
- label,
- ppSummary.getGlobalStats().getMin(),
- ppSummary.getGlobalStats().getMax(),
- ppSummary.getGlobalStats().getMean(),
- ppSummary.getGlobalStats().getSumSq(),
- ppSummary.getGlobalStats().getCount(),
- ppSummary.getGlobalStats().getRegressionMode());
- statSummaries.add(stat);
- } else {
- StatSummary summary = getStatSummary(label);
- summary.merge(ppSummary.getGlobalStats());
- }
- }
-
- /**
- * Gets an iterator that returns stat summaries in the ordered the labels were specified in the
- * ProfilingReportMessage objects.
- */
- @Override
- public Iterator<StatSummary> iterator() {
- Iterator<StatSummary> it =
- new Iterator<StatSummary>() {
- private int currentIndex = 0;
-
- @Override
- public boolean hasNext() {
- return labels != null && currentIndex < labels.size();
- }
-
- @Override
- public StatSummary next() {
- String label = labels.get(currentIndex++);
- return statSummaries.get(labelIndices.get(label));
- }
-
- @Override
- public void remove() {
- // Not supported
- throw new UnsupportedOperationException();
- }
- };
- return it;
- }
-}