From fcb8102287cce5b194f45a5b2f7b3fb514d971bb Mon Sep 17 00:00:00 2001 From: Shreya123714 Date: Thu, 31 Oct 2024 15:47:15 +0530 Subject: [PATCH 01/15] Added EMAFilter.java and EMAFilterTest.java --- .../thealgorithms/audiofilters/EMAFilter.java | 54 +++++++++++++++++++ .../audiofilters/EMAFilterTest.java | 45 ++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 src/main/java/com/thealgorithms/audiofilters/EMAFilter.java create mode 100644 src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java diff --git a/src/main/java/com/thealgorithms/audiofilters/EMAFilter.java b/src/main/java/com/thealgorithms/audiofilters/EMAFilter.java new file mode 100644 index 000000000000..edc6cb2e6015 --- /dev/null +++ b/src/main/java/com/thealgorithms/audiofilters/EMAFilter.java @@ -0,0 +1,54 @@ +package com.thealgorithms.audiofilters; + +/** + * Exponential Moving Average (EMA) Filter for smoothing audio signals. + * + *

This filter applies an exponential moving average to a sequence of audio + * signal values, making it useful for smoothing out rapid fluctuations. + * The smoothing factor (alpha) controls the degree of smoothing. + * + *

Based on the definition from + * Wikipedia link. + */ +public class EMAFilter { + + private final double alpha; + private double emaValue; + + /** + * Constructs an EMA filter with a given smoothing factor. + * + * @param alpha Smoothing factor (0 < alpha <= 1) + * @throws IllegalArgumentException if alpha is not in (0, 1] + */ + public EMAFilter(double alpha) { + if (alpha <= 0 || alpha > 1) { + throw new IllegalArgumentException("Alpha must be between 0 and 1."); + } + this.alpha = alpha; + this.emaValue = 0.0; + } + + /** + * Applies the EMA filter to an audio signal array. + * + * @param audioSignal Array of audio samples to process + * @return Array of processed (smoothed) samples + */ + public double[] apply(double[] audioSignal) { + if (audioSignal.length == 0) { + return new double[0]; + } + + double[] emaSignal = new double[audioSignal.length]; + emaValue = audioSignal[0]; + emaSignal[0] = emaValue; + + for (int i = 1; i < audioSignal.length; i++) { + emaValue = alpha * audioSignal[i] + (1 - alpha) * emaValue; + emaSignal[i] = emaValue; + } + + return emaSignal; + } +} diff --git a/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java b/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java new file mode 100644 index 000000000000..5bd7e268f83c --- /dev/null +++ b/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java @@ -0,0 +1,45 @@ +package com.thealgorithms.audiofilters; + +import static org.junit.jupiter.api.Assertions.assertArrayEquals; +import org.junit.jupiter.api.Test; + +public class EMAFilterTest { + + @Test + public void testApplyBasicSignal() { + EMAFilter emaFilter = new EMAFilter(0.2); + double[] audioSignal = {0.1, 0.5, 0.8, 0.6, 0.3, 0.9, 0.4}; + double[] expectedOutput = {0.1, 0.18, 0.304, 0.3632, 0.35056, 0.460448, 0.4483584}; + + double[] result = emaFilter.apply(audioSignal); + + assertArrayEquals(expectedOutput, result, 1e-5); + } + + @Test + public void testApplyEmptySignal() { + EMAFilter emaFilter = new EMAFilter(0.2); + double[] audioSignal = {}; + double[] expectedOutput = {}; + + double[] result = emaFilter.apply(audioSignal); + + assertArrayEquals(expectedOutput, result); + } + + @Test + public void testAlphaBounds() { + EMAFilter emaFilterMin = new EMAFilter(0.01); + EMAFilter emaFilterMax = new EMAFilter(1.0); + + double[] audioSignal = {1.0, 1.0, 1.0, 1.0}; + + // Minimal smoothing (alpha close to 0) + double[] resultMin = emaFilterMin.apply(audioSignal); + + // Maximum smoothing (alpha = 1, output should match input) + double[] resultMax = emaFilterMax.apply(audioSignal); + + assertArrayEquals(audioSignal, resultMax, 1e-5); + } +} From d4e0cd8bb24cc5000c3633e16a83bca51de6b512 Mon Sep 17 00:00:00 2001 From: Shreya <95279016+Shreya123714@users.noreply.github.com> Date: Thu, 31 Oct 2024 16:03:38 +0530 Subject: [PATCH 02/15] Update EMAFilter.java Removed Trailing spaces from EMAFilter.java --- .../java/com/thealgorithms/audiofilters/EMAFilter.java | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/thealgorithms/audiofilters/EMAFilter.java b/src/main/java/com/thealgorithms/audiofilters/EMAFilter.java index edc6cb2e6015..43a8d34e53b4 100644 --- a/src/main/java/com/thealgorithms/audiofilters/EMAFilter.java +++ b/src/main/java/com/thealgorithms/audiofilters/EMAFilter.java @@ -10,11 +10,9 @@ *

Based on the definition from * Wikipedia link. */ -public class EMAFilter { - +public class EMAFilter { private final double alpha; private double emaValue; - /** * Constructs an EMA filter with a given smoothing factor. * @@ -28,7 +26,6 @@ public EMAFilter(double alpha) { this.alpha = alpha; this.emaValue = 0.0; } - /** * Applies the EMA filter to an audio signal array. * @@ -39,16 +36,14 @@ public double[] apply(double[] audioSignal) { if (audioSignal.length == 0) { return new double[0]; } - double[] emaSignal = new double[audioSignal.length]; emaValue = audioSignal[0]; emaSignal[0] = emaValue; - + for (int i = 1; i < audioSignal.length; i++) { emaValue = alpha * audioSignal[i] + (1 - alpha) * emaValue; emaSignal[i] = emaValue; } - return emaSignal; } } From fa2348e78af0729ad74b767bdcc6789272cf05ee Mon Sep 17 00:00:00 2001 From: Shreya <95279016+Shreya123714@users.noreply.github.com> Date: Thu, 31 Oct 2024 16:05:57 +0530 Subject: [PATCH 03/15] Update EMAFilterTest.java Removed trailing spaces from EMAFilterTest.java --- .../com/thealgorithms/audiofilters/EMAFilterTest.java | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java b/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java index 5bd7e268f83c..4684852f28da 100644 --- a/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java +++ b/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java @@ -10,36 +10,26 @@ public void testApplyBasicSignal() { EMAFilter emaFilter = new EMAFilter(0.2); double[] audioSignal = {0.1, 0.5, 0.8, 0.6, 0.3, 0.9, 0.4}; double[] expectedOutput = {0.1, 0.18, 0.304, 0.3632, 0.35056, 0.460448, 0.4483584}; - double[] result = emaFilter.apply(audioSignal); - assertArrayEquals(expectedOutput, result, 1e-5); } - @Test public void testApplyEmptySignal() { EMAFilter emaFilter = new EMAFilter(0.2); double[] audioSignal = {}; double[] expectedOutput = {}; - double[] result = emaFilter.apply(audioSignal); - assertArrayEquals(expectedOutput, result); } - @Test public void testAlphaBounds() { EMAFilter emaFilterMin = new EMAFilter(0.01); EMAFilter emaFilterMax = new EMAFilter(1.0); - double[] audioSignal = {1.0, 1.0, 1.0, 1.0}; - // Minimal smoothing (alpha close to 0) double[] resultMin = emaFilterMin.apply(audioSignal); - // Maximum smoothing (alpha = 1, output should match input) double[] resultMax = emaFilterMax.apply(audioSignal); - assertArrayEquals(audioSignal, resultMax, 1e-5); } } From 52894dd5ba07a10cde9e972d7d824490e5271695 Mon Sep 17 00:00:00 2001 From: Shreya <95279016+Shreya123714@users.noreply.github.com> Date: Thu, 31 Oct 2024 16:27:02 +0530 Subject: [PATCH 04/15] Update EMAFilter.java Tried Removing Trailing spaces from EMAFilter.java --- src/main/java/com/thealgorithms/audiofilters/EMAFilter.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/thealgorithms/audiofilters/EMAFilter.java b/src/main/java/com/thealgorithms/audiofilters/EMAFilter.java index 43a8d34e53b4..f3832e4ac95a 100644 --- a/src/main/java/com/thealgorithms/audiofilters/EMAFilter.java +++ b/src/main/java/com/thealgorithms/audiofilters/EMAFilter.java @@ -10,7 +10,7 @@ *

Based on the definition from * Wikipedia link. */ -public class EMAFilter { +public class EMAFilter { private final double alpha; private double emaValue; /** @@ -39,11 +39,11 @@ public double[] apply(double[] audioSignal) { double[] emaSignal = new double[audioSignal.length]; emaValue = audioSignal[0]; emaSignal[0] = emaValue; - for (int i = 1; i < audioSignal.length; i++) { emaValue = alpha * audioSignal[i] + (1 - alpha) * emaValue; emaSignal[i] = emaValue; } - return emaSignal; + } + return emaSignal; } } From b160af8ca221907a71838069e6d7ef1930c31281 Mon Sep 17 00:00:00 2001 From: Shreya <95279016+Shreya123714@users.noreply.github.com> Date: Thu, 31 Oct 2024 16:36:19 +0530 Subject: [PATCH 05/15] Update EMAFilter.java Removed Extra braces --- src/main/java/com/thealgorithms/audiofilters/EMAFilter.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/com/thealgorithms/audiofilters/EMAFilter.java b/src/main/java/com/thealgorithms/audiofilters/EMAFilter.java index f3832e4ac95a..05efef41903e 100644 --- a/src/main/java/com/thealgorithms/audiofilters/EMAFilter.java +++ b/src/main/java/com/thealgorithms/audiofilters/EMAFilter.java @@ -43,7 +43,5 @@ public double[] apply(double[] audioSignal) { emaValue = alpha * audioSignal[i] + (1 - alpha) * emaValue; emaSignal[i] = emaValue; } - } - return emaSignal; - } + return emaSignal; } From a88d5fa7bdee8acb43ff6a3defdc67ab2bd4cddf Mon Sep 17 00:00:00 2001 From: Shreya <95279016+Shreya123714@users.noreply.github.com> Date: Thu, 31 Oct 2024 16:41:04 +0530 Subject: [PATCH 06/15] Update EMAFilter.java --- src/main/java/com/thealgorithms/audiofilters/EMAFilter.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/thealgorithms/audiofilters/EMAFilter.java b/src/main/java/com/thealgorithms/audiofilters/EMAFilter.java index 05efef41903e..0dd23e937953 100644 --- a/src/main/java/com/thealgorithms/audiofilters/EMAFilter.java +++ b/src/main/java/com/thealgorithms/audiofilters/EMAFilter.java @@ -44,4 +44,5 @@ public double[] apply(double[] audioSignal) { emaSignal[i] = emaValue; } return emaSignal; + } } From 3eabf9655984509c6895dd77651f93eb480d9904 Mon Sep 17 00:00:00 2001 From: Shreya <95279016+Shreya123714@users.noreply.github.com> Date: Thu, 31 Oct 2024 17:03:24 +0530 Subject: [PATCH 07/15] Update EMAFilterTest.java --- src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java b/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java index 4684852f28da..0b10522a9c0b 100644 --- a/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java +++ b/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java @@ -28,6 +28,7 @@ public void testAlphaBounds() { double[] audioSignal = {1.0, 1.0, 1.0, 1.0}; // Minimal smoothing (alpha close to 0) double[] resultMin = emaFilterMin.apply(audioSignal); + assertArrayEquals(audioSignal, resultMin, 1e-5); // Maximum smoothing (alpha = 1, output should match input) double[] resultMax = emaFilterMax.apply(audioSignal); assertArrayEquals(audioSignal, resultMax, 1e-5); From d3def9efc741e7928507bc42a6b71bc4eaca9c78 Mon Sep 17 00:00:00 2001 From: Shreya <95279016+Shreya123714@users.noreply.github.com> Date: Thu, 31 Oct 2024 18:22:13 +0530 Subject: [PATCH 08/15] Update EMAFilterTest.java Formatted the EMAFilterTest.java --- .../audiofilters/EMAFilterTest.java | 78 ++++++++++++------- 1 file changed, 49 insertions(+), 29 deletions(-) diff --git a/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java b/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java index 0b10522a9c0b..660cf4d1a387 100644 --- a/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java +++ b/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java @@ -1,36 +1,56 @@ package com.thealgorithms.audiofilters; -import static org.junit.jupiter.api.Assertions.assertArrayEquals; -import org.junit.jupiter.api.Test; +/** + * Exponential Moving Average (EMA) Filter for smoothing audio signals. + * + *

+ * This filter applies an exponential moving average to a sequence of audio + * signal values, making it useful for smoothing out rapid fluctuations. + * The smoothing factor (alpha) controls the degree of smoothing. + * + *

+ * Based on the definition from + * Wikipedia link. + */ +public class EMAFilter { -public class EMAFilterTest { + private final double alpha; + private double emaValue; - @Test - public void testApplyBasicSignal() { - EMAFilter emaFilter = new EMAFilter(0.2); - double[] audioSignal = {0.1, 0.5, 0.8, 0.6, 0.3, 0.9, 0.4}; - double[] expectedOutput = {0.1, 0.18, 0.304, 0.3632, 0.35056, 0.460448, 0.4483584}; - double[] result = emaFilter.apply(audioSignal); - assertArrayEquals(expectedOutput, result, 1e-5); + /** + * Constructs an EMA filter with a given smoothing factor. + * + * @param alpha Smoothing factor (0 < alpha <= 1) + * @throws IllegalArgumentException if alpha is not in (0, 1] + */ + public EMAFilter(double alpha) { + if (alpha <= 0 || alpha > 1) { + throw new IllegalArgumentException("Alpha must be between 0 and 1."); + } + this.alpha = alpha; + this.emaValue = 0.0; } - @Test - public void testApplyEmptySignal() { - EMAFilter emaFilter = new EMAFilter(0.2); - double[] audioSignal = {}; - double[] expectedOutput = {}; - double[] result = emaFilter.apply(audioSignal); - assertArrayEquals(expectedOutput, result); - } - @Test - public void testAlphaBounds() { - EMAFilter emaFilterMin = new EMAFilter(0.01); - EMAFilter emaFilterMax = new EMAFilter(1.0); - double[] audioSignal = {1.0, 1.0, 1.0, 1.0}; - // Minimal smoothing (alpha close to 0) - double[] resultMin = emaFilterMin.apply(audioSignal); - assertArrayEquals(audioSignal, resultMin, 1e-5); - // Maximum smoothing (alpha = 1, output should match input) - double[] resultMax = emaFilterMax.apply(audioSignal); - assertArrayEquals(audioSignal, resultMax, 1e-5); + + /** + * Applies the EMA filter to an audio signal array. + * + * @param audioSignal Array of audio samples to process + * @return Array of processed (smoothed) samples + */ + public double[] apply(double[] audioSignal) { + if (audioSignal.length == 0) { + return new double[0]; + } + + double[] emaSignal = new double[audioSignal.length]; + emaValue = audioSignal[0]; + emaSignal[0] = emaValue; + + for (int i = 1; i < audioSignal.length; i++) { + emaValue = alpha * audioSignal[i] + (1 - alpha) * emaValue; + emaSignal[i] = emaValue; + } + + return emaSignal; } } From faff76633515e11d72496392ac008cf1c988b1c4 Mon Sep 17 00:00:00 2001 From: Shreya <95279016+Shreya123714@users.noreply.github.com> Date: Thu, 31 Oct 2024 18:26:18 +0530 Subject: [PATCH 09/15] Update EMAFilterTest.java --- .../audiofilters/EMAFilterTest.java | 89 ++++++++----------- 1 file changed, 39 insertions(+), 50 deletions(-) diff --git a/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java b/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java index 660cf4d1a387..fc405caf9160 100644 --- a/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java +++ b/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java @@ -1,56 +1,45 @@ package com.thealgorithms.audiofilters; -/** - * Exponential Moving Average (EMA) Filter for smoothing audio signals. - * - *

- * This filter applies an exponential moving average to a sequence of audio - * signal values, making it useful for smoothing out rapid fluctuations. - * The smoothing factor (alpha) controls the degree of smoothing. - * - *

- * Based on the definition from - * Wikipedia link. - */ -public class EMAFilter { - - private final double alpha; - private double emaValue; - - /** - * Constructs an EMA filter with a given smoothing factor. - * - * @param alpha Smoothing factor (0 < alpha <= 1) - * @throws IllegalArgumentException if alpha is not in (0, 1] - */ - public EMAFilter(double alpha) { - if (alpha <= 0 || alpha > 1) { - throw new IllegalArgumentException("Alpha must be between 0 and 1."); - } - this.alpha = alpha; - this.emaValue = 0.0; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; +import org.junit.jupiter.api.Test; + +public class EMAFilterTest { + + @Test + public void testApplyBasicSignal() { + EMAFilter emaFilter = new EMAFilter(0.2); + double[] audioSignal = { 0.1, 0.5, 0.8, 0.6, 0.3, 0.9, 0.4 }; + double[] expectedOutput = { 0.1, 0.18, 0.304, 0.3632, 0.35056, 0.460448, 0.4483584 }; + + double[] result = emaFilter.apply(audioSignal); + + assertArrayEquals(expectedOutput, result, 1e-5); + } + + @Test + public void testApplyEmptySignal() { + EMAFilter emaFilter = new EMAFilter(0.2); + double[] audioSignal = {}; + double[] expectedOutput = {}; + + double[] result = emaFilter.apply(audioSignal); + + assertArrayEquals(expectedOutput, result); } - /** - * Applies the EMA filter to an audio signal array. - * - * @param audioSignal Array of audio samples to process - * @return Array of processed (smoothed) samples - */ - public double[] apply(double[] audioSignal) { - if (audioSignal.length == 0) { - return new double[0]; - } - - double[] emaSignal = new double[audioSignal.length]; - emaValue = audioSignal[0]; - emaSignal[0] = emaValue; - - for (int i = 1; i < audioSignal.length; i++) { - emaValue = alpha * audioSignal[i] + (1 - alpha) * emaValue; - emaSignal[i] = emaValue; - } - - return emaSignal; + @Test + public void testAlphaBounds() { + EMAFilter emaFilterMin = new EMAFilter(0.01); + EMAFilter emaFilterMax = new EMAFilter(1.0); + + double[] audioSignal = { 1.0, 1.0, 1.0, 1.0 }; + + // Minimal smoothing (alpha close to 0) + double[] resultMin = emaFilterMin.apply(audioSignal); + + // Maximum smoothing (alpha = 1, output should match input) + double[] resultMax = emaFilterMax.apply(audioSignal); + + assertArrayEquals(audioSignal, resultMax, 1e-5); } } From dcb85f8a763670d3f8b327cb106145ada92f830c Mon Sep 17 00:00:00 2001 From: Shreya <95279016+Shreya123714@users.noreply.github.com> Date: Thu, 31 Oct 2024 18:39:03 +0530 Subject: [PATCH 10/15] Update EMAFilterTest.java --- .../java/com/thealgorithms/audiofilters/EMAFilterTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java b/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java index fc405caf9160..3636942d7b7d 100644 --- a/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java +++ b/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java @@ -36,7 +36,9 @@ public void testAlphaBounds() { // Minimal smoothing (alpha close to 0) double[] resultMin = emaFilterMin.apply(audioSignal); - + + assertArrayEquals(audioSignal, resultMax, 1e-5); + // Maximum smoothing (alpha = 1, output should match input) double[] resultMax = emaFilterMax.apply(audioSignal); From 5062c1fea2aea89706fe782f3a603bee72fa4dd3 Mon Sep 17 00:00:00 2001 From: Shreya <95279016+Shreya123714@users.noreply.github.com> Date: Thu, 31 Oct 2024 18:43:35 +0530 Subject: [PATCH 11/15] Update EMAFilterTest.java Corrected the Assertion in EMAFilterTest.java --- src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java b/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java index 3636942d7b7d..e5743c96ff44 100644 --- a/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java +++ b/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java @@ -37,7 +37,7 @@ public void testAlphaBounds() { // Minimal smoothing (alpha close to 0) double[] resultMin = emaFilterMin.apply(audioSignal); - assertArrayEquals(audioSignal, resultMax, 1e-5); + assertArrayEquals(audioSignal, resultMin, 1e-5); // Maximum smoothing (alpha = 1, output should match input) double[] resultMax = emaFilterMax.apply(audioSignal); From 3f427f8e11a54d571021b5c40d372bb1b3425d09 Mon Sep 17 00:00:00 2001 From: Shreya <95279016+Shreya123714@users.noreply.github.com> Date: Thu, 31 Oct 2024 18:58:08 +0530 Subject: [PATCH 12/15] Update EMAFilterTest.java Remove trailing spaces --- .../java/com/thealgorithms/audiofilters/EMAFilterTest.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java b/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java index e5743c96ff44..76166d551a6e 100644 --- a/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java +++ b/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java @@ -36,12 +36,9 @@ public void testAlphaBounds() { // Minimal smoothing (alpha close to 0) double[] resultMin = emaFilterMin.apply(audioSignal); - assertArrayEquals(audioSignal, resultMin, 1e-5); - // Maximum smoothing (alpha = 1, output should match input) double[] resultMax = emaFilterMax.apply(audioSignal); - assertArrayEquals(audioSignal, resultMax, 1e-5); } } From 0705291687f149430ee7aa0b7af6a0b7d743681b Mon Sep 17 00:00:00 2001 From: Shreya <95279016+Shreya123714@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:37:01 +0530 Subject: [PATCH 13/15] Update EMAFilterTest.java Corrected the formatting error --- .../com/thealgorithms/audiofilters/EMAFilterTest.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java b/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java index 76166d551a6e..4931acff3b04 100644 --- a/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java +++ b/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java @@ -8,9 +8,9 @@ public class EMAFilterTest { @Test public void testApplyBasicSignal() { EMAFilter emaFilter = new EMAFilter(0.2); - double[] audioSignal = { 0.1, 0.5, 0.8, 0.6, 0.3, 0.9, 0.4 }; - double[] expectedOutput = { 0.1, 0.18, 0.304, 0.3632, 0.35056, 0.460448, 0.4483584 }; - + double[] audioSignal = {0.1, 0.5, 0.8, 0.6, 0.3, 0.9, 0.4}; + double[] expectedOutput = {0.1, 0.18, 0.304, 0.3632, 0.35056, 0.460448, 0.4483584}; + double[] result = emaFilter.apply(audioSignal); assertArrayEquals(expectedOutput, result, 1e-5); @@ -32,11 +32,12 @@ public void testAlphaBounds() { EMAFilter emaFilterMin = new EMAFilter(0.01); EMAFilter emaFilterMax = new EMAFilter(1.0); - double[] audioSignal = { 1.0, 1.0, 1.0, 1.0 }; - + double[] audioSignal = {1.0, 1.0, 1.0, 1.0}; + // Minimal smoothing (alpha close to 0) double[] resultMin = emaFilterMin.apply(audioSignal); assertArrayEquals(audioSignal, resultMin, 1e-5); + // Maximum smoothing (alpha = 1, output should match input) double[] resultMax = emaFilterMax.apply(audioSignal); assertArrayEquals(audioSignal, resultMax, 1e-5); From 41b62f45d0818d0b31efd2d97e68343f41d43ca8 Mon Sep 17 00:00:00 2001 From: Shreya <95279016+Shreya123714@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:41:57 +0530 Subject: [PATCH 14/15] Update EMAFilterTest.java I hope it is fine now --- .../com/thealgorithms/audiofilters/EMAFilterTest.java | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java b/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java index 4931acff3b04..a19d206f42ed 100644 --- a/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java +++ b/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java @@ -10,9 +10,7 @@ public void testApplyBasicSignal() { EMAFilter emaFilter = new EMAFilter(0.2); double[] audioSignal = {0.1, 0.5, 0.8, 0.6, 0.3, 0.9, 0.4}; double[] expectedOutput = {0.1, 0.18, 0.304, 0.3632, 0.35056, 0.460448, 0.4483584}; - double[] result = emaFilter.apply(audioSignal); - assertArrayEquals(expectedOutput, result, 1e-5); } @@ -21,9 +19,7 @@ public void testApplyEmptySignal() { EMAFilter emaFilter = new EMAFilter(0.2); double[] audioSignal = {}; double[] expectedOutput = {}; - double[] result = emaFilter.apply(audioSignal); - assertArrayEquals(expectedOutput, result); } @@ -31,13 +27,12 @@ public void testApplyEmptySignal() { public void testAlphaBounds() { EMAFilter emaFilterMin = new EMAFilter(0.01); EMAFilter emaFilterMax = new EMAFilter(1.0); + double[] audioSignal = {1.0, 1.0, 1.0, 1.0}; - double[] audioSignal = {1.0, 1.0, 1.0, 1.0}; - // Minimal smoothing (alpha close to 0) double[] resultMin = emaFilterMin.apply(audioSignal); assertArrayEquals(audioSignal, resultMin, 1e-5); - + // Maximum smoothing (alpha = 1, output should match input) double[] resultMax = emaFilterMax.apply(audioSignal); assertArrayEquals(audioSignal, resultMax, 1e-5); From 4deee381abfee46fc28f09d9271aef07177def6a Mon Sep 17 00:00:00 2001 From: Shreya <95279016+Shreya123714@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:53:39 +0530 Subject: [PATCH 15/15] Update EMAFilterTest.java --- src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java b/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java index a19d206f42ed..f2338d3d8296 100644 --- a/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java +++ b/src/test/java/com/thealgorithms/audiofilters/EMAFilterTest.java @@ -1,6 +1,7 @@ package com.thealgorithms.audiofilters; import static org.junit.jupiter.api.Assertions.assertArrayEquals; + import org.junit.jupiter.api.Test; public class EMAFilterTest {