From 364a23f10dffc6df4bd59411d785a07927cbeb53 Mon Sep 17 00:00:00 2001 From: Jagath Kumar <1611881-jagathks@users.noreply.gitlab.com> Date: Tue, 12 Mar 2024 12:55:38 +0530 Subject: [PATCH 1/7] calculating Moving averages jagathkumarks/jagathkumarks@gmail.com --- .../pom.xml | 30 +++++++++++++++ .../baeldung/ExponentialMovingAverage.java | 26 +++++++++++++ .../MovingAverageByCircularBuffer.java | 31 +++++++++++++++ .../MovingAverageWithApacheCommonsMath.java | 21 ++++++++++ .../ExponentialMovingAverageTest.java | 38 +++++++++++++++++++ .../MovingAverageByCircularBufferTest.java | 35 +++++++++++++++++ ...ovingAverageWithApacheCommonsMathTest.java | 36 ++++++++++++++++++ core-java-modules/pom.xml | 1 + 8 files changed, 218 insertions(+) create mode 100644 core-java-modules/core-java-calculating-moving-averages/pom.xml create mode 100644 core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/ExponentialMovingAverage.java create mode 100644 core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/MovingAverageByCircularBuffer.java create mode 100644 core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/MovingAverageWithApacheCommonsMath.java create mode 100644 core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/ExponentialMovingAverageTest.java create mode 100644 core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageByCircularBufferTest.java create mode 100644 core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathTest.java diff --git a/core-java-modules/core-java-calculating-moving-averages/pom.xml b/core-java-modules/core-java-calculating-moving-averages/pom.xml new file mode 100644 index 0000000000..751e187ca5 --- /dev/null +++ b/core-java-modules/core-java-calculating-moving-averages/pom.xml @@ -0,0 +1,30 @@ + + + 4.0.0 + + org.example + core-java-calculating-moving-averages + 1.0-SNAPSHOT + + + core-java-modules + com.baeldung.core-java-modules + 0.0.1-SNAPSHOT + + + + 17 + 17 + UTF-8 + + + + + org.apache.commons + commons-math3 + 3.6.1 + + + \ No newline at end of file diff --git a/core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/ExponentialMovingAverage.java b/core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/ExponentialMovingAverage.java new file mode 100644 index 0000000000..c2ec316ddb --- /dev/null +++ b/core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/ExponentialMovingAverage.java @@ -0,0 +1,26 @@ +package com.baeldung; + +public class ExponentialMovingAverage { + + private final double alpha; + private Double previousEMA; + + public ExponentialMovingAverage(double alpha) { + if (alpha <= 0 || alpha > 1) { + throw new IllegalArgumentException("Alpha must be in the range (0, 1]"); + } + this.alpha = alpha; + this.previousEMA = null; + } + + public double calculateEMA(double newValue) { + if (previousEMA == null) { + // First data point, EMA is same as the value itself + previousEMA = newValue; + } else { + // Calculate EMA using the formula: EMA = alpha * newValue + (1 - alpha) * previousEMA + previousEMA = alpha * newValue + (1 - alpha) * previousEMA; + } + return previousEMA; + } +} diff --git a/core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/MovingAverageByCircularBuffer.java b/core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/MovingAverageByCircularBuffer.java new file mode 100644 index 0000000000..286d2cf62e --- /dev/null +++ b/core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/MovingAverageByCircularBuffer.java @@ -0,0 +1,31 @@ +package com.baeldung; + +public class MovingAverageByCircularBuffer { + + private final double[] buffer; + private int head; + private int count; + + public MovingAverageByCircularBuffer(int windowSize) { + this.buffer = new double[windowSize]; + } + + public void add(double value) { + buffer[head] = value; + head = (head + 1) % buffer.length; + if (count < buffer.length) { + count++; + } + } + + public double getMovingAverage() { + if (count == 0) { + return Double.NaN; + } + double sum = 0; + for (int i = 0; i < count; i++) { + sum += buffer[i]; //buffer[(head + i) % buffer.length]; + } + return sum / count; + } +} diff --git a/core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/MovingAverageWithApacheCommonsMath.java b/core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/MovingAverageWithApacheCommonsMath.java new file mode 100644 index 0000000000..34e84e0a62 --- /dev/null +++ b/core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/MovingAverageWithApacheCommonsMath.java @@ -0,0 +1,21 @@ +package com.baeldung; + +import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics; + +public class MovingAverageWithApacheCommonsMath { + + private final DescriptiveStatistics stats; + + public MovingAverageWithApacheCommonsMath(int windowSize) { + this.stats = new DescriptiveStatistics(windowSize); + } + + public void add(double value) { + stats.addValue(value); + } + + public double getMovingAverage() { + return stats.getMean(); + } + +} diff --git a/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/ExponentialMovingAverageTest.java b/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/ExponentialMovingAverageTest.java new file mode 100644 index 0000000000..0ff3760796 --- /dev/null +++ b/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/ExponentialMovingAverageTest.java @@ -0,0 +1,38 @@ +package com.baeldung; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +public class ExponentialMovingAverageTest { + @Test(expected = IllegalArgumentException.class) + public void when_alpha_is_invalid_should_throw_exception() { + new ExponentialMovingAverage(0); // Alpha outside valid range + } + + @Test + public void when_first_value_is_added_EMA_should_be_same_as_value() { + ExponentialMovingAverage ema = new ExponentialMovingAverage(0.5); + assertEquals(10.0, ema.calculateEMA(10.0), 0.001); + } + + @Test + public void when_values_are_added_EMA_should_update_correctly() { + ExponentialMovingAverage ema = new ExponentialMovingAverage(0.4); + assertEquals(10.0, ema.calculateEMA(10.0), 0.001); + assertEquals(14.0, ema.calculateEMA(20.0), 0.001); + assertEquals(20.4, ema.calculateEMA(30.0), 0.001); + } + + @Test + public void when_alpha_is_closer_to_one_EMA_should_respond_faster_to_changes() { + ExponentialMovingAverage ema1 = new ExponentialMovingAverage(0.2); + ExponentialMovingAverage ema2 = new ExponentialMovingAverage(0.8); + + assertEquals(10.0, ema1.calculateEMA(10.0), 0.001); + assertEquals(10.0, ema2.calculateEMA(10.0), 0.001); + + assertEquals(12.0, ema1.calculateEMA(20.0), 0.001); // Responds slower + assertEquals(18.0, ema2.calculateEMA(20.0), 0.001); // Responds faster + } +} diff --git a/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageByCircularBufferTest.java b/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageByCircularBufferTest.java new file mode 100644 index 0000000000..33ab8e8014 --- /dev/null +++ b/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageByCircularBufferTest.java @@ -0,0 +1,35 @@ +package com.baeldung; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +public class MovingAverageByCircularBufferTest { + +@Test +public void when_initial_average_is_calculated_it_should_be_zero() { + MovingAverageByCircularBuffer ma = new MovingAverageByCircularBuffer(5); + assertEquals(Double.NaN, ma.getMovingAverage(), 0.001); // Empty buffer +} + +@Test +public void when_values_are_added_average_should_update_correctly() { + MovingAverageByCircularBuffer ma = new MovingAverageByCircularBuffer(3); + ma.add(10); + assertEquals(10.0, ma.getMovingAverage(), 0.001); + ma.add(20); + assertEquals(15.0, ma.getMovingAverage(), 0.001); + ma.add(30); + assertEquals(20.0, ma.getMovingAverage(), 0.001); +} + +@Test +public void when_window_size_is_full_oldest_value_should_be_overwritten() { + MovingAverageByCircularBuffer ma = new MovingAverageByCircularBuffer(2); + ma.add(10); + ma.add(20); + assertEquals(15.0, ma.getMovingAverage(), 0.001); + ma.add(30); // Overwrites 10 + assertEquals(25.0, ma.getMovingAverage(), 0.001); +} +} diff --git a/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathTest.java b/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathTest.java new file mode 100644 index 0000000000..82880e63b2 --- /dev/null +++ b/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathTest.java @@ -0,0 +1,36 @@ +package com.baeldung; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +public class MovingAverageWithApacheCommonsMathTest { + + @Test + public void when_initial_average_is_calculated_it_should_be_NAN() { + MovingAverageWithApacheCommonsMath movingAverageCalculator = new MovingAverageWithApacheCommonsMath(5); + assertEquals(Double.NaN, movingAverageCalculator.getMovingAverage(), 0.001); + } + + @Test + public void when_values_are_added_average_should_update_correctly() { + MovingAverageWithApacheCommonsMath movingAverageCalculator = new MovingAverageWithApacheCommonsMath(3); + movingAverageCalculator.add(10); + assertEquals(10.0, movingAverageCalculator.getMovingAverage(), 0.001); + movingAverageCalculator.add(20); + assertEquals(15.0, movingAverageCalculator.getMovingAverage(), 0.001); + movingAverageCalculator.add(30); + assertEquals(20.0, movingAverageCalculator.getMovingAverage(), 0.001); + } + + @Test + public void when_window_size_is_full_oldest_value_should_be_dropped() { + MovingAverageWithApacheCommonsMath ma = new MovingAverageWithApacheCommonsMath(2); + ma.add(10); + ma.add(20); + assertEquals(15.0, ma.getMovingAverage(), 0.001); + ma.add(30); + assertEquals(25.0, ma.getMovingAverage(), 0.001); // 10 dropped, 20 and 30 remain + } + +} diff --git a/core-java-modules/pom.xml b/core-java-modules/pom.xml index 00c40151e4..9d5a19104e 100644 --- a/core-java-modules/pom.xml +++ b/core-java-modules/pom.xml @@ -224,6 +224,7 @@ java-rmi java-spi java-websocket + core-java-calculating-moving-averages From 656d6ee54f5382cb600be4f9410520af71595c9b Mon Sep 17 00:00:00 2001 From: Jagath Kumar <1611881-jagathks@users.noreply.gitlab.com> Date: Tue, 12 Mar 2024 13:55:55 +0530 Subject: [PATCH 2/7] calculating Moving averages jagathkumarks/jagathkumarks@gmail.com --- .../core-java-calculating-moving-averages/pom.xml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/core-java-modules/core-java-calculating-moving-averages/pom.xml b/core-java-modules/core-java-calculating-moving-averages/pom.xml index 751e187ca5..33de5a2546 100644 --- a/core-java-modules/core-java-calculating-moving-averages/pom.xml +++ b/core-java-modules/core-java-calculating-moving-averages/pom.xml @@ -4,27 +4,25 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - org.example core-java-calculating-moving-averages - 1.0-SNAPSHOT + core-java-calculating-moving-averages + war - core-java-modules com.baeldung.core-java-modules + core-java-modules 0.0.1-SNAPSHOT - 17 - 17 - UTF-8 + 3.6.1 org.apache.commons commons-math3 - 3.6.1 + ${commons-math3.version} \ No newline at end of file From a4da7fe15bbea37d1f3ca1fbbf9e0568f3e8e683 Mon Sep 17 00:00:00 2001 From: Jagath Kumar <1611881-jagathks@users.noreply.gitlab.com> Date: Tue, 12 Mar 2024 14:33:06 +0530 Subject: [PATCH 3/7] calculating Moving averages jagathkumarks/jagathkumarks@gmail.com --- ...ngAverageTest.java => ExponentialMovingAverageUnitTest.java} | 2 +- ...fferTest.java => MovingAverageByCircularBufferUnitTest.java} | 2 +- ...est.java => MovingAverageWithApacheCommonsMathUnitTest.java} | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/{ExponentialMovingAverageTest.java => ExponentialMovingAverageUnitTest.java} (96%) rename core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/{MovingAverageByCircularBufferTest.java => MovingAverageByCircularBufferUnitTest.java} (95%) rename core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/{MovingAverageWithApacheCommonsMathTest.java => MovingAverageWithApacheCommonsMathUnitTest.java} (95%) diff --git a/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/ExponentialMovingAverageTest.java b/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/ExponentialMovingAverageUnitTest.java similarity index 96% rename from core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/ExponentialMovingAverageTest.java rename to core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/ExponentialMovingAverageUnitTest.java index 0ff3760796..2569295547 100644 --- a/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/ExponentialMovingAverageTest.java +++ b/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/ExponentialMovingAverageUnitTest.java @@ -4,7 +4,7 @@ import org.junit.Test; import static org.junit.Assert.assertEquals; -public class ExponentialMovingAverageTest { +public class ExponentialMovingAverageUnitTest { @Test(expected = IllegalArgumentException.class) public void when_alpha_is_invalid_should_throw_exception() { new ExponentialMovingAverage(0); // Alpha outside valid range diff --git a/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageByCircularBufferTest.java b/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageByCircularBufferUnitTest.java similarity index 95% rename from core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageByCircularBufferTest.java rename to core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageByCircularBufferUnitTest.java index 33ab8e8014..ff4e31cb75 100644 --- a/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageByCircularBufferTest.java +++ b/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageByCircularBufferUnitTest.java @@ -4,7 +4,7 @@ import org.junit.Test; import static org.junit.Assert.assertEquals; -public class MovingAverageByCircularBufferTest { +public class MovingAverageByCircularBufferUnitTest { @Test public void when_initial_average_is_calculated_it_should_be_zero() { diff --git a/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathTest.java b/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathUnitTest.java similarity index 95% rename from core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathTest.java rename to core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathUnitTest.java index 82880e63b2..3b96761c98 100644 --- a/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathTest.java +++ b/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathUnitTest.java @@ -4,7 +4,7 @@ import org.junit.Test; import static org.junit.Assert.assertEquals; -public class MovingAverageWithApacheCommonsMathTest { +public class MovingAverageWithApacheCommonsMathUnitTest { @Test public void when_initial_average_is_calculated_it_should_be_NAN() { From 80f0ac6b103aa0859d190c78673643337ac07784 Mon Sep 17 00:00:00 2001 From: Jagath Kumar <1611881-jagathks@users.noreply.gitlab.com> Date: Wed, 20 Mar 2024 10:18:42 +0530 Subject: [PATCH 4/7] calculating Moving averages - review fixes jagathkumarks/jagathkumarks@gmail.com --- .../baeldung/ExponentialMovingAverage.java | 2 - .../MovingAverageByCircularBuffer.java | 2 +- .../ExponentialMovingAverageUnitTest.java | 15 +++--- ...MovingAverageByCircularBufferUnitTest.java | 48 +++++++++---------- ...gAverageWithApacheCommonsMathUnitTest.java | 8 ++-- 5 files changed, 37 insertions(+), 38 deletions(-) diff --git a/core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/ExponentialMovingAverage.java b/core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/ExponentialMovingAverage.java index c2ec316ddb..d183e689c4 100644 --- a/core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/ExponentialMovingAverage.java +++ b/core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/ExponentialMovingAverage.java @@ -15,10 +15,8 @@ public class ExponentialMovingAverage { public double calculateEMA(double newValue) { if (previousEMA == null) { - // First data point, EMA is same as the value itself previousEMA = newValue; } else { - // Calculate EMA using the formula: EMA = alpha * newValue + (1 - alpha) * previousEMA previousEMA = alpha * newValue + (1 - alpha) * previousEMA; } return previousEMA; diff --git a/core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/MovingAverageByCircularBuffer.java b/core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/MovingAverageByCircularBuffer.java index 286d2cf62e..5136e1e38d 100644 --- a/core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/MovingAverageByCircularBuffer.java +++ b/core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/MovingAverageByCircularBuffer.java @@ -24,7 +24,7 @@ public class MovingAverageByCircularBuffer { } double sum = 0; for (int i = 0; i < count; i++) { - sum += buffer[i]; //buffer[(head + i) % buffer.length]; + sum += buffer[i]; } return sum / count; } diff --git a/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/ExponentialMovingAverageUnitTest.java b/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/ExponentialMovingAverageUnitTest.java index 2569295547..9db186662d 100644 --- a/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/ExponentialMovingAverageUnitTest.java +++ b/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/ExponentialMovingAverageUnitTest.java @@ -5,19 +5,20 @@ import org.junit.Test; import static org.junit.Assert.assertEquals; public class ExponentialMovingAverageUnitTest { + @Test(expected = IllegalArgumentException.class) - public void when_alpha_is_invalid_should_throw_exception() { - new ExponentialMovingAverage(0); // Alpha outside valid range + public void whenAlphaIsInvalid_shouldThrowException() { + new ExponentialMovingAverage(0); } @Test - public void when_first_value_is_added_EMA_should_be_same_as_value() { + public void whenFirstValueIsAdded_shouldHaveExponentialMovingAverageSameAsValue() { ExponentialMovingAverage ema = new ExponentialMovingAverage(0.5); assertEquals(10.0, ema.calculateEMA(10.0), 0.001); } @Test - public void when_values_are_added_EMA_should_update_correctly() { + public void whenValuesAreAdded_shouldUpdateExponentialMovingAverageCorrectly() { ExponentialMovingAverage ema = new ExponentialMovingAverage(0.4); assertEquals(10.0, ema.calculateEMA(10.0), 0.001); assertEquals(14.0, ema.calculateEMA(20.0), 0.001); @@ -25,14 +26,14 @@ public class ExponentialMovingAverageUnitTest { } @Test - public void when_alpha_is_closer_to_one_EMA_should_respond_faster_to_changes() { + public void whenAlphaIsCloserToOne_exponentialMovingAverageShouldRespondFasterToChanges() { ExponentialMovingAverage ema1 = new ExponentialMovingAverage(0.2); ExponentialMovingAverage ema2 = new ExponentialMovingAverage(0.8); assertEquals(10.0, ema1.calculateEMA(10.0), 0.001); assertEquals(10.0, ema2.calculateEMA(10.0), 0.001); - assertEquals(12.0, ema1.calculateEMA(20.0), 0.001); // Responds slower - assertEquals(18.0, ema2.calculateEMA(20.0), 0.001); // Responds faster + assertEquals(12.0, ema1.calculateEMA(20.0), 0.001); + assertEquals(18.0, ema2.calculateEMA(20.0), 0.001); } } diff --git a/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageByCircularBufferUnitTest.java b/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageByCircularBufferUnitTest.java index ff4e31cb75..2e213adbbb 100644 --- a/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageByCircularBufferUnitTest.java +++ b/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageByCircularBufferUnitTest.java @@ -6,30 +6,30 @@ import static org.junit.Assert.assertEquals; public class MovingAverageByCircularBufferUnitTest { -@Test -public void when_initial_average_is_calculated_it_should_be_zero() { - MovingAverageByCircularBuffer ma = new MovingAverageByCircularBuffer(5); - assertEquals(Double.NaN, ma.getMovingAverage(), 0.001); // Empty buffer -} + @Test + public void whenInitialAverageIsCalculated_shouldReturnNAN() { + MovingAverageByCircularBuffer ma = new MovingAverageByCircularBuffer(5); + assertEquals(Double.NaN, ma.getMovingAverage(), 0.001); + } -@Test -public void when_values_are_added_average_should_update_correctly() { - MovingAverageByCircularBuffer ma = new MovingAverageByCircularBuffer(3); - ma.add(10); - assertEquals(10.0, ma.getMovingAverage(), 0.001); - ma.add(20); - assertEquals(15.0, ma.getMovingAverage(), 0.001); - ma.add(30); - assertEquals(20.0, ma.getMovingAverage(), 0.001); -} + @Test + public void whenValuesAreAdded_shouldUpdateAverageCorrectly() { + MovingAverageByCircularBuffer ma = new MovingAverageByCircularBuffer(3); + ma.add(10); + assertEquals(10.0, ma.getMovingAverage(), 0.001); + ma.add(20); + assertEquals(15.0, ma.getMovingAverage(), 0.001); + ma.add(30); + assertEquals(20.0, ma.getMovingAverage(), 0.001); + } -@Test -public void when_window_size_is_full_oldest_value_should_be_overwritten() { - MovingAverageByCircularBuffer ma = new MovingAverageByCircularBuffer(2); - ma.add(10); - ma.add(20); - assertEquals(15.0, ma.getMovingAverage(), 0.001); - ma.add(30); // Overwrites 10 - assertEquals(25.0, ma.getMovingAverage(), 0.001); -} + @Test + public void whenWindowSizeIsFull_shouldOverrideTheOldestValue() { + MovingAverageByCircularBuffer ma = new MovingAverageByCircularBuffer(2); + ma.add(10); + ma.add(20); + assertEquals(15.0, ma.getMovingAverage(), 0.001); + ma.add(30); + assertEquals(25.0, ma.getMovingAverage(), 0.001); + } } diff --git a/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathUnitTest.java b/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathUnitTest.java index 3b96761c98..d2212a59d2 100644 --- a/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathUnitTest.java +++ b/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathUnitTest.java @@ -7,13 +7,13 @@ import static org.junit.Assert.assertEquals; public class MovingAverageWithApacheCommonsMathUnitTest { @Test - public void when_initial_average_is_calculated_it_should_be_NAN() { + public void whenInitialAverageIsCalculated_shouldReturnNAN() { MovingAverageWithApacheCommonsMath movingAverageCalculator = new MovingAverageWithApacheCommonsMath(5); assertEquals(Double.NaN, movingAverageCalculator.getMovingAverage(), 0.001); } @Test - public void when_values_are_added_average_should_update_correctly() { + public void whenValuesAreAdded_shouldUpdateAverageCorrectly() { MovingAverageWithApacheCommonsMath movingAverageCalculator = new MovingAverageWithApacheCommonsMath(3); movingAverageCalculator.add(10); assertEquals(10.0, movingAverageCalculator.getMovingAverage(), 0.001); @@ -24,13 +24,13 @@ public class MovingAverageWithApacheCommonsMathUnitTest { } @Test - public void when_window_size_is_full_oldest_value_should_be_dropped() { + public void whenWindowSizeIsFull_shouldDropTheOldestValue() { MovingAverageWithApacheCommonsMath ma = new MovingAverageWithApacheCommonsMath(2); ma.add(10); ma.add(20); assertEquals(15.0, ma.getMovingAverage(), 0.001); ma.add(30); - assertEquals(25.0, ma.getMovingAverage(), 0.001); // 10 dropped, 20 and 30 remain + assertEquals(25.0, ma.getMovingAverage(), 0.001); } } From ac32eebb539447741c6e80d8dc6473abac2e551d Mon Sep 17 00:00:00 2001 From: Jagath Kumar <1611881-jagathks@users.noreply.gitlab.com> Date: Mon, 8 Apr 2024 17:03:26 +0530 Subject: [PATCH 5/7] calculating Moving averages - review fixes --- .../algorithms-miscellaneous-9}/pom.xml | 17 ++++----- .../baeldung/ExponentialMovingAverage.java | 0 .../MovingAverageByCircularBuffer.java | 0 .../MovingAverageWithApacheCommonsMath.java | 0 .../MovingAverageWithStreamBasedApproach.java | 18 +++++++++ .../ExponentialMovingAverageUnitTest.java | 3 +- ...MovingAverageByCircularBufferUnitTest.java | 1 - ...gAverageWithApacheCommonsMathUnitTest.java | 1 - ...verageWithStreamBasedApproachUnitTest.java | 38 +++++++++++++++++++ algorithms-modules/pom.xml | 1 + core-java-modules/pom.xml | 1 - 11 files changed, 66 insertions(+), 14 deletions(-) rename {core-java-modules/core-java-calculating-moving-averages => algorithms-modules/algorithms-miscellaneous-9}/pom.xml (60%) rename {core-java-modules/core-java-calculating-moving-averages => algorithms-modules/algorithms-miscellaneous-9}/src/main/java/com/baeldung/ExponentialMovingAverage.java (100%) rename {core-java-modules/core-java-calculating-moving-averages => algorithms-modules/algorithms-miscellaneous-9}/src/main/java/com/baeldung/MovingAverageByCircularBuffer.java (100%) rename {core-java-modules/core-java-calculating-moving-averages => algorithms-modules/algorithms-miscellaneous-9}/src/main/java/com/baeldung/MovingAverageWithApacheCommonsMath.java (100%) create mode 100644 algorithms-modules/algorithms-miscellaneous-9/src/main/java/com/baeldung/MovingAverageWithStreamBasedApproach.java rename {core-java-modules/core-java-calculating-moving-averages => algorithms-modules/algorithms-miscellaneous-9}/src/test/java/com/baeldung/ExponentialMovingAverageUnitTest.java (99%) rename {core-java-modules/core-java-calculating-moving-averages => algorithms-modules/algorithms-miscellaneous-9}/src/test/java/com/baeldung/MovingAverageByCircularBufferUnitTest.java (99%) rename {core-java-modules/core-java-calculating-moving-averages => algorithms-modules/algorithms-miscellaneous-9}/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathUnitTest.java (99%) create mode 100644 algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/MovingAverageWithStreamBasedApproachUnitTest.java diff --git a/core-java-modules/core-java-calculating-moving-averages/pom.xml b/algorithms-modules/algorithms-miscellaneous-9/pom.xml similarity index 60% rename from core-java-modules/core-java-calculating-moving-averages/pom.xml rename to algorithms-modules/algorithms-miscellaneous-9/pom.xml index 33de5a2546..cd44b17184 100644 --- a/core-java-modules/core-java-calculating-moving-averages/pom.xml +++ b/algorithms-modules/algorithms-miscellaneous-9/pom.xml @@ -3,19 +3,18 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - - core-java-calculating-moving-averages - core-java-calculating-moving-averages - war - - com.baeldung.core-java-modules - core-java-modules - 0.0.1-SNAPSHOT + com.baeldung + algorithms-modules + 1.0.0-SNAPSHOT + algorithms-miscellaneous-9 + - 3.6.1 + 17 + 17 + UTF-8 diff --git a/core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/ExponentialMovingAverage.java b/algorithms-modules/algorithms-miscellaneous-9/src/main/java/com/baeldung/ExponentialMovingAverage.java similarity index 100% rename from core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/ExponentialMovingAverage.java rename to algorithms-modules/algorithms-miscellaneous-9/src/main/java/com/baeldung/ExponentialMovingAverage.java diff --git a/core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/MovingAverageByCircularBuffer.java b/algorithms-modules/algorithms-miscellaneous-9/src/main/java/com/baeldung/MovingAverageByCircularBuffer.java similarity index 100% rename from core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/MovingAverageByCircularBuffer.java rename to algorithms-modules/algorithms-miscellaneous-9/src/main/java/com/baeldung/MovingAverageByCircularBuffer.java diff --git a/core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/MovingAverageWithApacheCommonsMath.java b/algorithms-modules/algorithms-miscellaneous-9/src/main/java/com/baeldung/MovingAverageWithApacheCommonsMath.java similarity index 100% rename from core-java-modules/core-java-calculating-moving-averages/src/main/java/com/baeldung/MovingAverageWithApacheCommonsMath.java rename to algorithms-modules/algorithms-miscellaneous-9/src/main/java/com/baeldung/MovingAverageWithApacheCommonsMath.java diff --git a/algorithms-modules/algorithms-miscellaneous-9/src/main/java/com/baeldung/MovingAverageWithStreamBasedApproach.java b/algorithms-modules/algorithms-miscellaneous-9/src/main/java/com/baeldung/MovingAverageWithStreamBasedApproach.java new file mode 100644 index 0000000000..d89e3d9284 --- /dev/null +++ b/algorithms-modules/algorithms-miscellaneous-9/src/main/java/com/baeldung/MovingAverageWithStreamBasedApproach.java @@ -0,0 +1,18 @@ +package com.baeldung; + +import java.util.stream.DoubleStream; + +public class MovingAverageWithStreamBasedApproach { + private int windowSize; + + public MovingAverageWithStreamBasedApproach(int windowSize) { + this.windowSize = windowSize; + } + public double calculateAverage(double[] data) { + return DoubleStream.of(data) + .skip(Math.max(0, data.length - windowSize)) + .limit(Math.min(data.length, windowSize)) + .summaryStatistics() + .getAverage(); + } +} diff --git a/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/ExponentialMovingAverageUnitTest.java b/algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/ExponentialMovingAverageUnitTest.java similarity index 99% rename from core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/ExponentialMovingAverageUnitTest.java rename to algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/ExponentialMovingAverageUnitTest.java index 9db186662d..26251095a8 100644 --- a/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/ExponentialMovingAverageUnitTest.java +++ b/algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/ExponentialMovingAverageUnitTest.java @@ -1,8 +1,7 @@ package com.baeldung; -import org.junit.Test; - import static org.junit.Assert.assertEquals; +import org.junit.Test; public class ExponentialMovingAverageUnitTest { diff --git a/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageByCircularBufferUnitTest.java b/algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/MovingAverageByCircularBufferUnitTest.java similarity index 99% rename from core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageByCircularBufferUnitTest.java rename to algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/MovingAverageByCircularBufferUnitTest.java index 2e213adbbb..4f641739b1 100644 --- a/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageByCircularBufferUnitTest.java +++ b/algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/MovingAverageByCircularBufferUnitTest.java @@ -1,7 +1,6 @@ package com.baeldung; import org.junit.Test; - import static org.junit.Assert.assertEquals; public class MovingAverageByCircularBufferUnitTest { diff --git a/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathUnitTest.java b/algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathUnitTest.java similarity index 99% rename from core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathUnitTest.java rename to algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathUnitTest.java index d2212a59d2..fff884ec01 100644 --- a/core-java-modules/core-java-calculating-moving-averages/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathUnitTest.java +++ b/algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathUnitTest.java @@ -1,7 +1,6 @@ package com.baeldung; import org.junit.Test; - import static org.junit.Assert.assertEquals; public class MovingAverageWithApacheCommonsMathUnitTest { diff --git a/algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/MovingAverageWithStreamBasedApproachUnitTest.java b/algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/MovingAverageWithStreamBasedApproachUnitTest.java new file mode 100644 index 0000000000..bf8775e51a --- /dev/null +++ b/algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/MovingAverageWithStreamBasedApproachUnitTest.java @@ -0,0 +1,38 @@ +package com.baeldung; + +import org.junit.Test; + +import static org.junit.jupiter.api.Assertions.*; + +public class MovingAverageWithStreamBasedApproachUnitTest { + + @Test + public void whenEmptyDataIsPassed_shouldReturnZero() { + double[] data = {}; + int windowSize = 3; + double expectedAverage = 0; + MovingAverageWithStreamBasedApproach calculator = new MovingAverageWithStreamBasedApproach(windowSize); + double actualAverage = calculator.calculateAverage(data); + assertEquals(expectedAverage, actualAverage); + } + + @Test + public void whenValidDataIsPassed_shouldReturnCorrectAverage() { + double[] data = {10, 20, 30, 40, 50}; + int windowSize = 3; + double expectedAverage = 40; + MovingAverageWithStreamBasedApproach calculator = new MovingAverageWithStreamBasedApproach(windowSize); + double actualAverage = calculator.calculateAverage(data); + assertEquals(expectedAverage, actualAverage); + } + + @Test + public void whenValidDataIsPassedWithLongerWindowSize_shouldReturnCorrectAverage() { + double[] data = {10, 20, 30, 40, 50}; + int windowSize = 5; + double expectedAverage = 30; + MovingAverageWithStreamBasedApproach calculator = new MovingAverageWithStreamBasedApproach(windowSize); + double actualAverage = calculator.calculateAverage(data); + assertEquals(expectedAverage, actualAverage); + } +} \ No newline at end of file diff --git a/algorithms-modules/pom.xml b/algorithms-modules/pom.xml index d3f27f4fa8..aaaac86b6d 100644 --- a/algorithms-modules/pom.xml +++ b/algorithms-modules/pom.xml @@ -26,6 +26,7 @@ algorithms-searching algorithms-sorting algorithms-sorting-2 + algorithms-miscellaneous-9 diff --git a/core-java-modules/pom.xml b/core-java-modules/pom.xml index 9d5a19104e..00c40151e4 100644 --- a/core-java-modules/pom.xml +++ b/core-java-modules/pom.xml @@ -224,7 +224,6 @@ java-rmi java-spi java-websocket - core-java-calculating-moving-averages From f2c6d26c8289abc6e04405d7d5dc661ff8266f39 Mon Sep 17 00:00:00 2001 From: Jagath Kumar <1611881-jagathks@users.noreply.gitlab.com> Date: Tue, 9 Apr 2024 20:04:24 +0530 Subject: [PATCH 6/7] calculating Moving averages - package updated --- .../algorithms-miscellaneous-8/pom.xml | 10 ++++++- .../ExponentialMovingAverage.java | 2 +- .../MovingAverageByCircularBuffer.java | 2 +- .../MovingAverageWithApacheCommonsMath.java | 2 +- .../MovingAverageWithStreamBasedApproach.java | 2 +- .../ExponentialMovingAverageUnitTest.java | 5 ++-- ...MovingAverageByCircularBufferUnitTest.java | 3 ++- ...gAverageWithApacheCommonsMathUnitTest.java | 3 ++- ...verageWithStreamBasedApproachUnitTest.java | 4 +-- .../algorithms-miscellaneous-9/pom.xml | 27 ------------------- algorithms-modules/pom.xml | 2 +- 11 files changed, 23 insertions(+), 39 deletions(-) rename algorithms-modules/{algorithms-miscellaneous-9/src/main/java/com/baeldung => algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages}/ExponentialMovingAverage.java (94%) rename algorithms-modules/{algorithms-miscellaneous-9/src/main/java/com/baeldung => algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages}/MovingAverageByCircularBuffer.java (94%) rename algorithms-modules/{algorithms-miscellaneous-9/src/main/java/com/baeldung => algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages}/MovingAverageWithApacheCommonsMath.java (92%) rename algorithms-modules/{algorithms-miscellaneous-9/src/main/java/com/baeldung => algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages}/MovingAverageWithStreamBasedApproach.java (93%) rename algorithms-modules/{algorithms-miscellaneous-9/src/test/java/com/baeldung => algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages}/ExponentialMovingAverageUnitTest.java (97%) rename algorithms-modules/{algorithms-miscellaneous-9/src/test/java/com/baeldung => algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages}/MovingAverageByCircularBufferUnitTest.java (96%) rename algorithms-modules/{algorithms-miscellaneous-9/src/test/java/com/baeldung => algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages}/MovingAverageWithApacheCommonsMathUnitTest.java (97%) rename algorithms-modules/{algorithms-miscellaneous-9/src/test/java/com/baeldung => algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages}/MovingAverageWithStreamBasedApproachUnitTest.java (93%) delete mode 100644 algorithms-modules/algorithms-miscellaneous-9/pom.xml diff --git a/algorithms-modules/algorithms-miscellaneous-8/pom.xml b/algorithms-modules/algorithms-miscellaneous-8/pom.xml index 29163c5de7..860c0889c8 100644 --- a/algorithms-modules/algorithms-miscellaneous-8/pom.xml +++ b/algorithms-modules/algorithms-miscellaneous-8/pom.xml @@ -13,4 +13,12 @@ 1.0.0-SNAPSHOT - + + + + org.apache.commons + commons-math3 + ${commons-math3.version} + + + \ No newline at end of file diff --git a/algorithms-modules/algorithms-miscellaneous-9/src/main/java/com/baeldung/ExponentialMovingAverage.java b/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/ExponentialMovingAverage.java similarity index 94% rename from algorithms-modules/algorithms-miscellaneous-9/src/main/java/com/baeldung/ExponentialMovingAverage.java rename to algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/ExponentialMovingAverage.java index d183e689c4..22e7f56efe 100644 --- a/algorithms-modules/algorithms-miscellaneous-9/src/main/java/com/baeldung/ExponentialMovingAverage.java +++ b/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/ExponentialMovingAverage.java @@ -1,4 +1,4 @@ -package com.baeldung; +package com.baeldung.movingaverages; public class ExponentialMovingAverage { diff --git a/algorithms-modules/algorithms-miscellaneous-9/src/main/java/com/baeldung/MovingAverageByCircularBuffer.java b/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/MovingAverageByCircularBuffer.java similarity index 94% rename from algorithms-modules/algorithms-miscellaneous-9/src/main/java/com/baeldung/MovingAverageByCircularBuffer.java rename to algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/MovingAverageByCircularBuffer.java index 5136e1e38d..2b748382c6 100644 --- a/algorithms-modules/algorithms-miscellaneous-9/src/main/java/com/baeldung/MovingAverageByCircularBuffer.java +++ b/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/MovingAverageByCircularBuffer.java @@ -1,4 +1,4 @@ -package com.baeldung; +package com.baeldung.movingaverages; public class MovingAverageByCircularBuffer { diff --git a/algorithms-modules/algorithms-miscellaneous-9/src/main/java/com/baeldung/MovingAverageWithApacheCommonsMath.java b/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/MovingAverageWithApacheCommonsMath.java similarity index 92% rename from algorithms-modules/algorithms-miscellaneous-9/src/main/java/com/baeldung/MovingAverageWithApacheCommonsMath.java rename to algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/MovingAverageWithApacheCommonsMath.java index 34e84e0a62..fea54a7874 100644 --- a/algorithms-modules/algorithms-miscellaneous-9/src/main/java/com/baeldung/MovingAverageWithApacheCommonsMath.java +++ b/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/MovingAverageWithApacheCommonsMath.java @@ -1,4 +1,4 @@ -package com.baeldung; +package com.baeldung.movingaverages; import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics; diff --git a/algorithms-modules/algorithms-miscellaneous-9/src/main/java/com/baeldung/MovingAverageWithStreamBasedApproach.java b/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/MovingAverageWithStreamBasedApproach.java similarity index 93% rename from algorithms-modules/algorithms-miscellaneous-9/src/main/java/com/baeldung/MovingAverageWithStreamBasedApproach.java rename to algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/MovingAverageWithStreamBasedApproach.java index d89e3d9284..4d9331c7ec 100644 --- a/algorithms-modules/algorithms-miscellaneous-9/src/main/java/com/baeldung/MovingAverageWithStreamBasedApproach.java +++ b/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/MovingAverageWithStreamBasedApproach.java @@ -1,4 +1,4 @@ -package com.baeldung; +package com.baeldung.movingaverages; import java.util.stream.DoubleStream; diff --git a/algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/ExponentialMovingAverageUnitTest.java b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/ExponentialMovingAverageUnitTest.java similarity index 97% rename from algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/ExponentialMovingAverageUnitTest.java rename to algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/ExponentialMovingAverageUnitTest.java index 26251095a8..8c1fe11ed3 100644 --- a/algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/ExponentialMovingAverageUnitTest.java +++ b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/ExponentialMovingAverageUnitTest.java @@ -1,7 +1,8 @@ -package com.baeldung; +package com.baeldung.movingaverages; + +import org.junit.Test; import static org.junit.Assert.assertEquals; -import org.junit.Test; public class ExponentialMovingAverageUnitTest { diff --git a/algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/MovingAverageByCircularBufferUnitTest.java b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/MovingAverageByCircularBufferUnitTest.java similarity index 96% rename from algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/MovingAverageByCircularBufferUnitTest.java rename to algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/MovingAverageByCircularBufferUnitTest.java index 4f641739b1..9b498ccf1c 100644 --- a/algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/MovingAverageByCircularBufferUnitTest.java +++ b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/MovingAverageByCircularBufferUnitTest.java @@ -1,6 +1,7 @@ -package com.baeldung; +package com.baeldung.movingaverages; import org.junit.Test; + import static org.junit.Assert.assertEquals; public class MovingAverageByCircularBufferUnitTest { diff --git a/algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathUnitTest.java b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/MovingAverageWithApacheCommonsMathUnitTest.java similarity index 97% rename from algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathUnitTest.java rename to algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/MovingAverageWithApacheCommonsMathUnitTest.java index fff884ec01..14ff7c15ee 100644 --- a/algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/MovingAverageWithApacheCommonsMathUnitTest.java +++ b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/MovingAverageWithApacheCommonsMathUnitTest.java @@ -1,6 +1,7 @@ -package com.baeldung; +package com.baeldung.movingaverages; import org.junit.Test; + import static org.junit.Assert.assertEquals; public class MovingAverageWithApacheCommonsMathUnitTest { diff --git a/algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/MovingAverageWithStreamBasedApproachUnitTest.java b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/MovingAverageWithStreamBasedApproachUnitTest.java similarity index 93% rename from algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/MovingAverageWithStreamBasedApproachUnitTest.java rename to algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/MovingAverageWithStreamBasedApproachUnitTest.java index bf8775e51a..ac2d1986d4 100644 --- a/algorithms-modules/algorithms-miscellaneous-9/src/test/java/com/baeldung/MovingAverageWithStreamBasedApproachUnitTest.java +++ b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/MovingAverageWithStreamBasedApproachUnitTest.java @@ -1,8 +1,8 @@ -package com.baeldung; +package com.baeldung.movingaverages; import org.junit.Test; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; public class MovingAverageWithStreamBasedApproachUnitTest { diff --git a/algorithms-modules/algorithms-miscellaneous-9/pom.xml b/algorithms-modules/algorithms-miscellaneous-9/pom.xml deleted file mode 100644 index cd44b17184..0000000000 --- a/algorithms-modules/algorithms-miscellaneous-9/pom.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - 4.0.0 - - com.baeldung - algorithms-modules - 1.0.0-SNAPSHOT - - - algorithms-miscellaneous-9 - - - 17 - 17 - UTF-8 - - - - - org.apache.commons - commons-math3 - ${commons-math3.version} - - - \ No newline at end of file diff --git a/algorithms-modules/pom.xml b/algorithms-modules/pom.xml index aaaac86b6d..1ddb61c66a 100644 --- a/algorithms-modules/pom.xml +++ b/algorithms-modules/pom.xml @@ -26,7 +26,7 @@ algorithms-searching algorithms-sorting algorithms-sorting-2 - algorithms-miscellaneous-9 + algorithms-miscellaneous-8 From 06c69e42eec747ffa662d0753c929019f5c2ff92 Mon Sep 17 00:00:00 2001 From: Jagath Kumar <1611881-jagathks@users.noreply.gitlab.com> Date: Wed, 17 Apr 2024 18:28:28 +0530 Subject: [PATCH 7/7] calculating Moving averages - package updated --- algorithms-modules/algorithms-miscellaneous-8/pom.xml | 1 - .../movingaverages/ExponentialMovingAverage.java | 2 +- .../movingaverages/MovingAverageByCircularBuffer.java | 2 +- .../movingaverages/MovingAverageWithApacheCommonsMath.java | 2 +- .../movingaverages/MovingAverageWithStreamBasedApproach.java | 2 +- .../movingaverages/ExponentialMovingAverageUnitTest.java | 2 +- .../movingaverages/MovingAverageByCircularBufferUnitTest.java | 2 +- .../MovingAverageWithApacheCommonsMathUnitTest.java | 2 +- .../MovingAverageWithStreamBasedApproachUnitTest.java | 2 +- algorithms-modules/pom.xml | 1 - 10 files changed, 8 insertions(+), 10 deletions(-) rename algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/{ => algorithms}/movingaverages/ExponentialMovingAverage.java (92%) rename algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/{ => algorithms}/movingaverages/MovingAverageByCircularBuffer.java (93%) rename algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/{ => algorithms}/movingaverages/MovingAverageWithApacheCommonsMath.java (90%) rename algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/{ => algorithms}/movingaverages/MovingAverageWithStreamBasedApproach.java (91%) rename algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/{ => algorithms}/movingaverages/ExponentialMovingAverageUnitTest.java (96%) rename algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/{ => algorithms}/movingaverages/MovingAverageByCircularBufferUnitTest.java (95%) rename algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/{ => algorithms}/movingaverages/MovingAverageWithApacheCommonsMathUnitTest.java (96%) rename algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/{ => algorithms}/movingaverages/MovingAverageWithStreamBasedApproachUnitTest.java (96%) diff --git a/algorithms-modules/algorithms-miscellaneous-8/pom.xml b/algorithms-modules/algorithms-miscellaneous-8/pom.xml index 860c0889c8..086088114e 100644 --- a/algorithms-modules/algorithms-miscellaneous-8/pom.xml +++ b/algorithms-modules/algorithms-miscellaneous-8/pom.xml @@ -13,7 +13,6 @@ 1.0.0-SNAPSHOT - org.apache.commons diff --git a/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/ExponentialMovingAverage.java b/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/algorithms/movingaverages/ExponentialMovingAverage.java similarity index 92% rename from algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/ExponentialMovingAverage.java rename to algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/algorithms/movingaverages/ExponentialMovingAverage.java index 22e7f56efe..dc87c3c194 100644 --- a/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/ExponentialMovingAverage.java +++ b/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/algorithms/movingaverages/ExponentialMovingAverage.java @@ -1,4 +1,4 @@ -package com.baeldung.movingaverages; +package com.baeldung.algorithms.movingaverages; public class ExponentialMovingAverage { diff --git a/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/MovingAverageByCircularBuffer.java b/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/algorithms/movingaverages/MovingAverageByCircularBuffer.java similarity index 93% rename from algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/MovingAverageByCircularBuffer.java rename to algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/algorithms/movingaverages/MovingAverageByCircularBuffer.java index 2b748382c6..0ff114bfa5 100644 --- a/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/MovingAverageByCircularBuffer.java +++ b/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/algorithms/movingaverages/MovingAverageByCircularBuffer.java @@ -1,4 +1,4 @@ -package com.baeldung.movingaverages; +package com.baeldung.algorithms.movingaverages; public class MovingAverageByCircularBuffer { diff --git a/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/MovingAverageWithApacheCommonsMath.java b/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/algorithms/movingaverages/MovingAverageWithApacheCommonsMath.java similarity index 90% rename from algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/MovingAverageWithApacheCommonsMath.java rename to algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/algorithms/movingaverages/MovingAverageWithApacheCommonsMath.java index fea54a7874..ba8867fa09 100644 --- a/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/MovingAverageWithApacheCommonsMath.java +++ b/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/algorithms/movingaverages/MovingAverageWithApacheCommonsMath.java @@ -1,4 +1,4 @@ -package com.baeldung.movingaverages; +package com.baeldung.algorithms.movingaverages; import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics; diff --git a/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/MovingAverageWithStreamBasedApproach.java b/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/algorithms/movingaverages/MovingAverageWithStreamBasedApproach.java similarity index 91% rename from algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/MovingAverageWithStreamBasedApproach.java rename to algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/algorithms/movingaverages/MovingAverageWithStreamBasedApproach.java index 4d9331c7ec..8dbdf36288 100644 --- a/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/movingaverages/MovingAverageWithStreamBasedApproach.java +++ b/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/algorithms/movingaverages/MovingAverageWithStreamBasedApproach.java @@ -1,4 +1,4 @@ -package com.baeldung.movingaverages; +package com.baeldung.algorithms.movingaverages; import java.util.stream.DoubleStream; diff --git a/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/ExponentialMovingAverageUnitTest.java b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/movingaverages/ExponentialMovingAverageUnitTest.java similarity index 96% rename from algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/ExponentialMovingAverageUnitTest.java rename to algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/movingaverages/ExponentialMovingAverageUnitTest.java index 8c1fe11ed3..dbf78aaae8 100644 --- a/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/ExponentialMovingAverageUnitTest.java +++ b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/movingaverages/ExponentialMovingAverageUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.movingaverages; +package com.baeldung.algorithms.movingaverages; import org.junit.Test; diff --git a/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/MovingAverageByCircularBufferUnitTest.java b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/movingaverages/MovingAverageByCircularBufferUnitTest.java similarity index 95% rename from algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/MovingAverageByCircularBufferUnitTest.java rename to algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/movingaverages/MovingAverageByCircularBufferUnitTest.java index 9b498ccf1c..a9a0ad5509 100644 --- a/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/MovingAverageByCircularBufferUnitTest.java +++ b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/movingaverages/MovingAverageByCircularBufferUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.movingaverages; +package com.baeldung.algorithms.movingaverages; import org.junit.Test; diff --git a/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/MovingAverageWithApacheCommonsMathUnitTest.java b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/movingaverages/MovingAverageWithApacheCommonsMathUnitTest.java similarity index 96% rename from algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/MovingAverageWithApacheCommonsMathUnitTest.java rename to algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/movingaverages/MovingAverageWithApacheCommonsMathUnitTest.java index 14ff7c15ee..8d24b95b58 100644 --- a/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/MovingAverageWithApacheCommonsMathUnitTest.java +++ b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/movingaverages/MovingAverageWithApacheCommonsMathUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.movingaverages; +package com.baeldung.algorithms.movingaverages; import org.junit.Test; diff --git a/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/MovingAverageWithStreamBasedApproachUnitTest.java b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/movingaverages/MovingAverageWithStreamBasedApproachUnitTest.java similarity index 96% rename from algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/MovingAverageWithStreamBasedApproachUnitTest.java rename to algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/movingaverages/MovingAverageWithStreamBasedApproachUnitTest.java index ac2d1986d4..e51f508d6c 100644 --- a/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/movingaverages/MovingAverageWithStreamBasedApproachUnitTest.java +++ b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/movingaverages/MovingAverageWithStreamBasedApproachUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.movingaverages; +package com.baeldung.algorithms.movingaverages; import org.junit.Test; diff --git a/algorithms-modules/pom.xml b/algorithms-modules/pom.xml index 1ddb61c66a..d3f27f4fa8 100644 --- a/algorithms-modules/pom.xml +++ b/algorithms-modules/pom.xml @@ -26,7 +26,6 @@ algorithms-searching algorithms-sorting algorithms-sorting-2 - algorithms-miscellaneous-8