package cz.cuni.lf1.lge.ThunderSTORM.util; import org.junit.Test; import java.util.Arrays; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertArrayEquals; public class VectorMathTest { @Test public void testMovingAverage() { System.out.println("VectorMath::movingAverage"); double[] values = new double[10]; double[] expected; double[] result; Arrays.fill(values, 1); expected = values; result = VectorMath.movingAverage(values, 5); assertArrayEquals(expected, result, 1e-12); Arrays.fill(values, 5); expected = values; result = VectorMath.movingAverage(values, 1); assertArrayEquals(expected, result, 1e-12); values = new double[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; expected = new double[11]; Arrays.fill(expected, 5.0); result = VectorMath.movingAverage(values, 23); assertArrayEquals(expected, result, 1e-12); values = new double[] { 3, 5, 1, 0, 2 }; expected = new double[] { 4, 3, 2, 1, 1 }; result = VectorMath.movingAverage(values, 3); assertArrayEquals(expected, result, 1e-12); long thrown = 0; try { VectorMath.movingAverage(values, 2); } catch(Exception ex) { thrown++; } try { VectorMath.movingAverage(values, 0); } catch(Exception ex) { thrown++; } try { VectorMath.movingAverage(values, -3); } catch(Exception ex) { thrown++; } assertEquals(3, thrown); } }