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