summaryrefslogtreecommitdiff
path: root/src/main/java/com/android/vts/util/Histogram.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/android/vts/util/Histogram.java')
-rw-r--r--src/main/java/com/android/vts/util/Histogram.java165
1 files changed, 0 insertions, 165 deletions
diff --git a/src/main/java/com/android/vts/util/Histogram.java b/src/main/java/com/android/vts/util/Histogram.java
deleted file mode 100644
index 2f62a57..0000000
--- a/src/main/java/com/android/vts/util/Histogram.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * Copyright (c) 2016 Google Inc. All Rights Reserved.
- *
- * 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.ProfilingPointRunEntity;
-import com.google.common.primitives.Doubles;
-import com.google.gson.Gson;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonPrimitive;
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.commons.math3.stat.descriptive.rank.Percentile;
-
-/** Helper object for describing graph data. */
-public class Histogram extends Graph {
- public static final String PERCENTILES_KEY = "percentiles";
- public static final String PERCENTILE_VALUES_KEY = "percentile_values";
- public static final String MIN_KEY = "min";
- public static final String MAX_KEY = "max";
-
- private List<Double> values;
- private List<String> ids;
- private String xLabel;
- private String yLabel;
- private String name;
- private GraphType type = GraphType.HISTOGRAM;
- private Double min = null;
- private Double max = null;
-
- public Histogram(String name) {
- this.name = name;
- this.values = new ArrayList<>();
- this.ids = new ArrayList<>();
- }
-
- /**
- * Get the x axis label.
- *
- * @return The x axis label.
- */
- @Override
- public String getXLabel() {
- return xLabel;
- }
-
- /**
- * Get the graph type.
- *
- * @return The graph type.
- */
- @Override
- public GraphType getType() {
- return type;
- }
-
- /**
- * Get the name of the graph.
- *
- * @return The name of the graph.
- */
- @Override
- public String getName() {
- return name;
- }
-
- /**
- * Get the y axis label.
- *
- * @return The y axis label.
- */
- @Override
- public String getYLabel() {
- return yLabel;
- }
-
- /**
- * Get the number of data points stored in the graph.
- *
- * @return The number of data points stored in the graph.
- */
- @Override
- public int size() {
- return values.size();
- }
-
- /**
- * Get the minimum value.
- *
- * @return The minimum value.
- */
- public Double getMin() {
- return min;
- }
-
- /**
- * Get the maximum value.
- *
- * @return The maximum value.
- */
- public Double getMax() {
- return max;
- }
-
- /**
- * Add data to the graph.
- *
- * @param id The name of the graph.
- * @param profilingPoint The ProfilingPointRunEntity containing data to add.
- */
- @Override
- public void addData(String id, ProfilingPointRunEntity profilingPoint) {
- if (profilingPoint.getValues().size() == 0)
- return;
- xLabel = profilingPoint.getXLabel();
- yLabel = profilingPoint.getYLabel();
- for (long v : profilingPoint.getValues()) {
- double value = v;
- values.add(value);
- ids.add(id);
- if (max == null || value > max)
- max = value;
- if (min == null || value < min)
- min = value;
- }
- }
-
- /**
- * Serializes the graph to json format.
- *
- * @return A JsonElement object representing the graph object.
- */
- @Override
- public JsonObject toJson() {
- int[] percentiles = {1, 2, 5, 10, 25, 50, 75, 90, 95, 98, 99};
- double[] percentileValues = new double[percentiles.length];
- double[] valueList = Doubles.toArray(values);
- for (int i = 0; i < percentiles.length; i++) {
- percentileValues[i] =
- Math.round(new Percentile().evaluate(valueList, percentiles[i]) * 1000d)
- / 1000d;
- }
- JsonObject json = super.toJson();
- json.add(VALUE_KEY, new Gson().toJsonTree(values).getAsJsonArray());
- json.add(PERCENTILES_KEY, new Gson().toJsonTree(percentiles).getAsJsonArray());
- json.add(PERCENTILE_VALUES_KEY, new Gson().toJsonTree(percentileValues).getAsJsonArray());
- json.add(IDS_KEY, new Gson().toJsonTree(ids).getAsJsonArray());
- json.add(MIN_KEY, new JsonPrimitive(min));
- json.add(MAX_KEY, new JsonPrimitive(max));
- return json;
- }
-}