diff options
Diffstat (limited to 'src/main/java/com/android/vts/util/ProfilingPointSummary.java')
-rw-r--r-- | src/main/java/com/android/vts/util/ProfilingPointSummary.java | 155 |
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; - } -} |