PageRenderTime 119ms CodeModel.GetById 112ms app.highlight 4ms RepoModel.GetById 1ms app.codeStats 0ms

/testability-explorer/src/main/java/com/google/test/metric/WeightedAverage.java

http://testability-explorer.googlecode.com/
Java | 47 lines | 24 code | 8 blank | 15 comment | 0 complexity | 0e37f80c9b6f7ae9f678c3750487dadd MD5 | raw file
 1/*
 2 * Copyright 2007 Google Inc.
 3 *
 4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 5 * use this file except in compliance with the License. You may obtain a copy of
 6 * the License at
 7 *
 8 * http://www.apache.org/licenses/LICENSE-2.0
 9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 * License for the specific language governing permissions and limitations under
14 * the License.
15 */
16package com.google.test.metric;
17
18
19public class WeightedAverage {
20
21  public static final double WEIGHT = 0.3;
22  private final double weight;
23  private double overallSum = 0;
24  private double overallSqr = 0;
25
26  public WeightedAverage() {
27    this(WEIGHT);
28  }
29
30  public WeightedAverage(double weight) {
31    this.weight = weight;
32  }
33
34  public void addValue(long value) {
35    overallSqr += Math.pow(value, weight + 1);
36    overallSum += Math.pow(value, weight);
37  }
38
39  public double getAverage() {
40    return overallSqr / overallSum;
41  }
42
43  @Override
44  public String toString() {
45    return String.format("%.2f / %.2f = %.2f", overallSqr, overallSum, getAverage());
46  }
47}