You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by wf...@apache.org on 2015/08/28 20:33:21 UTC

[03/21] aurora git commit: Remove unused classes from commons fork.

http://git-wip-us.apache.org/repos/asf/aurora/blob/356eeac9/commons/src/test/java/org/apache/aurora/common/objectsize/ObjectSizeCalculatorTest.java
----------------------------------------------------------------------
diff --git a/commons/src/test/java/org/apache/aurora/common/objectsize/ObjectSizeCalculatorTest.java b/commons/src/test/java/org/apache/aurora/common/objectsize/ObjectSizeCalculatorTest.java
deleted file mode 100644
index b912844..0000000
--- a/commons/src/test/java/org/apache/aurora/common/objectsize/ObjectSizeCalculatorTest.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/**
- * 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 org.apache.aurora.common.objectsize;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
-
-public class ObjectSizeCalculatorTest {
-
-  private int A;
-  private int O;
-  private int R;
-  private int S;
-  private ObjectSizeCalculator objectSizeCalculator;
-
-  @Before
-  public void setUp() {
-    ObjectSizeCalculator.MemoryLayoutSpecification memoryLayoutSpecification =
-        new ObjectSizeCalculator.MemoryLayoutSpecification() {
-          @Override public int getArrayHeaderSize() {
-            return 16;
-          }
-          @Override public int getObjectHeaderSize() {
-            return 12;
-          }
-          @Override public int getObjectPadding() {
-            return 8;
-          }
-          @Override public int getReferenceSize() {
-            return 4;
-          }
-          @Override public int getSuperclassFieldPadding() {
-            return 4;
-          }
-        };
-
-    A = memoryLayoutSpecification.getArrayHeaderSize();
-    O = memoryLayoutSpecification.getObjectHeaderSize();
-    R = memoryLayoutSpecification.getReferenceSize();
-    S = memoryLayoutSpecification.getSuperclassFieldPadding();
-
-    objectSizeCalculator = new ObjectSizeCalculator(memoryLayoutSpecification);
-  }
-
-  @Test
-  public void testRounding() {
-    assertEquals(0, roundTo(0, 8));
-    assertEquals(8, roundTo(1, 8));
-    assertEquals(8, roundTo(7, 8));
-    assertEquals(8, roundTo(8, 8));
-    assertEquals(16, roundTo(9, 8));
-    assertEquals(16, roundTo(15, 8));
-    assertEquals(16, roundTo(16, 8));
-    assertEquals(24, roundTo(17, 8));
-  }
-
-  @Test
-  public void testObjectSize() {
-    assertSizeIs(O, new Object());
-  }
-
-  static class ObjectWithFields {
-    int length;
-    int offset;
-    int hashcode;
-    char[] data = {};
-  }
-
-  @Test
-  public void testObjectWithFields() {
-    assertSizeIs(O + 3 * 4 + R + A, new ObjectWithFields());
-  }
-
-  public static class Class1 {
-    private boolean b1;
-  }
-
-  @Test
-  public void testOneBooleanSize() {
-    assertSizeIs(O + 1, new Class1());
-  }
-
-  public static class Class2 extends Class1 {
-    private int i1;
-  }
-
-  @Test
-  public void testSimpleSubclassSize() {
-    assertSizeIs(O + roundTo(1, S) + 4, new Class2());
-  }
-
-  @Test
-  public void testZeroLengthArray() {
-    assertSizeIs(A, new byte[0]);
-    assertSizeIs(A, new int[0]);
-    assertSizeIs(A, new long[0]);
-    assertSizeIs(A, new Object[0]);
-  }
-
-  @Test
-  public void testByteArrays() {
-    assertSizeIs(A + 1, new byte[1]);
-    assertSizeIs(A + 8, new byte[8]);
-    assertSizeIs(A + 9, new byte[9]);
-  }
-
-  @Test
-  public void testCharArrays() {
-    assertSizeIs(A + 2 * 1, new char[1]);
-    assertSizeIs(A + 2 * 4, new char[4]);
-    assertSizeIs(A + 2 * 5, new char[5]);
-  }
-
-  @Test
-  public void testIntArrays() {
-    assertSizeIs(A + 4 * 1, new int[1]);
-    assertSizeIs(A + 4 * 2, new int[2]);
-    assertSizeIs(A + 4 * 3, new int[3]);
-  }
-
-  @Test
-  public void testLongArrays() {
-    assertSizeIs(A + 8 * 1, new long[1]);
-    assertSizeIs(A + 8 * 2, new long[2]);
-    assertSizeIs(A + 8 * 3, new long[3]);
-  }
-
-  @Test
-  public void testObjectArrays() {
-    assertSizeIs(A + R * 1, new Object[1]);
-    assertSizeIs(A + R * 2, new Object[2]);
-    assertSizeIs(A + R * 3, new Object[3]);
-    assertSizeIs(A + R * 1, new String[1]);
-    assertSizeIs(A + R * 2, new String[2]);
-    assertSizeIs(A + R * 3, new String[3]);
-  }
-
-  public static class Circular {
-    Circular c;
-  }
-
-  @Test
-  public void testCircular() {
-    Circular c1 = new Circular();
-    long size = objectSizeCalculator.calculateObjectSize(c1);
-    c1.c = c1;
-    assertEquals(size, objectSizeCalculator.calculateObjectSize(c1));
-  }
-
-  static class ComplexObject<T> {
-    static class Node<T> {
-      final T value;
-      Node<T> previous;
-      Node<T> next;
-
-      Node(T value) {
-        this.value = value;
-      }
-    }
-
-    private Node<T> first;
-    private Node<T> last;
-
-    void add(T item) {
-      Node<T> node = new Node<T>(item);
-      if (first == null) {
-        first = node;
-      } else {
-        last.next = node;
-        node.previous = last;
-      }
-      last = node;
-    }
-  }
-
-  @Test
-  public void testComplexObject() {
-    ComplexObject<Object> l = new ComplexObject<Object>();
-    l.add(new Object());
-    l.add(new Object());
-    l.add(new Object());
-
-    long expectedSize = 0;
-    expectedSize += roundTo(O + 2 * R, 8); // The complex object itself plus first and last refs.
-    expectedSize += roundTo(O + 3 * R, 8) * 3; // 3 Nodes - each with 3 object references.
-    expectedSize += roundTo(O, 8) * 3; // 3 vanilla objects contained in the node values.
-
-    assertSizeIs(expectedSize, l);
-  }
-
-  private void assertSizeIs(long size, Object o) {
-    assertEquals(roundTo(size, 8), objectSizeCalculator.calculateObjectSize(o));
-  }
-
-  private static long roundTo(long x, int multiple) {
-    return ObjectSizeCalculator.roundTo(x, multiple);
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/356eeac9/commons/src/test/java/org/apache/aurora/common/stats/ApproximateHistogramTest.java
----------------------------------------------------------------------
diff --git a/commons/src/test/java/org/apache/aurora/common/stats/ApproximateHistogramTest.java b/commons/src/test/java/org/apache/aurora/common/stats/ApproximateHistogramTest.java
deleted file mode 100644
index 62b8846..0000000
--- a/commons/src/test/java/org/apache/aurora/common/stats/ApproximateHistogramTest.java
+++ /dev/null
@@ -1,321 +0,0 @@
-/**
- * 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 org.apache.aurora.common.stats;
-
-import java.util.Arrays;
-import java.util.List;
-
-import com.google.common.base.Supplier;
-import com.google.common.base.Suppliers;
-import com.google.common.collect.ImmutableList;
-
-import org.junit.Test;
-
-import org.apache.aurora.common.objectsize.ObjectSizeCalculator;
-import org.apache.aurora.common.quantity.Amount;
-import org.apache.aurora.common.quantity.Data;
-
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-public class ApproximateHistogramTest {
-  final int b = 10;
-  final int h = 3;
-
-  @Test
-  public void testCollapse() {
-    ApproximateHistogram hist = new ApproximateHistogram();
-    long[] buf1 = {2,5,7};
-    long[] buf2 = {3,8,9};
-    long[] expected = {3,7,9};
-    long[] result = new long[3];
-    // [2,5,7] weight 2 and [3,8,9] weight 3
-    // weight x array + concat = [2,2,5,5,7,7,3,3,3,8,8,8,9,9,9]
-    // sort = [2,2,3,3,3,5,5,7,7,8,8,8,9,9,9]
-    // select every nth elems = [3,7,9]  (n = sum weight / 2, ie. 5/3 = 2)
-    // [2,2,3,3,3,5,5,7,7,8,8,8,9,9,9]
-    //  . . ^ . . . . ^ . . . . ^ . .
-    //  [-------] [-------] [-------] we make 3 packets of 5 elements and take the middle
-
-    ApproximateHistogram.collapse(buf1, 2, buf2, 3, result);
-    assertArrayEquals(result, expected);
-
-    long[] buf3 = {2, 5, 7, 9};
-    long[] buf4 = {3, 8, 9, 12};
-    long[] expected2 = {3, 7, 9, 12};
-    long[] result2 = new long[4];
-    ApproximateHistogram.collapse(buf3, 2, buf4, 2, result2);
-    assertArrayEquals(expected2, result2);
-  }
-
-  @Test
-  public void testRecCollapse() {
-    long[] empty = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-    long[] full = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
-    ApproximateHistogram hist = new ApproximateHistogram(b, h);
-    assertArrayEquals(empty, hist.buffer[0]);
-    assertArrayEquals(empty, hist.buffer[1]);
-
-    initializeValues(hist, b, Suppliers.ofInstance(1L));
-    assertArrayEquals(full, hist.buffer[0]);
-    assertArrayEquals(empty, hist.buffer[1]);
-
-    initializeValues(hist, b, Suppliers.ofInstance(1L));
-    assertArrayEquals(full, hist.buffer[0]);
-    assertArrayEquals(full, hist.buffer[1]);
-
-    hist.add(1);
-    assertEquals(2, hist.currentTop);
-    // Buffers are not cleared so we can't check that!
-    assertArrayEquals(full, hist.buffer[2]);
-
-    initializeValues(hist, 2 * b, Suppliers.ofInstance(1L));
-    assertEquals(3, hist.currentTop);
-    assertArrayEquals(full, hist.buffer[3]);
-  }
-
-  @Test
-  public void testReachingMaxDepth() {
-    ApproximateHistogram hist = new ApproximateHistogram(b, h);
-
-    initializeValues(hist, 8 * b, Suppliers.ofInstance(1L));
-    assertEquals(3, hist.currentTop);
-
-    hist.add(1);
-    assertEquals(3, hist.currentTop);
-  }
-
-  @Test
-  public void testMem() {
-    for (int b = 10; b < 100; b += 10) {
-      for (int h = 4; h < 16; h += 4) {
-        ApproximateHistogram hist = new ApproximateHistogram(b, h);
-        long actualSize = ObjectSizeCalculator.getObjectSize(hist);
-        long estimatedSize = ApproximateHistogram.memoryUsage(b, h);
-        assertTrue("Consume less memory than the constraint", actualSize < estimatedSize);
-      }
-    }
-  }
-
-  @Test
-  public void testMemConstraint() {
-    ImmutableList.Builder<Amount<Long, Data>> builder = ImmutableList.builder();
-    builder.add(Amount.of(1L, Data.KB));
-    builder.add(Amount.of(4L, Data.KB));
-    builder.add(Amount.of(8L, Data.KB));
-    builder.add(Amount.of(16L, Data.KB));
-    builder.add(Amount.of(32L, Data.KB));
-    builder.add(Amount.of(64L, Data.KB));
-    builder.add(Amount.of(256L, Data.KB));
-    builder.add(Amount.of(1L, Data.MB));
-    builder.add(Amount.of(16L, Data.MB));
-    builder.add(Amount.of(32L, Data.MB));
-    List<Amount<Long, Data>> sizes = builder.build();
-
-    for (Amount<Long, Data> maxSize: sizes) {
-      ApproximateHistogram hist = new ApproximateHistogram(maxSize);
-      for (long i = 0; i < 1000 * 1000; i++) { hist.add(i); }
-      long size = ObjectSizeCalculator.getObjectSize(hist);
-      assertTrue(size < maxSize.as(Data.BYTES));
-    }
-  }
-
-  @Test
-  public void testLowMemoryPrecision() {
-    double e = ApproximateHistogram.DEFAULT_PRECISION.getEpsilon();
-    int n = ApproximateHistogram.DEFAULT_PRECISION.getN();
-    int defaultDepth = ApproximateHistogram.computeDepth(e, n);
-    int defaultBufferSize = ApproximateHistogram.computeBufferSize(defaultDepth, n);
-
-    ApproximateHistogram hist = new ApproximateHistogram(Amount.of(1L, Data.KB));
-    int depth = hist.buffer.length - 1;
-    int bufferSize = hist.buffer[0].length;
-
-    assertTrue(depth > defaultDepth);
-    assertTrue(bufferSize < defaultBufferSize);
-  }
-
-  @Test
-  public void testHighMemoryPrecision() {
-    double e = ApproximateHistogram.DEFAULT_PRECISION.getEpsilon();
-    int n = ApproximateHistogram.DEFAULT_PRECISION.getN();
-    int defaultDepth = ApproximateHistogram.computeDepth(e, n);
-    int defaultBufferSize = ApproximateHistogram.computeBufferSize(defaultDepth, n);
-
-    ApproximateHistogram hist = new ApproximateHistogram(Amount.of(1L, Data.MB));
-    int depth = hist.buffer.length - 1;
-    int bufferSize = hist.buffer[0].length;
-
-    assertTrue(depth < defaultDepth);
-    assertTrue(bufferSize > defaultBufferSize);
-  }
-
-  private void initIndexArray(ApproximateHistogram hist, int b) {
-    Arrays.fill(hist.indices, b - 1);
-    int buf0Size = Math.min(b, hist.leafCount);
-    int buf1Size = Math.max(0, hist.leafCount - buf0Size);
-    hist.indices[0] = buf0Size - 1;
-    hist.indices[1] = buf1Size - 1;
-  }
-
-  private long getBiggest(ApproximateHistogram hist) {
-    int j = hist.biggest(hist.indices);
-    int idx = hist.indices[j];
-    hist.indices[j] -= 1;
-    return hist.buffer[j][idx];
-  }
-
-  @Test
-  public void testBiggestIndexFinder() {
-    ApproximateHistogram hist = new ApproximateHistogram(b, h);
-    int n = 3;
-    for (int i=1; i <= n; i++) {
-      hist.add(i);
-    }
-
-    initIndexArray(hist, b);
-    for (int i=1; i <= n; i++) {
-      assertEquals(n - i + 1, getBiggest(hist));
-    }
-
-    n = 2 * b;
-    for (int i=4; i <= n; i++) {
-      hist.add(i);
-    }
-
-    initIndexArray(hist, b);
-    for (int i=1; i <= n; i++) {
-      assertEquals(n - i + 1, getBiggest(hist));
-    }
-
-    hist.add(2*b + 1);
-    n += 1;
-
-    initIndexArray(hist, b);
-    assertEquals(n, getBiggest(hist));
-
-    for (int i=2; i <= n; i += 2) {
-      assertEquals(n - i + 1, getBiggest(hist));
-    }
-  }
-
-  @Test
-  public void testIsBufferEmpty() {
-    ApproximateHistogram hist = new ApproximateHistogram(b, h);
-
-    for (int i=0; i < 3*b; i++) {
-      hist.add(i);
-    }
-    assertEquals(false, hist.isBufferEmpty(2));
-    assertEquals(true, hist.isBufferEmpty(3));
-
-    for (int i=0; i < 2*b; i++) {
-      hist.add(i);
-    }
-    assertEquals(true, hist.isBufferEmpty(2));
-    assertEquals(false, hist.isBufferEmpty(3));
-  }
-
-  @Test
-  public void testHistogramWithNegative() {
-    ApproximateHistogram hist = new ApproximateHistogram();
-    hist.add(-1L);
-    assertEquals(-1L, hist.getQuantile(0.0));
-    assertEquals(-1L, hist.getQuantile(0.5));
-    assertEquals(-1L, hist.getQuantile(1.0));
-  }
-
-  @Test
-  public void testHistogramWithEdgeCases() {
-    ApproximateHistogram hist = new ApproximateHistogram();
-    hist.add(Long.MIN_VALUE);
-    assertEquals(Long.MIN_VALUE, hist.getQuantile(0.0));
-    assertEquals(Long.MIN_VALUE, hist.getQuantile(1.0));
-
-    hist.add(Long.MAX_VALUE);
-    assertEquals(Long.MIN_VALUE, hist.getQuantile(0.0));
-    assertEquals(Long.MAX_VALUE, hist.getQuantile(1.0));
-  }
-
-  @Test
-  public void testQueryZerothQuantile() {
-    // Tests that querying the zeroth quantile does not throw an exception
-    ApproximateHistogram hist = new ApproximateHistogram(b, h);
-    initializeValues(hist, 10, Suppliers.ofInstance(1L));
-    assertEquals(1L, hist.getQuantile(0.0));
-  }
-
-  @Test
-  public void testSmallDataCase() {
-    // Tests that querying the zeroth quantile does not throw an exception
-    ApproximateHistogram hist = new ApproximateHistogram(b, h);
-    initializeValues(hist, 1, Suppliers.ofInstance(1L));
-    assertEquals(1L, hist.getQuantile(0.5));
-  }
-
-  @Test
-  public void testSimpleCase() {
-    ApproximateHistogram hist = new ApproximateHistogram();
-    int n = 10;
-    initializeValues(hist, n, monotonic());
-    for (int i = 1; i <= n; i++) {
-      double q = i / 10.0;
-      assertEquals(i, hist.getQuantile(q), 1.0);
-    }
-  }
-
-  @Test
-  public void testGetQuantiles() {
-    ApproximateHistogram hist = new ApproximateHistogram();
-    int n = 10;
-    initializeValues(hist, n, monotonic());
-    double[] quantiles = new double[n];
-    for (int i = 0; i < n; i++) {
-      quantiles[i] = (i + 1) / 10.0;
-    }
-    long[] results = hist.getQuantiles(quantiles);
-    for (int i = 0; i < n; i++) {
-      long res = results[i];
-      double q = quantiles[i];
-      assertEquals(hist.getQuantile(q), res);
-    }
-  }
-
-  @Test
-  public void testYetAnotherGetQuantiles() {
-    // this test originates from issue CSL-586
-    ApproximateHistogram hist = new ApproximateHistogram();
-    hist.add(0);
-    hist.add(4);
-    hist.add(9);
-    hist.add(8);
-    double[] quantiles = new double[]{0.5, 0.9, 0.99};
-    long[] expected = new long[]{8,9,9};
-    assertArrayEquals(hist.getQuantiles(quantiles), expected);
-  }
-
-  private static void initializeValues(ApproximateHistogram hist, int n, Supplier<Long> what) {
-    for (int i=0; i<n ; i++) {
-      hist.add(what.get());
-    }
-  }
-
-  private static Supplier<Long> monotonic() {
-    return new Supplier<Long>() {
-      long i = 0;
-      @Override public Long get() { return ++i; }
-    };
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/356eeac9/commons/src/test/java/org/apache/aurora/common/stats/ElapsedTest.java
----------------------------------------------------------------------
diff --git a/commons/src/test/java/org/apache/aurora/common/stats/ElapsedTest.java b/commons/src/test/java/org/apache/aurora/common/stats/ElapsedTest.java
deleted file mode 100644
index 3343f4f..0000000
--- a/commons/src/test/java/org/apache/aurora/common/stats/ElapsedTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- * 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 org.apache.aurora.common.stats;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import org.apache.aurora.common.quantity.Amount;
-import org.apache.aurora.common.quantity.Time;
-import org.apache.aurora.common.util.testing.FakeTicker;
-
-import static org.junit.Assert.assertEquals;
-
-/**
- * @author William Farner
- */
-public class ElapsedTest {
-
-  private static final Amount<Long, Time> ONE_SECOND = Amount.of(1L, Time.SECONDS);
-
-  private static final String NAME = "elapsed";
-
-  private FakeTicker ticker;
-
-  @Before
-  public void setUp() {
-    ticker = new FakeTicker();
-    Stats.flush();
-  }
-
-  private Elapsed elapsed(Time granularity) {
-    return new Elapsed(NAME, granularity, ticker);
-  }
-
-  @Test
-  public void testTimeSince() {
-    Elapsed elapsed = elapsed(Time.MILLISECONDS);
-    checkValue(0);
-    ticker.advance(ONE_SECOND);
-    checkValue(1000);
-
-    elapsed.reset();
-    checkValue(0);
-
-    elapsed.reset();
-    ticker.advance(ONE_SECOND);
-    checkValue(1000);
-    ticker.advance(ONE_SECOND);
-    checkValue(2000);
-    ticker.advance(ONE_SECOND);
-    checkValue(3000);
-    ticker.advance(ONE_SECOND);
-    checkValue(4000);
-  }
-
-  @Test
-  public void testGranularity() {
-    Elapsed elapsed = elapsed(Time.HOURS);
-    checkValue(0);
-    ticker.advance(Amount.of(1L, Time.DAYS));
-    checkValue(24);
-
-    elapsed.reset();
-    ticker.advance(Amount.of(1L, Time.MINUTES));
-    checkValue(0);
-  }
-
-  private void checkValue(long expected) {
-    long actual = (Long) Stats.getVariable(NAME).read();
-    assertEquals(expected, actual);
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/356eeac9/commons/src/test/java/org/apache/aurora/common/stats/EntropyTest.java
----------------------------------------------------------------------
diff --git a/commons/src/test/java/org/apache/aurora/common/stats/EntropyTest.java b/commons/src/test/java/org/apache/aurora/common/stats/EntropyTest.java
deleted file mode 100644
index 0807986..0000000
--- a/commons/src/test/java/org/apache/aurora/common/stats/EntropyTest.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * 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 org.apache.aurora.common.stats;
-
-import com.google.common.collect.Lists;
-import junit.framework.TestCase;
-import org.junit.Test;
-
-import java.util.List;
-
-/**
- * Tests Entropy.
- *
- * @author Gilad Mishne
- */
-public class EntropyTest extends TestCase {
-
-  private void assertEqualsWithDeviation(double expected, double predicted, double deviation) {
-    assertTrue(String.format("%2.4f not within %2.4f distance of %2.4f",
-        predicted, deviation, expected),
-        Math.abs(expected - predicted) <= deviation);
-  }
-
-  @Test
-  public void test() throws Exception {
-    List<Integer> numbers = Lists.newArrayList();
-    double deviation = 0.01;
-
-    assertEqualsWithDeviation(new Entropy<Integer>(numbers).entropy(), 0, deviation);
-
-    numbers.add(1);
-    assertEqualsWithDeviation(new Entropy<Integer>(numbers).entropy(), 0, deviation);
-
-    numbers.add(2);
-    assertEqualsWithDeviation(new Entropy<Integer>(numbers).entropy(), 1, deviation);
-
-    numbers.addAll(Lists.newArrayList(1, 2));
-    assertEqualsWithDeviation(new Entropy<Integer>(numbers).entropy(), 1, deviation);
-    assertEqualsWithDeviation(new Entropy<Integer>(numbers).perplexity(), 2, deviation);
-
-    numbers.addAll(Lists.newArrayList(2, 2, 3, 4));
-    assertEqualsWithDeviation(new Entropy<Integer>(numbers).entropy(), 1.75, deviation);
-
-    numbers.addAll(Lists.newArrayList(1, 1, 1, 1));
-    assertEqualsWithDeviation(new Entropy<Integer>(numbers).entropy(), 1.625, deviation);
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/356eeac9/commons/src/test/java/org/apache/aurora/common/stats/MergedHistogramTest.java
----------------------------------------------------------------------
diff --git a/commons/src/test/java/org/apache/aurora/common/stats/MergedHistogramTest.java b/commons/src/test/java/org/apache/aurora/common/stats/MergedHistogramTest.java
deleted file mode 100644
index e71a34f..0000000
--- a/commons/src/test/java/org/apache/aurora/common/stats/MergedHistogramTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * 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 org.apache.aurora.common.stats;
-
-import org.junit.Test;
-
-import org.apache.aurora.common.quantity.Amount;
-import org.apache.aurora.common.quantity.Data;
-
-import static org.junit.Assert.assertEquals;
-
-public class MergedHistogramTest {
-
-  @Test
-  public void testEmptyMergedHistogram() {
-    ApproximateHistogram empty[] = new ApproximateHistogram[0];
-    Histogram mergedHistogram = ApproximateHistogram.merge(empty);
-
-    assertEquals(0L, mergedHistogram.getQuantile(0.5));
-  }
-
-  @Test
-  public void testMergedSimilarHistogram() {
-    int n = 10;
-    ApproximateHistogram histograms[] = new ApproximateHistogram[n];
-    for (int i = 0; i < n; i++) {
-      ApproximateHistogram h = new ApproximateHistogram();
-      h.add(i);
-      histograms[i] = h;
-    }
-
-    Histogram mergedHistogram = ApproximateHistogram.merge(histograms);
-    assertEquals(0L, mergedHistogram.getQuantile(0.0));
-    assertEquals(1L, mergedHistogram.getQuantile(0.1));
-    assertEquals(5L, mergedHistogram.getQuantile(0.5));
-    assertEquals(9L, mergedHistogram.getQuantile(0.9));
-    assertEquals(9L, mergedHistogram.getQuantile(0.99));
-  }
-
-  @Test
-  public void testMergedDifferentHistogram() {
-    int n = 10;
-    ApproximateHistogram histograms[] = new ApproximateHistogram[n];
-    for (int i = 0; i < n; i++) {
-      ApproximateHistogram h = new ApproximateHistogram(Amount.of(2L + 4*i, Data.KB));
-      h.add(i);
-      histograms[i] = h;
-    }
-
-    Histogram mergedHistogram = ApproximateHistogram.merge(histograms);
-    assertEquals(0L, mergedHistogram.getQuantile(0.0));
-    assertEquals(1L, mergedHistogram.getQuantile(0.1));
-    assertEquals(5L, mergedHistogram.getQuantile(0.5));
-    assertEquals(9L, mergedHistogram.getQuantile(0.9));
-    assertEquals(9L, mergedHistogram.getQuantile(0.99));
-  }
-
-  @Test
-  public void testMergedBigHistogram() {
-    int n = 10;
-    int m = 5000;
-    ApproximateHistogram histograms[] = new ApproximateHistogram[n];
-    int x = 0;
-    for (int i = 0; i < n; i++) {
-      ApproximateHistogram h = new ApproximateHistogram();
-      while(x < m * (i + 1)) {
-        h.add(x);
-        x += 1;
-      }
-      histograms[i] = h;
-    }
-    long sum = m * n;
-
-    double maxError = ApproximateHistogram.DEFAULT_PRECISION.getEpsilon() *
-        ApproximateHistogram.DEFAULT_PRECISION.getN();
-    Histogram mergedHistogram = ApproximateHistogram.merge(histograms);
-    for (int i = 1; i < 10; i++) {
-      double q = i / 10.0;
-      double expected = q * sum;
-      assertEquals(expected, mergedHistogram.getQuantile(q), maxError);
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/356eeac9/commons/src/test/java/org/apache/aurora/common/stats/MovingAverageTest.java
----------------------------------------------------------------------
diff --git a/commons/src/test/java/org/apache/aurora/common/stats/MovingAverageTest.java b/commons/src/test/java/org/apache/aurora/common/stats/MovingAverageTest.java
deleted file mode 100644
index cce2f69..0000000
--- a/commons/src/test/java/org/apache/aurora/common/stats/MovingAverageTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- * 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 org.apache.aurora.common.stats;
-
-import java.util.List;
-
-import com.google.common.collect.Lists;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import org.apache.aurora.common.testing.easymock.EasyMockTest;
-
-import static org.easymock.EasyMock.expect;
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-/**
- * Test for MovingAverage.
- *
- * @author William Farner
- */
-public class MovingAverageTest extends EasyMockTest {
-
-  private Stat<Integer> input;
-
-  @Before
-  public void setUp() {
-    input = createMock(new Clazz<Stat<Integer>>() {});
-  }
-
-  @Test
-  public void testEmptySeries() {
-    runTest(Lists.<Integer>newArrayList(), Lists.<Double>newArrayList());
-  }
-
-  @Test
-  public void testConstantValues() {
-    runTest(
-        Lists.newArrayList( 5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5),
-        Lists.newArrayList(5d, 5d, 5d, 5d, 5d, 5d, 5d, 5d, 5d, 5d, 5d, 5d, 5d, 5d, 5d, 5d, 5d, 5d));
-  }
-
-  @Test
-  public void testLinear() {
-    runTest(
-        Lists.newArrayList( 1,    2,  3,    4,  5,    6,  7,    8,  9,   10,   11,   12,   13),
-        Lists.newArrayList(1d, 1.5d, 2d, 2.5d, 3d, 3.5d, 4d, 4.5d, 5d, 5.5d, 6.5d, 7.5d, 8.5d));
-  }
-
-  @Test
-  public void testStep() {
-    runTest(
-        Lists.newArrayList( 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 10, 10, 10, 10, 10),
-        Lists.newArrayList(0d, 0d, 0d, 0d, 0d, 0d, 0d, 0d, 0d, 0d, 0d, 1d, 2d, 3d, 4d, 5d));
-  }
-
-  private void runTest(List<Integer> inputs, List<Double> expectedOutputs) {
-    expect(input.getName()).andReturn("test").atLeastOnce();
-    for (int value : inputs) {
-      expect(input.read()).andReturn(value);
-    }
-
-    control.replay();
-
-    MovingAverage<Integer> movingAvg = MovingAverage.of(input, 10 /* window size */);
-
-    for (double output : expectedOutputs) {
-      assertThat(movingAvg.sample(), is(output));
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/356eeac9/commons/src/test/java/org/apache/aurora/common/stats/MovingWindowDeltaTest.java
----------------------------------------------------------------------
diff --git a/commons/src/test/java/org/apache/aurora/common/stats/MovingWindowDeltaTest.java b/commons/src/test/java/org/apache/aurora/common/stats/MovingWindowDeltaTest.java
deleted file mode 100644
index 857916c..0000000
--- a/commons/src/test/java/org/apache/aurora/common/stats/MovingWindowDeltaTest.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
- * 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 org.apache.aurora.common.stats;
-
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-import java.util.concurrent.atomic.AtomicLong;
-
-import com.google.common.base.Supplier;
-
-/**
- * Test for MovingWindowDelta.
- *
- * @author Feng Zhuge
- */
-public class MovingWindowDeltaTest {
-  private static final int DEFAULT_WINDOW_SIZE = 5;
-
-  private AtomicLong externalValue = new AtomicLong();
-
-  public Supplier<AtomicLong> getSupplier() {
-    return new Supplier<AtomicLong>() {
-      @Override
-      public AtomicLong get() {
-        return externalValue;
-      }
-    };
-  }
-
-  @Test
-  public void testOneSample() {
-    MovingWindowDelta<AtomicLong> movingWindowDelta = MovingWindowDelta.of(
-      "test", getSupplier(), DEFAULT_WINDOW_SIZE);
-
-    externalValue.getAndSet(7l);
-    externalValue.getAndSet(11l);
-
-    assertEquals(11l, movingWindowDelta.doSample().longValue());
-  }
-
-  @Test
-  public void testMultipleSamples() {
-    MovingWindowDelta<AtomicLong> movingWindowDelta = MovingWindowDelta.of(
-      "test", getSupplier(), DEFAULT_WINDOW_SIZE);
-
-    externalValue.getAndSet(3l);
-    assertEquals(3l, movingWindowDelta.doSample().longValue());
-    externalValue.getAndSet(8l);
-    assertEquals(8l, movingWindowDelta.doSample().longValue());
-  }
-
-  @Test
-  public void TestExpiringCounts() {
-    MovingWindowDelta<AtomicLong> movingWindowDelta = MovingWindowDelta.of(
-      "test", getSupplier(), DEFAULT_WINDOW_SIZE);
-
-    long expectedDelta;
-    for (long i = 0; i < 100; ++i) {
-      expectedDelta = i < DEFAULT_WINDOW_SIZE ? i + 1 : DEFAULT_WINDOW_SIZE;
-
-      externalValue.getAndSet(i + 1);
-      assertEquals(expectedDelta, movingWindowDelta.doSample().longValue());
-    }
-  }
-
-  @Test
-  public void TestDifferentValueExpiring() {
-    MovingWindowDelta<AtomicLong> movingWindowDelta =
-        MovingWindowDelta.of("test", getSupplier(), 5);
-
-    long ret = 0l;
-    for (long  i = 0; i < 10; ++i) {
-      externalValue.getAndSet(i * i);
-      ret = movingWindowDelta.doSample();
-    }
-    assertEquals(65l, ret);
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/356eeac9/commons/src/test/java/org/apache/aurora/common/stats/NumericStatExporterTest.java
----------------------------------------------------------------------
diff --git a/commons/src/test/java/org/apache/aurora/common/stats/NumericStatExporterTest.java b/commons/src/test/java/org/apache/aurora/common/stats/NumericStatExporterTest.java
deleted file mode 100644
index 23a767d..0000000
--- a/commons/src/test/java/org/apache/aurora/common/stats/NumericStatExporterTest.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/**
- * 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 org.apache.aurora.common.stats;
-
-import java.util.Map;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Captor;
-import org.mockito.Matchers;
-import org.mockito.Mock;
-
-import org.apache.aurora.common.application.ShutdownRegistry;
-import org.apache.aurora.common.base.Closure;
-import org.apache.aurora.common.base.Command;
-import org.apache.aurora.common.quantity.Amount;
-import org.apache.aurora.common.quantity.Time;
-import org.apache.aurora.common.testing.mockito.MockitoTest;
-
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.anyLong;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.when;
-
-/**
- * Unit tests for {@code NumericStatExporter}
- */
-public class NumericStatExporterTest extends MockitoTest {
-  private static final Amount<Long, Time> TEST_EXPORT_INTERVAL = Amount.of(1L, Time.MINUTES);
-  private static final String MOCK_STAT_NAME = "NumericStatExporterTest_mock_stat";
-  private static final int MOCK_STAT_READ_VALUE = 0;
-  private static final int MOCK_STAT_SAMPLED_VALUE = 1;
-
-  @Mock
-  private Closure<Map<String, ? extends Number>> mockExportSink;
-  @Mock
-  private ScheduledExecutorService mockExecutor;
-  @Mock
-  private ShutdownRegistry mockShutdownRegistry;
-  @Mock
-  private RecordingStat<Integer> mockRecordingStat;
-
-  @Captor
-  private ArgumentCaptor<Runnable> runnableCaptor;
-  @Captor
-  private ArgumentCaptor<Command> commandCaptor;
-  @Captor
-  private ArgumentCaptor<Map<String, ? extends Number>> statReadValueMapCaptor;
-
-
-  private NumericStatExporter numericStatExporter;
-
-  @Before
-  public void setUp() {
-    when(mockRecordingStat.getName()).thenReturn(MOCK_STAT_NAME);
-    when(mockRecordingStat.read()).thenReturn(MOCK_STAT_READ_VALUE);
-    when(mockRecordingStat.sample()).thenReturn(MOCK_STAT_SAMPLED_VALUE);
-    Stats.export(mockRecordingStat);
-
-    numericStatExporter
-        = new NumericStatExporter(mockExportSink, mockExecutor, TEST_EXPORT_INTERVAL);
-  }
-
-  @Test
-  public void testStartMethodScheduleExport() {
-    numericStatExporter.start(mockShutdownRegistry);
-
-    // Verify the executor is scheduled properly.
-    verify(mockExecutor).scheduleAtFixedRate(runnableCaptor.capture(),
-        anyLong(), anyLong(), Matchers.<TimeUnit>anyObject());
-    // Verify the behavior of the schedule runnable.
-    runnableCaptor.getValue().run();
-    verify(mockExportSink).execute(statReadValueMapCaptor.capture());
-    // Verify stat reading behavior.
-    assertEquals(MOCK_STAT_READ_VALUE, statReadValueMapCaptor.getValue().get(MOCK_STAT_NAME));
-  }
-
-  @Test
-  public void testStartMethodShutdownRegistryFinalSampleAndExport() {
-    numericStatExporter.start(mockShutdownRegistry);
-
-    // Verify the shutdown registry is called.
-    verify(mockShutdownRegistry).addAction(commandCaptor.capture());
-    // Verify the behavior of the shutdown registry command.
-    commandCaptor.getValue().execute();
-
-    // The shutdown command calls stop(), which we'll test separately.
-
-    // Now verifies the final sample and export behavior.
-    verify(mockExportSink).execute(statReadValueMapCaptor.capture());
-    // Verify stat sampling and reading behavior.
-    assertEquals(MOCK_STAT_SAMPLED_VALUE, statReadValueMapCaptor.getValue().get(MOCK_STAT_NAME));
-  }
-
-  @Test
-  public void testStopMethodAwaitTerminationReturnsFast() throws Exception {
-    when(mockExecutor.awaitTermination(anyLong(), Matchers.<TimeUnit>anyObject()))
-        .thenReturn(true);
-    numericStatExporter.stop();
-    verify(mockExecutor).awaitTermination(eq(1L), eq(TimeUnit.SECONDS));
-    verifyNoMoreInteractions(mockExecutor);
-  }
-
-  @Test
-  public void testStopMethodAwaitTerminationReturnsSlowly() throws Exception {
-    when(mockExecutor.awaitTermination(anyLong(), Matchers.<TimeUnit>anyObject()))
-        .thenReturn(false);
-    numericStatExporter.stop();
-    verify(mockExecutor, times(2)).awaitTermination(eq(1L), eq(TimeUnit.SECONDS));
-    verify(mockExecutor).shutdownNow();
-    verifyNoMoreInteractions(mockExecutor);
-  }
-
-  @Test
-  public void testStopMethodAwaitTerminationInterrupted() throws Exception {
-    when(mockExecutor.awaitTermination(anyLong(), Matchers.<TimeUnit>anyObject()))
-        .thenThrow(new InterruptedException("mock failure"));
-    numericStatExporter.stop();
-    verify(mockExecutor).awaitTermination(eq(1L), eq(TimeUnit.SECONDS));
-    verify(mockExecutor).shutdownNow();
-    verifyNoMoreInteractions(mockExecutor);
-    // We need to reset the thread's interrupt flag so other tests who uses certain
-    // concurrent calls like latches and various waits wouldn't fail.
-    Thread.currentThread().interrupted();
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/aurora/blob/356eeac9/commons/src/test/java/org/apache/aurora/common/stats/PipelineStatsTest.java
----------------------------------------------------------------------
diff --git a/commons/src/test/java/org/apache/aurora/common/stats/PipelineStatsTest.java b/commons/src/test/java/org/apache/aurora/common/stats/PipelineStatsTest.java
deleted file mode 100644
index b090c64..0000000
--- a/commons/src/test/java/org/apache/aurora/common/stats/PipelineStatsTest.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/**
- * 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 org.apache.aurora.common.stats;
-
-import com.google.common.collect.Sets;
-import org.apache.aurora.common.quantity.Time;
-import org.apache.aurora.common.util.Clock;
-import org.apache.aurora.common.util.testing.FakeClock;
-import org.junit.Before;
-import org.junit.Test;
-
-import java.util.concurrent.atomic.AtomicLong;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-/**
- * Tests the PipelineStats class.
- *
- * @author William Farner
- */
-public class PipelineStatsTest {
-
-  private Clock clock = new FakeClock();
-  private PipelineStats stats;
-
-  @Before
-  public void setUp() {
-    stats = new PipelineStats("test", Sets.newHashSet("a", "b", "c"), clock, Time.MILLISECONDS);
-  }
-
-  @Test
-  public void testEmptyFlow() {
-    PipelineStats.Snapshot pipeline = stats.newSnapshot();
-    pipeline.end();
-
-    checkSample("a", 0, 0);
-    checkSample("b", 0, 0);
-    checkSample("c", 0, 0);
-    checkSample("full", 1, 0);
-  }
-
-  @Test
-  public void testSimpleFlow() throws Exception {
-    PipelineStats.Snapshot pipeline = stats.newSnapshot();
-    pipeline.start("a");
-    clock.waitFor(10);
-    pipeline.start("b");
-    clock.waitFor(20);
-    pipeline.start("c");
-    clock.waitFor(30);
-    pipeline.end();
-
-    checkSample("a", 1, 10);
-    checkSample("b", 1, 20);
-    checkSample("c", 1, 30);
-    checkSample("full", 1, 60);
-  }
-
-  @Test
-  public void testEarlyExit() throws Exception {
-    PipelineStats.Snapshot pipeline = stats.newSnapshot();
-    pipeline.start("a");
-    clock.waitFor(10);
-    pipeline.start("b");
-    clock.waitFor(20);
-    pipeline.end();
-
-    checkSample("a", 1, 10);
-    checkSample("b", 1, 20);
-    checkSample("full", 1, 30);
-  }
-
-  @Test
-  public void testDuplicatedStages() throws Exception {
-    PipelineStats.Snapshot pipeline = stats.newSnapshot();
-    pipeline.start("a");
-    clock.waitFor(10);
-    pipeline.start("b");
-    clock.waitFor(20);
-    pipeline.start("b");
-    clock.waitFor(10);
-    pipeline.start("b");
-    clock.waitFor(50);
-    pipeline.start("c");
-    clock.waitFor(30);
-    pipeline.start("c");
-    clock.waitFor(70);
-    pipeline.end();
-
-    checkSample("a", 1, 10);
-    checkSample("b", 3, 80);
-    checkSample("c", 2, 100);
-    checkSample("full", 1, 190);
-  }
-
-  @Test
-  public void testSimultaneousSnapshots() throws Exception {
-    PipelineStats.Snapshot pipeline1 = stats.newSnapshot();
-    PipelineStats.Snapshot pipeline2 = stats.newSnapshot();
-    pipeline1.start("a");
-    clock.waitFor(10);
-    pipeline2.start("a");
-    pipeline1.start("b");
-    clock.waitFor(20);
-    pipeline2.start("b");
-    clock.waitFor(10);
-    pipeline2.start("c");
-    clock.waitFor(10);
-    pipeline2.end();
-
-    // Only pipeline2 was recorded, so we should not see pipeline1 in the time series yet.
-    checkSample("a", 1, 20);
-    checkSample("b", 1, 10);
-    checkSample("c", 1, 10);
-    checkSample("full", 1, 40);
-
-    pipeline1.start("c");
-    clock.waitFor(30);
-    pipeline1.end();
-
-    // The current sample will now be the sum of pipeline1 and pipeline2.
-    checkSample("a", 2, 30);
-    checkSample("b", 2, 50);
-    checkSample("c", 2, 40);
-    checkSample("full", 2, 120);
-  }
-
-  private void checkSample(String stage, long events, long latency) {
-    AtomicLong eventsCounter = stats.getStatsForStage(stage).getEventCounter();
-    AtomicLong latencyCounter = stats.getStatsForStage(stage).getTotalCounter();
-
-    assertThat(eventsCounter.get(), is(events));
-    assertThat(latencyCounter.get(), is(latency));
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/356eeac9/commons/src/test/java/org/apache/aurora/common/stats/PrintableHistogramTest.java
----------------------------------------------------------------------
diff --git a/commons/src/test/java/org/apache/aurora/common/stats/PrintableHistogramTest.java b/commons/src/test/java/org/apache/aurora/common/stats/PrintableHistogramTest.java
deleted file mode 100644
index d2aa019..0000000
--- a/commons/src/test/java/org/apache/aurora/common/stats/PrintableHistogramTest.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- * 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 org.apache.aurora.common.stats;
-
-import junit.framework.TestCase;
-
-public class PrintableHistogramTest extends TestCase {
-
-  public void testPrintHistogram() {
-    PrintableHistogram hist = new PrintableHistogram(10, 20, 30, 40, 50, 60, 70, 80, 90, 100);
-    for (int i = 10; i > 0; i--) {
-      hist.addValue(i * 10, 10 - i);
-    }
-    System.out.println(hist);
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/356eeac9/commons/src/test/java/org/apache/aurora/common/stats/ReservoirSamplerTest.java
----------------------------------------------------------------------
diff --git a/commons/src/test/java/org/apache/aurora/common/stats/ReservoirSamplerTest.java b/commons/src/test/java/org/apache/aurora/common/stats/ReservoirSamplerTest.java
deleted file mode 100644
index 4d5a7e9..0000000
--- a/commons/src/test/java/org/apache/aurora/common/stats/ReservoirSamplerTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * 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 org.apache.aurora.common.stats;
-
-import java.util.List;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import com.google.common.collect.ImmutableList;
-
-import org.apache.aurora.common.testing.easymock.EasyMockTest;
-import org.apache.aurora.common.util.Random;
-
-import static org.easymock.EasyMock.expect;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertEquals;
-
-/**
- * Tests the Reservoir Sampler code
- *
- * @author Delip Rao
- */
-public class ReservoirSamplerTest extends EasyMockTest {
-
-  private Random random;
-
-  @Before
-  public void setUp() throws Exception {
-    random = createMock(Random.class);
-  }
-
-  @Test
-  public void testSampling() throws Exception {
-    int mockValues[] = {3, 4, 5, 6, 7};
-    for (int value : mockValues) {
-      expect(random.nextInt(value + 1)).andReturn(value);
-    }
-    control.replay();
-
-    ReservoirSampler<Integer> sampler = new ReservoirSampler<Integer>(3, random);
-    List<Integer> stream = ImmutableList.of(1, 2, 3, 4, 5, 6, 7, 8);
-    for (int i : stream) {
-      sampler.sample(i);
-    }
-    List<Integer> expectedSamples = ImmutableList.of(1, 2, 3);
-    assertEquals("The samples should be 1, 2, 3", expectedSamples,
-        ImmutableList.copyOf(sampler.getSamples()));
-  }
-
-  @Test
-  public void testNoSampling() throws Exception {
-    // no calls to random.nextInt should happen in this test
-    control.replay();
-    List<Integer> stream = ImmutableList.of(1, 2, 3);
-    // reservoir is larger than the stream. No sampling should happen here.
-    ReservoirSampler<Integer> sampler = new ReservoirSampler<Integer>(20);
-    for (int i : stream) {
-      sampler.sample(i);
-    }
-    assertEquals("The samples should be same as the stream", stream,
-        ImmutableList.copyOf(sampler.getSamples()));
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/356eeac9/commons/src/test/java/org/apache/aurora/common/stats/StatisticsTest.java
----------------------------------------------------------------------
diff --git a/commons/src/test/java/org/apache/aurora/common/stats/StatisticsTest.java b/commons/src/test/java/org/apache/aurora/common/stats/StatisticsTest.java
deleted file mode 100644
index 35c076b..0000000
--- a/commons/src/test/java/org/apache/aurora/common/stats/StatisticsTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
- * 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 org.apache.aurora.common.stats;
-
-import java.util.Arrays;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import com.google.common.collect.ImmutableList;
-
-/**
- * Tests the functionality of the Statistics class.
- *
- * @author William Farner
- */
-public class StatisticsTest extends TestCase {
-  private static final double ERROR_THRESHOLD = 1e-10;
-
-  private static final List<Integer> EMPTY_SET = ImmutableList.of();
-
-  private static final List<Integer> TEST_SET_A = Arrays.asList(76117373, 76167137, 75870125, 75880508, 78099974,
-                                       77810738, 75763975, 78042301, 76109165, 77816921,
-                                       76115544, 76075750, 75391297, 75597249, 77793835,
-                                       76001118, 77752542, 78413670, 60351776, 75607235,
-                                       76057629, 80011920, 24067379, 75767484, 80052983,
-                                       79278613, 75600277);
-
-  private Statistics createAndLoad(List<Integer> values) {
-    Statistics stats = new Statistics();
-    for (long value : values) {
-      stats.accumulate(value);
-    }
-
-    return stats;
-  }
-
-  private void checkWithinThreshold(double expected, double actual) {
-    assertTrue(Math.abs(expected - actual) < ERROR_THRESHOLD);
-  }
-
-  public void testMin() {
-    // min is undefined for an empty set, but it should not fail.
-    Statistics stats = createAndLoad(EMPTY_SET);
-    stats.min();
-
-    stats = createAndLoad(TEST_SET_A);
-    assertEquals(24067379, stats.min());
-  }
-
-  public void testMax() {
-    // max is undefined for an empty set, but it should not fail.
-    Statistics stats = createAndLoad(EMPTY_SET);
-    stats.max();
-
-    stats = createAndLoad(TEST_SET_A);
-    assertEquals(80052983, stats.max());
-  }
-
-  public void testMean() {
-    // mean is undefined for an empty set, but it should not fail.
-    Statistics stats = createAndLoad(EMPTY_SET);
-    stats.mean();
-
-    stats = createAndLoad(TEST_SET_A);
-    checkWithinThreshold(7.435609325925925E7, stats.mean());
-  }
-
-  public void testVariance() {
-    Statistics stats = createAndLoad(EMPTY_SET);
-    assertEquals(Double.NaN, stats.variance());
-
-    stats = createAndLoad(TEST_SET_A);
-    checkWithinThreshold(1.089077613763465E14, stats.variance());
-  }
-
-  public void testStandardDeviation() {
-    Statistics stats = createAndLoad(EMPTY_SET);
-    assertEquals(Double.NaN, stats.standardDeviation());
-
-    stats = createAndLoad(TEST_SET_A);
-    checkWithinThreshold(1.0435888145066835E7, stats.standardDeviation());
-  }
-
-  public void testPopulationSize() {
-    Statistics stats = createAndLoad(EMPTY_SET);
-    assertEquals(0L, stats.populationSize());
-
-    stats = createAndLoad(TEST_SET_A);
-    assertEquals(TEST_SET_A.size(), stats.populationSize());
-  }
-
-  public void testSum() {
-    Statistics stats = createAndLoad(EMPTY_SET);
-    assertEquals(0L, stats.sum());
-
-    stats = createAndLoad(TEST_SET_A);
-    long expectedSum = 0;
-    for (long x: TEST_SET_A) {
-      expectedSum += x;
-    }
-    assertEquals(expectedSum, stats.sum());
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/356eeac9/commons/src/test/java/org/apache/aurora/common/stats/WindowedHistogramTest.java
----------------------------------------------------------------------
diff --git a/commons/src/test/java/org/apache/aurora/common/stats/WindowedHistogramTest.java b/commons/src/test/java/org/apache/aurora/common/stats/WindowedHistogramTest.java
deleted file mode 100644
index c93801a..0000000
--- a/commons/src/test/java/org/apache/aurora/common/stats/WindowedHistogramTest.java
+++ /dev/null
@@ -1,234 +0,0 @@
-/**
- * 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 org.apache.aurora.common.stats;
-
-import java.util.List;
-
-import com.google.common.collect.ImmutableList;
-
-import org.junit.Test;
-
-import org.apache.aurora.common.objectsize.ObjectSizeCalculator;
-import org.apache.aurora.common.quantity.Amount;
-import org.apache.aurora.common.quantity.Data;
-import org.apache.aurora.common.quantity.Time;
-import org.apache.aurora.common.stats.testing.RealHistogram;
-import org.apache.aurora.common.util.testing.FakeClock;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import static org.apache.aurora.common.stats.WindowedApproxHistogram.DEFAULT_MAX_MEMORY;
-
-/**
- * Tests WindowedHistogram.
- */
-public class WindowedHistogramTest {
-
-  @Test
-  public void testEmptyWinHistogram() {
-    WindowedApproxHistogram wh = new WindowedApproxHistogram();
-    assertEquals(0L, wh.getQuantile(0.0));
-  }
-
-  @Test
-  public void testWinHistogramWithEdgeCases() {
-    FakeClock clock = new FakeClock();
-    Amount<Long, Time> window = Amount.of(100L, Time.MILLISECONDS);
-    int slices = 10;
-    long sliceDuration = window.as(Time.NANOSECONDS) / slices;
-    WindowedApproxHistogram h =
-        new WindowedApproxHistogram(window, slices, DEFAULT_MAX_MEMORY, clock);
-
-    h.add(Long.MIN_VALUE);
-    clock.advance(Amount.of(2 * sliceDuration, Time.NANOSECONDS));
-    assertEquals(Long.MIN_VALUE, h.getQuantile(0.0));
-    assertEquals(Long.MIN_VALUE, h.getQuantile(0.5));
-    assertEquals(Long.MIN_VALUE, h.getQuantile(1.0));
-
-    h.add(Long.MAX_VALUE);
-    clock.advance(Amount.of(2 * sliceDuration, Time.NANOSECONDS));
-    assertEquals(Long.MIN_VALUE, h.getQuantile(0.0));
-    assertEquals(Long.MIN_VALUE, h.getQuantile(0.25));
-    assertEquals(Long.MAX_VALUE, h.getQuantile(0.75));
-    assertEquals(Long.MAX_VALUE, h.getQuantile(1.0));
-  }
-
-  @Test
-  public void testClearedWinHistogram() {
-    FakeClock clock = new FakeClock();
-    Amount<Long, Time> window = Amount.of(100L, Time.MILLISECONDS);
-    int slices = 10;
-    Amount<Long, Time> sliceDuration = Amount.of(
-        window.as(Time.NANOSECONDS) / slices, Time.NANOSECONDS);
-    WindowedHistogram<?> h = createFullHistogram(window, slices, clock);
-    long p0 = h.getQuantile(0.1);
-    long p50 = h.getQuantile(0.5);
-    long p90 = h.getQuantile(0.9);
-    assertFalse(0 == p0);
-    assertFalse(0 == p50);
-    assertFalse(0 == p90);
-
-    h.clear();
-
-    assertEquals(0, h.getQuantile(0.1));
-    assertEquals(0, h.getQuantile(0.5));
-    assertEquals(0, h.getQuantile(0.9));
-
-    // reload the histogram with the exact same values than before
-    fillHistogram(h, sliceDuration, slices, clock);
-
-    assertEquals(p0, h.getQuantile(0.1));
-    assertEquals(p50, h.getQuantile(0.5));
-    assertEquals(p90, h.getQuantile(0.9));
-  }
-
-  @Test
-  public void testSimpleWinHistogram() {
-    FakeClock clock = new FakeClock();
-    Amount<Long, Time> window = Amount.of(100L, Time.MILLISECONDS);
-    int slices = 10;
-    WindowedHistogram<?> wh = createFullHistogram(window, slices, clock);
-
-    // check that the global distribution is the aggregation of all underlying histograms
-    for (int i = 1; i <= slices; i++) {
-      double q = (double) i / slices;
-      assertEquals(i, wh.getQuantile(q), 1.0);
-    }
-
-    // advance in time an forget about old values
-    long sliceDuration = window.as(Time.NANOSECONDS) / slices;
-    clock.advance(Amount.of(sliceDuration, Time.NANOSECONDS));
-    for (int j = 0; j < 1000; j++) {
-      wh.add(11);
-    }
-    assertEquals(2, wh.getQuantile(0.05), 1.0);
-    assertEquals(11, wh.getQuantile(0.99), 1.0);
-  }
-
-  @Test
-  public void testWinHistogramWithGap() {
-    FakeClock clock = new FakeClock();
-    Amount<Long, Time> window = Amount.of(100L, Time.MILLISECONDS);
-    int slices = 10;
-    WindowedHistogram<?> wh = createFullHistogram(window, slices, clock);
-    // wh is a WindowedHistogram of 10 slices + the empty current with values from 1 to 10
-    // [1][2][3][4][5][6][7][8][9][10][.]
-    //                                 ^
-
-    for (int j = 0; j < 1000; j++) {
-      wh.add(100);
-    }
-    // [1][2][3][4][5][6][7][8][9][10][100]
-    //                                  ^
-    // quantiles are computed based on [1] -> [10]
-
-    clock.advance(Amount.of((slices - 1) * 100L / slices, Time.MILLISECONDS));
-    for (int j = 0; j < 1000; j++) {
-      wh.add(200);
-    }
-    // [1][2][3][4][5][6][7][8][200][10][100]
-    //                           ^
-    // quantiles are computed based on [10][100][1][2][3][4][5][6][7][8]
-    // and removing old ones           [10][100][.][.][.][.][.][.][.][.]
-    // all the histograms between 100 and 200 are old and shouldn't matter in the computation of
-    // quantiles.
-    assertEquals(10L, wh.getQuantile(0.25), 1.0);
-    assertEquals(100L, wh.getQuantile(0.75), 1.0);
-
-    clock.advance(Amount.of(100L / slices, Time.MILLISECONDS));
-    // [1][2][3][4][5][6][7][8][200][10][100]
-    //                               ^
-    // quantiles are computed based on [100][1][2][3][4][5][6][7][8][200]
-    // and removing old ones           [100][.][.][.][.][.][.][.][.][200]
-
-    assertEquals(100L, wh.getQuantile(0.25), 1.0);
-    assertEquals(200L, wh.getQuantile(0.75), 1.0);
-
-    // advance a lot in time, everything should be "forgotten"
-    clock.advance(Amount.of(500L, Time.MILLISECONDS));
-    assertEquals(0L, wh.getQuantile(0.5), 1.0);
-  }
-
-  @Test
-  public void testWinHistogramMemory() {
-    ImmutableList.Builder<Amount<Long, Data>> builder = ImmutableList.builder();
-    builder.add(Amount.of(8L, Data.KB));
-    builder.add(Amount.of(12L, Data.KB));
-    builder.add(Amount.of(16L, Data.KB));
-    builder.add(Amount.of(20L, Data.KB));
-    builder.add(Amount.of(24L, Data.KB));
-    builder.add(Amount.of(32L, Data.KB));
-    builder.add(Amount.of(64L, Data.KB));
-    builder.add(Amount.of(256L, Data.KB));
-    builder.add(Amount.of(1L, Data.MB));
-    builder.add(Amount.of(16L, Data.MB));
-    builder.add(Amount.of(32L, Data.MB));
-    List<Amount<Long, Data>> sizes = builder.build();
-
-    // large estimation of the memory used outside of buffers
-    long fixSize = Amount.of(4, Data.KB).as(Data.BYTES);
-
-    for (Amount<Long, Data> maxSize: sizes) {
-      WindowedApproxHistogram hist = new WindowedApproxHistogram(
-          Amount.of(60L, Time.SECONDS), 6, maxSize);
-      hist.add(1L);
-      hist.getQuantile(0.5);
-      long size = ObjectSizeCalculator.getObjectSize(hist);
-      // reverting CI JVM seems to have different memory consumption than mine
-      //assertTrue(size < fixSize + maxSize.as(Data.BYTES));
-    }
-  }
-
-  @Test
-  public void testWinHistogramAccuracy() {
-    FakeClock ticker = new FakeClock();
-    Amount<Long, Time> window = Amount.of(100L, Time.MILLISECONDS);
-    int slices = 10;
-    Amount<Long, Time> sliceDuration = Amount.of(
-        window.as(Time.NANOSECONDS) / slices, Time.NANOSECONDS);
-    WindowedHistogram<?> wh = createFullHistogram(window, slices, ticker);
-    RealHistogram rh = fillHistogram(new RealHistogram(), sliceDuration, slices, new FakeClock());
-
-    assertEquals(wh.getQuantile(0.5), rh.getQuantile(0.5));
-    assertEquals(wh.getQuantile(0.75), rh.getQuantile(0.75));
-    assertEquals(wh.getQuantile(0.9), rh.getQuantile(0.9));
-    assertEquals(wh.getQuantile(0.99), rh.getQuantile(0.99));
-  }
-
-  /**
-   * @return a WindowedHistogram with different value in each underlying Histogram
-   */
-  private WindowedHistogram<?> createFullHistogram(
-      Amount<Long, Time> duration, int slices, FakeClock clock) {
-    long sliceDuration = duration.as(Time.NANOSECONDS) / slices;
-    WindowedApproxHistogram wh = new WindowedApproxHistogram(duration, slices,
-        DEFAULT_MAX_MEMORY, clock);
-    clock.advance(Amount.of(1L, Time.NANOSECONDS));
-
-    return fillHistogram(wh, Amount.of(sliceDuration, Time.NANOSECONDS), slices, clock);
-  }
-
-  private <H extends Histogram> H fillHistogram(H h,
-      Amount<Long, Time> sliceDuration, int slices, FakeClock clock) {
-    for (int i = 1; i <= slices; i++) {
-      for (int j = 0; j < 1000; j++) {
-        h.add(i);
-      }
-      clock.advance(sliceDuration);
-    }
-    return h;
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/356eeac9/commons/src/test/java/org/apache/aurora/common/stats/WindowedStatsTest.java
----------------------------------------------------------------------
diff --git a/commons/src/test/java/org/apache/aurora/common/stats/WindowedStatsTest.java b/commons/src/test/java/org/apache/aurora/common/stats/WindowedStatsTest.java
deleted file mode 100644
index c143174..0000000
--- a/commons/src/test/java/org/apache/aurora/common/stats/WindowedStatsTest.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/**
- * 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 org.apache.aurora.common.stats;
-
-import org.junit.Test;
-
-import org.apache.aurora.common.quantity.Amount;
-import org.apache.aurora.common.quantity.Time;
-
-import org.apache.aurora.common.util.testing.FakeClock;
-
-import static org.junit.Assert.assertEquals;
-
-public class WindowedStatsTest {
-  private Amount<Long, Time> window = Amount.of(1L, Time.MINUTES);
-  private int slices = 3;
-  private long sliceDuration = window.as(Time.NANOSECONDS) / slices;
-
-  @Test
-  public void testEmptyStats() {
-    FakeClock clock = new FakeClock();
-    WindowedStatistics ws = new WindowedStatistics(window, slices, clock);
-
-    assertEmpty(ws);
-  }
-
-  @Test
-  public void testStatsCorrectness() {
-    FakeClock clock = new FakeClock();
-    Statistics reference = new Statistics();
-    WindowedStatistics ws = new WindowedStatistics(window, slices, clock);
-
-    for (int i=0; i<1000; i++) {
-      reference.accumulate(i);
-      ws.accumulate(i);
-    }
-    clock.advance(Amount.of(1 + sliceDuration, Time.NANOSECONDS));
-    ws.refresh();
-
-    assertEquals(reference.max(), ws.max());
-    assertEquals(reference.min(), ws.min());
-    assertEquals(reference.populationSize(), ws.populationSize());
-    assertEquals(reference.sum(), ws.sum());
-    assertEquals(reference.range(), ws.range());
-    assertEquals(reference.mean(), ws.mean(), 0.01);
-    assertEquals(reference.variance(), ws.variance(), 0.01);
-    assertEquals(reference.standardDeviation(), ws.standardDeviation(), 0.01);
-
-    for (int i=0; i<1000; i++) {
-      long x = i + 500;
-      reference.accumulate(x);
-      ws.accumulate(x);
-    }
-    clock.advance(Amount.of(sliceDuration, Time.NANOSECONDS));
-    ws.refresh();
-
-    assertEquals(reference.max(), ws.max());
-    assertEquals(reference.min(), ws.min());
-    assertEquals(reference.populationSize(), ws.populationSize());
-    assertEquals(reference.sum(), ws.sum());
-    assertEquals(reference.range(), ws.range());
-    assertEquals(reference.mean(), ws.mean(), 0.01);
-    assertEquals(reference.variance(), ws.variance(), 0.01);
-    assertEquals(reference.standardDeviation(), ws.standardDeviation(), 0.01);
-
-    for (int i=0; i<1000; i++) {
-      long x = i * i;
-      reference.accumulate(x);
-      ws.accumulate(x);
-    }
-    clock.advance(Amount.of(sliceDuration, Time.NANOSECONDS));
-    ws.refresh();
-
-    assertEquals(reference.max(), ws.max());
-    assertEquals(reference.min(), ws.min());
-    assertEquals(reference.populationSize(), ws.populationSize());
-    assertEquals(reference.sum(), ws.sum());
-    assertEquals(reference.range(), ws.range());
-    assertEquals(reference.mean(), ws.mean(), 0.01);
-    assertEquals(reference.variance(), ws.variance(), 0.01);
-    assertEquals(reference.standardDeviation(), ws.standardDeviation(), 0.01);
-  }
-
-  @Test
-  public void testWindowStats() {
-    FakeClock clock = new FakeClock();
-    WindowedStatistics ws = new WindowedStatistics(window, slices, clock);
-    ws.accumulate(1L);
-    assertEmpty(ws);
-
-    clock.advance(Amount.of(1 + sliceDuration, Time.NANOSECONDS));
-    ws.refresh();
-
-    assertEquals(1L, ws.max());
-    assertEquals(1L, ws.min());
-    assertEquals(1L, ws.populationSize());
-    assertEquals(1L, ws.sum());
-    assertEquals(1.0, ws.mean(), 0.01);
-    assertEquals(0.0, ws.standardDeviation(), 0.01);
-
-    clock.advance(Amount.of(slices * sliceDuration, Time.NANOSECONDS));
-    ws.refresh();
-    assertEmpty(ws);
-  }
-
-  @Test
-  public void testCleaningOfExpiredWindows() {
-    FakeClock clock = new FakeClock();
-    WindowedStatistics ws = new WindowedStatistics(window, slices, clock);
-
-    long n = 1000L;
-    for (int i=0; i<n; i++) {
-      ws.accumulate(i);
-    }
-    assertEmpty(ws);
-
-    clock.advance(Amount.of(1 + sliceDuration, Time.NANOSECONDS));
-    ws.refresh();
-    assertEquals(n, ws.populationSize()); // this window is not empty
-
-    clock.advance(Amount.of(100 * sliceDuration, Time.NANOSECONDS));
-    ws.refresh();
-    assertEmpty(ws); // this window has been cleaned
-  }
-
-  @Test
-  public void testAddNewValueToFullWS() {
-    FakeClock clock = new FakeClock();
-    WindowedStatistics ws = new WindowedStatistics(window, slices, clock);
-
-    // AAAAA
-    //      BBBBB
-    //           CCCCC
-    //                DDDDD
-    //                |    |    |    |
-    //---------------------------------> t
-    //                t=0  t=1  t=2  t=3
-
-    // t=0 fill {D}
-    long n = 1000L;
-    for (int i=0; i<n; i++) {
-      ws.accumulate(i);
-    }
-    // read {A,B,C}, which should be empty
-    assertEmpty(ws);
-
-    clock.advance(Amount.of(1 + sliceDuration, Time.NANOSECONDS));
-    ws.refresh();
-    // t=1, read {B,C,D} which shouldn't be empty
-
-    assertEquals(n - 1L, ws.max());
-    assertEquals(0L, ws.min());
-    assertEquals(n, ws.populationSize());
-    assertEquals(n * (n - 1) / 2, ws.sum());
-    assertEquals((n - 1) / 2.0, ws.mean(), 0.01);
-
-    clock.advance(Amount.of(1 + sliceDuration, Time.NANOSECONDS));
-    ws.refresh();
-    // t=2, read {C,D,A} which shouldn't be empty as well
-
-    assertEquals(n - 1L, ws.max());
-    assertEquals(0L, ws.min());
-    assertEquals(n, ws.populationSize());
-    assertEquals(n * (n - 1) / 2, ws.sum());
-    assertEquals((n - 1) / 2.0, ws.mean(), 0.01);
-
-    clock.advance(Amount.of(1 + sliceDuration, Time.NANOSECONDS));
-    ws.refresh();
-    // t=3, read {D,A,B} which shouldn't be empty as well
-
-    assertEquals(n - 1L, ws.max());
-    assertEquals(0L, ws.min());
-    assertEquals(n, ws.populationSize());
-    assertEquals(n * (n - 1) / 2, ws.sum());
-    assertEquals((n - 1) / 2.0, ws.mean(), 0.01);
-
-    clock.advance(Amount.of(1 + sliceDuration, Time.NANOSECONDS));
-    ws.refresh();
-    // t=4, read {A,B,C} which must be empty (cleaned by the Windowed class)
-    assertEmpty(ws);
-  }
-
-  private void assertEmpty(WindowedStatistics ws) {
-    assertEquals(Long.MIN_VALUE, ws.max());
-    assertEquals(Long.MAX_VALUE, ws.min());
-    assertEquals(0L, ws.populationSize());
-    assertEquals(0L, ws.sum());
-    assertEquals(0.0, ws.mean(), 0.01);
-    assertEquals(0.0, ws.standardDeviation(), 0.01);
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/356eeac9/commons/src/test/java/org/apache/aurora/common/stats/WindowedTest.java
----------------------------------------------------------------------
diff --git a/commons/src/test/java/org/apache/aurora/common/stats/WindowedTest.java b/commons/src/test/java/org/apache/aurora/common/stats/WindowedTest.java
deleted file mode 100644
index d0f46dd..0000000
--- a/commons/src/test/java/org/apache/aurora/common/stats/WindowedTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/**
- * 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 org.apache.aurora.common.stats;
-
-import com.google.common.base.Function;
-import com.google.common.base.Supplier;
-
-import org.junit.Test;
-
-import org.apache.aurora.common.quantity.Amount;
-import org.apache.aurora.common.quantity.Time;
-import org.apache.aurora.common.util.Clock;
-import org.apache.aurora.common.util.testing.FakeClock;
-
-import junit.framework.Assert;
-
-/**
- * Test the Windowed abstract class by making a very simple implementation.
- */
-public class WindowedTest {
-
-  private class WindowedBox extends Windowed<Integer[]> {
-    WindowedBox(Amount<Long, Time > window, int slices, Clock clock) {
-      super(Integer[].class, window, slices,
-          new Supplier<Integer[]>() {
-            @Override public Integer[] get() {
-              Integer[] box = new Integer[1];
-              box[0] = 0;
-              return box;
-            }
-          },
-          new Function<Integer[], Integer[]>() {
-            @Override public Integer[] apply(Integer[] xs) {
-              xs[0] = 0;
-              return xs;
-            }
-          }, clock);
-    }
-
-    void increment() {
-      getCurrent()[0] += 1;
-    }
-
-    int sum() {
-      int s = 0;
-      for (Integer[] box : getTenured()) {
-        s += box[0];
-      }
-      return s;
-    }
-  }
-
-  @Test
-  public void testWindowed() {
-    Amount<Long, Time > window = Amount.of(1L, Time.MINUTES);
-    int slices = 3;
-    Amount<Long, Time > delta = Amount.of(
-        Amount.of(1L, Time.MINUTES).as(Time.NANOSECONDS) / 3, Time.NANOSECONDS);
-    FakeClock clock = new FakeClock();
-    WindowedBox win = new WindowedBox(window, slices, clock);
-    // [0][0][0][0]
-    clock.advance(Amount.of(1L, Time.NANOSECONDS));
-
-    win.increment();
-    // [0][0][0][1]
-    Assert.assertEquals(0, win.sum());
-
-    clock.advance(delta);
-    win.increment();
-    win.increment();
-    Assert.assertEquals(1, win.sum());
-    // [0][0][1][2]
-
-    clock.advance(delta);
-    win.increment();
-    win.increment();
-    win.increment();
-    Assert.assertEquals(3, win.sum());
-    // [0][1][2][3]
-
-    clock.advance(delta);
-    win.increment();
-    win.increment();
-    win.increment();
-    win.increment();
-    Assert.assertEquals(6, win.sum());
-    // [1][2][3][4]
-
-    clock.advance(delta);
-    win.increment();
-    win.increment();
-    win.increment();
-    win.increment();
-    win.increment();
-    Assert.assertEquals(9, win.sum());
-    // [2][3][4][5]
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/356eeac9/commons/src/test/java/org/apache/aurora/common/testing/TearDownRegistryTest.java
----------------------------------------------------------------------
diff --git a/commons/src/test/java/org/apache/aurora/common/testing/TearDownRegistryTest.java b/commons/src/test/java/org/apache/aurora/common/testing/TearDownRegistryTest.java
deleted file mode 100644
index a9157ec..0000000
--- a/commons/src/test/java/org/apache/aurora/common/testing/TearDownRegistryTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * 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 org.apache.aurora.common.testing;
-
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import com.google.common.testing.junit4.TearDownTestCase;
-
-import org.junit.Test;
-
-import org.apache.aurora.common.base.Command;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-/**
- * @author John Sirois
- */
-public class TearDownRegistryTest extends TearDownTestCase {
-
-  @Test
-  public void testTearDown() {
-    TearDownRegistry tearDownRegistry = new TearDownRegistry(this);
-    final AtomicBoolean actionExecuted = new AtomicBoolean(false);
-    tearDownRegistry.addAction(new Command() {
-      @Override public void execute() {
-        actionExecuted.set(true);
-      }
-    });
-
-    assertFalse(actionExecuted.get());
-    tearDown();
-    assertTrue(actionExecuted.get());
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/356eeac9/commons/src/test/java/org/apache/aurora/common/thrift/ThriftConnectionFactoryTest.java
----------------------------------------------------------------------
diff --git a/commons/src/test/java/org/apache/aurora/common/thrift/ThriftConnectionFactoryTest.java b/commons/src/test/java/org/apache/aurora/common/thrift/ThriftConnectionFactoryTest.java
deleted file mode 100644
index 7876264..0000000
--- a/commons/src/test/java/org/apache/aurora/common/thrift/ThriftConnectionFactoryTest.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- * 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 org.apache.aurora.common.thrift;
-
-import static org.hamcrest.CoreMatchers.allOf;
-import static org.hamcrest.CoreMatchers.not;
-import static org.hamcrest.CoreMatchers.sameInstance;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-
-import org.apache.thrift.transport.TTransport;
-import org.apache.thrift.transport.TTransportException;
-import org.hamcrest.Matcher;
-import org.junit.Test;
-
-import org.apache.aurora.common.net.pool.Connection;
-import org.apache.aurora.common.net.pool.ObjectPool;
-import org.apache.aurora.common.thrift.testing.MockTSocket;
-
-/**
- * @author John Sirois
- */
-public class ThriftConnectionFactoryTest {
-
-  @Test
-  public void testPreconditions() {
-    try {
-      new ThriftConnectionFactory(null, 1, 1);
-      fail("a non-null host should be required");
-    } catch (NullPointerException e) {
-      // expected
-    }
-
-    try {
-      new ThriftConnectionFactory(" ", 1, 1);
-      fail("a non-blank host should be required");
-    } catch (IllegalArgumentException e) {
-      // expected
-    }
-
-    try {
-      new ThriftConnectionFactory("localhost", 0, 1);
-      fail("a valid concrete remote port should be required");
-    } catch (IllegalArgumentException e) {
-      // expected
-    }
-
-    try {
-      new ThriftConnectionFactory("localhost", 65536, 1);
-      fail("a valid port should be required");
-    } catch (IllegalArgumentException e) {
-      // expected
-    }
-
-    try {
-      new ThriftConnectionFactory("localhost", 65535, 0);
-      fail("a non-zero value for maxConnections should be required");
-    } catch (IllegalArgumentException e) {
-      // expected
-    }
-  }
-
-  @Test
-  public void testMaxConnections() throws TTransportException, IOException {
-    ThriftConnectionFactory thriftConnectionFactory = createConnectionFactory(2);
-
-    Connection<TTransport, InetSocketAddress> connection1 =
-        thriftConnectionFactory.create(ObjectPool.NO_TIMEOUT);
-    assertOpenConnection(connection1);
-
-    Connection<TTransport, InetSocketAddress> connection2 =
-        thriftConnectionFactory.create(ObjectPool.NO_TIMEOUT);
-    assertOpenConnection(connection2);
-    assertThat(connection1, not(sameInstance(connection2)));
-
-    assertNull("Should've reached maximum connections",
-        thriftConnectionFactory.create(ObjectPool.NO_TIMEOUT));
-
-    thriftConnectionFactory.destroy(connection1);
-    assertClosedConnection(connection1);
-
-    Connection<TTransport, InetSocketAddress> connection3 =
-        thriftConnectionFactory.create(ObjectPool.NO_TIMEOUT);
-    assertOpenConnection(connection3);
-    @SuppressWarnings("unchecked") // Needed because type information lost in vargs.
-    Matcher<Connection<TTransport, InetSocketAddress>> matcher =
-      allOf(not(sameInstance(connection1)), not(sameInstance(connection2)));
-    assertThat(connection3, matcher);
-  }
-
-  @Test(expected = IllegalArgumentException.class)
-  public void testInactiveConnectionReturn() {
-    createConnectionFactory(1).destroy(new TTransportConnection(new MockTSocket(),
-        InetSocketAddress.createUnresolved(MockTSocket.HOST, MockTSocket.PORT)));
-  }
-
-  @Test(expected = IllegalArgumentException.class)
-  public void testNullConnectionReturn() {
-    createConnectionFactory(1).destroy(null);
-  }
-
-  private void assertOpenConnection(Connection<TTransport, InetSocketAddress> connection) {
-    assertNotNull(connection);
-    assertTrue(connection.isValid());
-    assertTrue(connection.get().isOpen());
-  }
-
-  private void assertClosedConnection(Connection<TTransport, InetSocketAddress> connection) {
-    assertFalse(connection.isValid());
-    assertFalse(connection.get().isOpen());
-  }
-
-  private ThriftConnectionFactory createConnectionFactory(int maxConnections) {
-    return new ThriftConnectionFactory("foo", 1234, maxConnections) {
-      @Override TTransport createTransport(int timeoutMillis) throws TTransportException {
-        TTransport transport = new MockTSocket();
-        transport.open();
-        return transport;
-      }
-    };
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/356eeac9/commons/src/test/java/org/apache/aurora/common/thrift/ThriftFactoryTest.java
----------------------------------------------------------------------
diff --git a/commons/src/test/java/org/apache/aurora/common/thrift/ThriftFactoryTest.java b/commons/src/test/java/org/apache/aurora/common/thrift/ThriftFactoryTest.java
deleted file mode 100644
index 802caa2..0000000
--- a/commons/src/test/java/org/apache/aurora/common/thrift/ThriftFactoryTest.java
+++ /dev/null
@@ -1,242 +0,0 @@
-/**
- * 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 org.apache.aurora.common.thrift;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.net.ServerSocket;
-import java.net.Socket;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicReference;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import com.google.common.collect.ImmutableSet;
-import com.google.common.testing.TearDown;
-import com.google.common.testing.junit4.TearDownTestCase;
-
-import org.apache.thrift.async.AsyncMethodCallback;
-import org.apache.thrift.async.TAsyncClient;
-import org.apache.thrift.async.TAsyncClientManager;
-import org.apache.thrift.protocol.TProtocol;
-import org.apache.thrift.protocol.TProtocolFactory;
-import org.apache.thrift.transport.TNonblockingTransport;
-import org.easymock.EasyMock;
-import org.easymock.IMocksControl;
-import org.junit.Before;
-import org.junit.Test;
-
-import org.apache.aurora.common.net.pool.DynamicHostSet;
-import org.apache.aurora.common.thrift.ThriftFactoryTest.GoodService.AsyncIface;
-import org.apache.aurora.common.thrift.ServiceInstance;
-
-/**
- * @author John Sirois
- */
-public class ThriftFactoryTest extends TearDownTestCase {
-
-  private static final Logger LOG = Logger.getLogger(ThriftFactoryTest.class.getName());
-  private IMocksControl control;
-
-  static class GoodService {
-    public interface Iface {
-      String doWork() throws TResourceExhaustedException;
-    }
-
-    public interface AsyncIface {
-      void doWork(AsyncMethodCallback<String> callback);
-    }
-
-    public static final String DONE = "done";
-
-    public static class Client implements Iface {
-      public Client(TProtocol protocol) {
-        assertNotNull(protocol);
-      }
-
-      @Override public String doWork() throws TResourceExhaustedException {
-        return DONE;
-      }
-    }
-
-    public static class AsyncClient extends TAsyncClient implements AsyncIface {
-      public AsyncClient(TProtocolFactory factory, TAsyncClientManager manager,
-          TNonblockingTransport transport) {
-        super(factory, manager, transport);
-        assertNotNull(factory);
-        assertNotNull(manager);
-        assertNotNull(transport);
-      }
-
-      @Override public void doWork(AsyncMethodCallback<String> callback) {
-        callback.onComplete(DONE);
-      }
-    }
-  }
-
-  static class BadService {
-    public interface Iface {
-      void doWork();
-    }
-    public interface AsyncIface {
-      void doWork(AsyncMethodCallback<Void> callback);
-    }
-
-    public static class Client implements Iface {
-      @Override public void doWork() {
-        throw new UnsupportedOperationException();
-      }
-    }
-  }
-
-  private ImmutableSet<InetSocketAddress> endpoints;
-
-  @Before
-  public void setUp() throws Exception {
-    control = EasyMock.createControl();
-    endpoints = ImmutableSet.of(new InetSocketAddress(5555));
-  }
-
-  @Test(expected = NullPointerException.class)
-  public void testNullServiceInterface() {
-    ThriftFactory.create(null);
-  }
-
-  @Test(expected = IllegalArgumentException.class)
-  public void testBadServiceInterface() {
-    ThriftFactory.create(GoodService.class);
-  }
-
-  @Test(expected = IllegalArgumentException.class)
-  public void testBadServiceImpl() throws ThriftFactory.ThriftFactoryException {
-    ThriftFactory.<BadService.Iface>create(BadService.Iface.class)
-        .build(endpoints);
-  }
-
-  @Test(expected = IllegalArgumentException.class)
-  public void testBadAsyncServiceImpl() throws ThriftFactory.ThriftFactoryException {
-    ThriftFactory.<BadService.AsyncIface>create(BadService.AsyncIface.class)
-        .useFramedTransport(true)
-        .buildAsync(endpoints);
-  }
-
-  @Test(expected = IllegalArgumentException.class)
-  public void testNoBackends() {
-    ThriftFactory.create(GoodService.Iface.class)
-        .build(ImmutableSet.<InetSocketAddress>of());
-  }
-
-  @Test
-  public void testCreate() throws Exception {
-    final AtomicReference<Socket> clientConnection = new AtomicReference<Socket>();
-    final CountDownLatch connected = new CountDownLatch(1);
-    final ServerSocket server = new ServerSocket(0);
-    Thread service = new Thread(new Runnable() {
-      @Override public void run() {
-        try {
-          clientConnection.set(server.accept());
-        } catch (IOException e) {
-          LOG.log(Level.WARNING, "Problem accepting a connection to thrift server", e);
-        } finally {
-          connected.countDown();
-        }
-      }
-    });
-    service.setDaemon(true);
-    service.start();
-
-    try {
-      final Thrift<GoodService.Iface> thrift = ThriftFactory.create(GoodService.Iface.class)
-          .withMaxConnectionsPerEndpoint(1)
-          .build(ImmutableSet.of(new InetSocketAddress(server.getLocalPort())));
-      addTearDown(new TearDown() {
-        @Override public void tearDown() {
-          thrift.close();
-        }
-      });
-
-      GoodService.Iface client = thrift.create();
-
-      assertEquals(GoodService.DONE, client.doWork());
-    } finally {
-      connected.await();
-      server.close();
-    }
-
-    Socket socket = clientConnection.get();
-    assertNotNull(socket);
-    socket.close();
-  }
-
-  @Test(expected = TResourceExhaustedException.class)
-  public void testCreateEmpty() throws Exception {
-    @SuppressWarnings("unchecked")
-    DynamicHostSet<ServiceInstance> emptyHostSet = control.createMock(DynamicHostSet.class);
-    final Thrift<GoodService.Iface> thrift = ThriftFactory.create(GoodService.Iface.class)
-        .withMaxConnectionsPerEndpoint(1)
-        .build(emptyHostSet);
-    addTearDown(new TearDown() {
-      @Override public void tearDown() {
-        thrift.close();
-      }
-    });
-    GoodService.Iface client = thrift.create();
-
-    // This should throw a TResourceExhaustedException
-    client.doWork();
-  }
-
-  @Test
-  public void testCreateAsync()
-      throws IOException, InterruptedException, ThriftFactory.ThriftFactoryException {
-    final String responseHolder[] = new String[] {null};
-    final CountDownLatch done = new CountDownLatch(1);
-    AsyncMethodCallback<String> callback = new AsyncMethodCallback<String>() {
-      @Override
-      public void onComplete(String response) {
-        responseHolder[0] = response;
-        done.countDown();
-      }
-
-      @Override
-      public void onError(Exception throwable) {
-        responseHolder[0] = throwable.toString();
-        done.countDown();
-      }
-    };
-
-    final Thrift<AsyncIface> thrift = ThriftFactory.create(GoodService.AsyncIface.class)
-        .withMaxConnectionsPerEndpoint(1)
-        .useFramedTransport(true)
-        .buildAsync(ImmutableSet.of(new InetSocketAddress(1234)));
-    addTearDown(new TearDown() {
-      @Override public void tearDown() {
-        thrift.close();
-      }
-    });
-    GoodService.AsyncIface client = thrift.builder()
-        .blocking()
-        .create();
-
-    client.doWork(callback);
-    assertTrue("wasn't called back in time, callback got " + responseHolder[0],
-        done.await(5000, TimeUnit.MILLISECONDS));
-    assertEquals(GoodService.DONE, responseHolder[0]);
-  }
-}