From fcfbae9d2ea12da3d007928389f935b941e61b0b Mon Sep 17 00:00:00 2001 From: MarianaPRio Date: Sun, 28 Aug 2022 16:01:03 -0300 Subject: [PATCH 1/3] Add ArmstrongNumber Signed-off-by: MarianaPRio --- .../algorithms/math/ArmstrongNumber.java | 48 +++++++++++++++++++ .../algorithms/math/ArmstrongNumberTest.java | 19 ++++++++ 2 files changed, 67 insertions(+) create mode 100644 src/main/java/com/williamfiset/algorithms/math/ArmstrongNumber.java create mode 100644 src/test/java/com/williamfiset/algorithms/math/ArmstrongNumberTest.java diff --git a/src/main/java/com/williamfiset/algorithms/math/ArmstrongNumber.java b/src/main/java/com/williamfiset/algorithms/math/ArmstrongNumber.java new file mode 100644 index 000000000..a33b369e3 --- /dev/null +++ b/src/main/java/com/williamfiset/algorithms/math/ArmstrongNumber.java @@ -0,0 +1,48 @@ +package main.java.com.williamfiset.algorithms.math; + +import java.util.*; + +import javax.security.auth.SubjectDomainCombiner; + +public class ArmstrongNumber { + /* + * Number of n digits that is equal to + * each of its digits is raised to the + * nth power. + * 153 (n = 3 digits) is equal to: + * 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153 + */ + public static boolean isArmstrongNumber(int num){ + int i, n; + double sum = 0; + double aux, temp; + // Calcule number of digits + i = num; + aux = 0; + while (i != 0){ + i /=10; + aux++; + } + // Calcule the of nth power of all digits + i = num; + while(i != 0){ + temp = i % 10; + sum = sum + Math.pow(temp, aux); + i/=10; + } + //Checks + if(num == sum){ + return true; + } + else{ + return false; + } + } + public static void main(String[] args) { + System.out.println(isArmstrongNumber(1)); //true + System.out.println(isArmstrongNumber(10)); //false + System.out.println(isArmstrongNumber(153)); //true + System.out.println(isArmstrongNumber(300)); //false + } + +} \ No newline at end of file diff --git a/src/test/java/com/williamfiset/algorithms/math/ArmstrongNumberTest.java b/src/test/java/com/williamfiset/algorithms/math/ArmstrongNumberTest.java new file mode 100644 index 000000000..1dbb3d963 --- /dev/null +++ b/src/test/java/com/williamfiset/algorithms/math/ArmstrongNumberTest.java @@ -0,0 +1,19 @@ +package test.java.com.williamfiset.algorithms.math; + +import static com.google.common.truth.Truth.assertThat; +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.*; +import org.junit.jupiter.api.DisplayName; + +public class ArmstrongNumberTest { + @Test + @DisplayName("Valid inputs and invalid inputs") + public void armstrongNumberTest(){ + ArmstrongNumber armstrong = new Armstrong(); + assertThat(armstrong.isArmstrongNumber(1)).isTrue(); + assertThat(armstrong.isArmstrongNumber(153)).isTrue(); + assertThat(armstrong.isArmstrongNumber(10)).isFalse(); + assertThat(armstrong.isArmstrongNumber(300)).isFalse(); + } +} \ No newline at end of file From b07771ec967114a0abd6d27e2304f597d570b74a Mon Sep 17 00:00:00 2001 From: MarianaPRio Date: Sun, 28 Aug 2022 17:33:56 -0300 Subject: [PATCH 2/3] MinToMax Signed-off-by: MarianaPRio --- .../algorithms/math/MinToMax.java | 55 +++++++++++++++ .../algorithms/math/MinToMaxTest.java | 69 +++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 src/main/java/com/williamfiset/algorithms/math/MinToMax.java create mode 100644 src/test/java/com/williamfiset/algorithms/math/MinToMaxTest.java diff --git a/src/main/java/com/williamfiset/algorithms/math/MinToMax.java b/src/main/java/com/williamfiset/algorithms/math/MinToMax.java new file mode 100644 index 000000000..2c49e2f26 --- /dev/null +++ b/src/main/java/com/williamfiset/algorithms/math/MinToMax.java @@ -0,0 +1,55 @@ +package main.java.com.williamfiset.algorithms.math; +import java.util.*; + +public class MinToMax { + /* + * Functionality to get the + * smallest, median and largest value + * from an array + */ + public static int MaxResult(int[] array){ + int n = array[0]; + + for(int i = 1; i < array.length; ++i){ + if(array[i] > n){ + n = array[i]; + } + } + return n; + } + public static float MedianResult(int[] array){ + float A = array[0]; + for(int i = 1; i < array.length; i++){ + A = A + array[i]; + } + return (A/array.length); + } + public static int MinResult(int[] array){ + int n = array[0]; + + for(int i = 1; i < array.length; ++i){ + if(array[i] < n){ + n = array[i]; + } + } + return n; + } + public static void main(String[] args){ + int[] array1 = {1,2,3,4,8}; + int[] array2 = {3,2,5}; + int[] array3 = {4,3,5,7}; + int[] array4 = {-1,0,-3,-9}; + System.out.println(MaxResult(array1)); //8 + System.out.println(MaxResult(array2)); //5 + System.out.println(MaxResult(array3)); //7 + System.out.println(MaxResult(array4)); //0 + System.out.println(MedianResult(array1)); //3.6 + System.out.println(MedianResult(array2)); //3.3 + System.out.println(MedianResult(array3)); //4.75 + System.out.println(MedianResult(array4)); //-3.25 + System.out.println(MinResult(array1)); //1 + System.out.println(MinResult(array2)); //2 + System.out.println(MinResult(array3)); //3 + System.out.println(MinResult(array4)); //-9 + } +} diff --git a/src/test/java/com/williamfiset/algorithms/math/MinToMaxTest.java b/src/test/java/com/williamfiset/algorithms/math/MinToMaxTest.java new file mode 100644 index 000000000..3d13f5a93 --- /dev/null +++ b/src/test/java/com/williamfiset/algorithms/math/MinToMaxTest.java @@ -0,0 +1,69 @@ +package test.java.com.williamfiset.algorithms.math; +import org.junit.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class MinToMaxTest { + //Min + @Test + public void testeMin1(){ + int[] array = {1,2,3,4,5,6,7,8,9,10}; + assertEquals(1, MinToMax.MinResult(array)); + } + @Test + public void testeMin2(){ + int[] array = {5,6,2,8,15}; + assertEquals(2, MinToMax.MinResult(array)); + } + @Test + public void testeMin3(){ + int[] array = {0,0,0,0,0,0}; + assertEquals(0, MinToMax.MinResult(array)); + } + @Test + public void testeMin4(){ + int[] array = {-10,-9,-2,-3,-7,-111}; + assertEquals(-111, MinToMax.MinResult(array)); + } + //Median + @Test + public void testeMedian1(){ + int[] array1 = {1,2,3,4,8}; + assertEquals(3.6, MinToMax.MedianResult(array)); + } + @Test + public void testeMedian2(){ + int[] array3 = {4,3,5,7}; + assertEquals(4.75, MinToMax.MedianResult(array)); + } + @Test + public void testeMedian3(){ + int[] array = {0,0,0,0,0,0}; + assertEquals(0, MinToMax.MedianResult(array)); + } + @Test + public void testeMedian4(){ + int[] array4 = {-1,0,-3,-9}; + assertEquals(-3.25, MinToMax.MedianResult(array)); + } + //Max + @Test + public void testeMax1(){ + int[] array = {1,2,3,4,5,6,7,8,9,10}; + assertEquals(10, MinToMax.MaxResult(array)); + } + @Test + public void testeMax2(){ + int[] array = {5,6,2,8,15}; + assertEquals(15, MinToMax.MaxResult(array)); + } + @Test + public void testeMax3(){ + int[] array = {0,0,0,0,0,0}; + assertEquals(0, MinToMax.MaxResult(array)); + } + @Test + public void testeMax4(){ + int[] array = {-10,-9,-2,-3,-7,-111}; + assertEquals(-2, MinToMax.MaxResult(array)); + } +} \ No newline at end of file From a4e24d1033fa3e4ab6d5e7ced6c721045b4f4719 Mon Sep 17 00:00:00 2001 From: MarianaPRio Date: Sun, 28 Aug 2022 19:47:02 -0300 Subject: [PATCH 3/3] Fix Test Signed-off-by: MarianaPRio --- .../algorithms/math/MinToMax.java | 10 +++++---- .../algorithms/math/ArmstrongNumberTest.java | 21 ++++++++++--------- .../algorithms/math/MinToMaxTest.java | 14 ++++++------- 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/williamfiset/algorithms/math/MinToMax.java b/src/main/java/com/williamfiset/algorithms/math/MinToMax.java index 2c49e2f26..3bb26dbff 100644 --- a/src/main/java/com/williamfiset/algorithms/math/MinToMax.java +++ b/src/main/java/com/williamfiset/algorithms/math/MinToMax.java @@ -1,12 +1,12 @@ package main.java.com.williamfiset.algorithms.math; -import java.util.*; - +import java.text.DecimalFormat; public class MinToMax { /* * Functionality to get the * smallest, median and largest value * from an array */ + public static int MaxResult(int[] array){ int n = array[0]; @@ -17,12 +17,14 @@ public static int MaxResult(int[] array){ } return n; } + public static float MedianResult(int[] array){ - float A = array[0]; + float A = array[0]; for(int i = 1; i < array.length; i++){ A = A + array[i]; } - return (A/array.length); + float n = (A/array.length); + return n; } public static int MinResult(int[] array){ int n = array[0]; diff --git a/src/test/java/com/williamfiset/algorithms/math/ArmstrongNumberTest.java b/src/test/java/com/williamfiset/algorithms/math/ArmstrongNumberTest.java index 1dbb3d963..e08dc5c2c 100644 --- a/src/test/java/com/williamfiset/algorithms/math/ArmstrongNumberTest.java +++ b/src/test/java/com/williamfiset/algorithms/math/ArmstrongNumberTest.java @@ -1,19 +1,20 @@ package test.java.com.williamfiset.algorithms.math; -import static com.google.common.truth.Truth.assertThat; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; -import org.junit.*; import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +class ArmstrongNumberTest { -public class ArmstrongNumberTest { @Test @DisplayName("Valid inputs and invalid inputs") public void armstrongNumberTest(){ - ArmstrongNumber armstrong = new Armstrong(); - assertThat(armstrong.isArmstrongNumber(1)).isTrue(); - assertThat(armstrong.isArmstrongNumber(153)).isTrue(); - assertThat(armstrong.isArmstrongNumber(10)).isFalse(); - assertThat(armstrong.isArmstrongNumber(300)).isFalse(); + assertTrue(ArmstrongNumber.isArmstrongNumber(1)); + assertTrue(ArmstrongNumber.isArmstrongNumber(153)); + assertFalse(ArmstrongNumber.isArmstrongNumber(10)); + assertFalse(ArmstrongNumber.isArmstrongNumber(300)); } -} \ No newline at end of file + +} diff --git a/src/test/java/com/williamfiset/algorithms/math/MinToMaxTest.java b/src/test/java/com/williamfiset/algorithms/math/MinToMaxTest.java index 3d13f5a93..d6d913d88 100644 --- a/src/test/java/com/williamfiset/algorithms/math/MinToMaxTest.java +++ b/src/test/java/com/williamfiset/algorithms/math/MinToMaxTest.java @@ -27,23 +27,23 @@ public void testeMin4(){ //Median @Test public void testeMedian1(){ - int[] array1 = {1,2,3,4,8}; - assertEquals(3.6, MinToMax.MedianResult(array)); + int[] array1 = {2,2,4,4,8}; + assertEquals(4, MinToMax.MedianResult(array1)); } @Test public void testeMedian2(){ - int[] array3 = {4,3,5,7}; - assertEquals(4.75, MinToMax.MedianResult(array)); + int[] array2 = {4,3,5,7}; + assertEquals(4.75, MinToMax.MedianResult(array2)); } @Test public void testeMedian3(){ - int[] array = {0,0,0,0,0,0}; - assertEquals(0, MinToMax.MedianResult(array)); + int[] array3 = {0,0,0,0,0,0}; + assertEquals(0, MinToMax.MedianResult(array3)); } @Test public void testeMedian4(){ int[] array4 = {-1,0,-3,-9}; - assertEquals(-3.25, MinToMax.MedianResult(array)); + assertEquals(-3.25, MinToMax.MedianResult(array4)); } //Max @Test