@Test
 public void testWindowSize() {
   DescriptiveStatistics stats = createDescriptiveStatistics();
   stats.setWindowSize(300);
   for (int i = 0; i < 100; ++i) {
     stats.addValue(i + 1);
   }
   int refSum = (100 * 101) / 2;
   Assert.assertEquals(refSum / 100.0, stats.getMean(), 1E-10);
   Assert.assertEquals(300, stats.getWindowSize());
   try {
     stats.setWindowSize(-3);
     Assert.fail("an exception should have been thrown");
   } catch (MathIllegalArgumentException iae) {
     // expected
   }
   Assert.assertEquals(300, stats.getWindowSize());
   stats.setWindowSize(50);
   Assert.assertEquals(50, stats.getWindowSize());
   int refSum2 = refSum - (50 * 51) / 2;
   Assert.assertEquals(refSum2 / 50.0, stats.getMean(), 1E-10);
 }