From c52b2a649c776e78ef22ea3b062e2098bf768fa9 Mon Sep 17 00:00:00 2001 From: RaghavTaneja <97575679+RaghavTaneja@users.noreply.github.com> Date: Sun, 1 May 2022 02:32:03 -0500 Subject: [PATCH] Add Standard Deviation (#3039) --- .../maths/StandardDeviation.java | 22 +++++++++++++ .../maths/StandardDeviationTest.java | 32 +++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 src/main/java/com/thealgorithms/maths/StandardDeviation.java create mode 100644 src/test/java/com/thealgorithms/maths/StandardDeviationTest.java diff --git a/src/main/java/com/thealgorithms/maths/StandardDeviation.java b/src/main/java/com/thealgorithms/maths/StandardDeviation.java new file mode 100644 index 000000000..70885eee1 --- /dev/null +++ b/src/main/java/com/thealgorithms/maths/StandardDeviation.java @@ -0,0 +1,22 @@ +package com.thealgorithms.maths; + +public class StandardDeviation { + + public static double stdDev(double[] data) + { + double var = 0; + double avg = 0; + for (int i = 0; i < data.length; i++) + { + avg += data[i]; + } + avg /= data.length; + for (int j = 0; j < data.length; j++) + { + var += Math.pow((data[j] - avg), 2); + } + var /= data.length; + return Math.sqrt(var); + } + +} diff --git a/src/test/java/com/thealgorithms/maths/StandardDeviationTest.java b/src/test/java/com/thealgorithms/maths/StandardDeviationTest.java new file mode 100644 index 000000000..5a7737602 --- /dev/null +++ b/src/test/java/com/thealgorithms/maths/StandardDeviationTest.java @@ -0,0 +1,32 @@ +package com.thealgorithms.maths; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class StandardDeviationTest{ + @Test + void test1() + { + double[] t1 = new double[]{1,1,1,1,1}; + Assertions.assertEquals(StandardDeviation.stdDev(t1), 0.0); + } + @Test + void test2() + { + double[] t2 = new double[]{1,2,3,4,5,6,7,8,9,10}; + Assertions.assertEquals(StandardDeviation.stdDev(t2), 2.8722813232690143); + } + @Test + void test3() + { + double[] t3= new double[]{1.1, 8.5, 20.3, 2.4, 6.2}; + Assertions.assertEquals(StandardDeviation.stdDev(t3), 6.8308125431752265); + } + @Test + void test4() + { + double[] t4 = new double[]{3.14, 2.22222, 9.89898989, 100.00045, 56.7}; + Assertions.assertEquals(StandardDeviation.stdDev(t4), 38.506117353865775); + } +} +