/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. */
  16. package com.google.test.metric;
  17. public class WeightedAverage {
  18. public static final double WEIGHT = 0.3;
  19. private final double weight;
  20. private double overallSum = 0;
  21. private double overallSqr = 0;
  22. public WeightedAverage() {
  23. this(WEIGHT);
  24. }
  25. public WeightedAverage(double weight) {
  26. this.weight = weight;
  27. }
  28. public void addValue(long value) {
  29. overallSqr += Math.pow(value, weight + 1);
  30. overallSum += Math.pow(value, weight);
  31. }
  32. public double getAverage() {
  33. return overallSqr / overallSum;
  34. }
  35. @Override
  36. public String toString() {
  37. return String.format("%.2f / %.2f = %.2f", overallSqr, overallSum, getAverage());
  38. }
  39. }