From d44398ea504f3bed2c3e0a01cd2ad2b621f6b9d9 Mon Sep 17 00:00:00 2001 From: alxkm Date: Thu, 22 Aug 2024 21:33:53 +0200 Subject: [PATCH 1/7] refactor: FloydTriangle --- .../thealgorithms/others/FloydTriangle.java | 28 +++++++++------ .../others/FloydTriangleTest.java | 36 +++++++++++++++++++ 2 files changed, 53 insertions(+), 11 deletions(-) create mode 100644 src/test/java/com/thealgorithms/others/FloydTriangleTest.java diff --git a/src/main/java/com/thealgorithms/others/FloydTriangle.java b/src/main/java/com/thealgorithms/others/FloydTriangle.java index fbeaec339248..bc17f3c49bcb 100644 --- a/src/main/java/com/thealgorithms/others/FloydTriangle.java +++ b/src/main/java/com/thealgorithms/others/FloydTriangle.java @@ -1,22 +1,28 @@ package com.thealgorithms.others; -import java.util.Scanner; - final class FloydTriangle { private FloydTriangle() { } - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - System.out.println("Enter the number of rows which you want in your Floyd Triangle: "); - int r = sc.nextInt(); - int n = 0; - sc.close(); - for (int i = 0; i < r; i++) { + /** + * Generates a Floyd Triangle with the specified number of rows. + * + * @param rows The number of rows in the triangle. + * @return A string representing the Floyd Triangle. + */ + public static String generateFloydTriangle(int rows) { + StringBuilder triangle = new StringBuilder(); + int number = 1; + + for (int i = 0; i < rows; i++) { for (int j = 0; j <= i; j++) { - System.out.print(++n + " "); + triangle.append(number++).append(" "); + } + if (i < rows - 1) { + triangle.append("\n"); } - System.out.println(); } + + return triangle.toString(); } } diff --git a/src/test/java/com/thealgorithms/others/FloydTriangleTest.java b/src/test/java/com/thealgorithms/others/FloydTriangleTest.java new file mode 100644 index 000000000000..fa9d0964b4fd --- /dev/null +++ b/src/test/java/com/thealgorithms/others/FloydTriangleTest.java @@ -0,0 +1,36 @@ +package com.thealgorithms.others; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class FloydTriangleTest { + + @Test + public void testGenerateFloydTriangleWithValidInput() { + String expectedOutput = "1 \n2 3 \n4 5 6 "; + assertEquals(expectedOutput, FloydTriangle.generateFloydTriangle(3)); + } + + @Test + public void testGenerateFloydTriangleWithOneRow() { + String expectedOutput = "1 "; + assertEquals(expectedOutput, FloydTriangle.generateFloydTriangle(1)); + } + + @Test + public void testGenerateFloydTriangleWithZeroRows() { + assertEquals("", FloydTriangle.generateFloydTriangle(0)); + } + + @Test + public void testGenerateFloydTriangleWithNegativeRows() { + assertEquals("", FloydTriangle.generateFloydTriangle(-3)); + } + + @Test + public void testGenerateFloydTriangleWithMultipleRows() { + String expectedOutput = "1 \n2 3 \n4 5 6 \n7 8 9 10 \n11 12 13 14 15 "; + assertEquals(expectedOutput, FloydTriangle.generateFloydTriangle(5)); + } +} From d7ea4438f9fd44db693bbe3064eeef7a74d2b0de Mon Sep 17 00:00:00 2001 From: alxkm Date: Thu, 22 Aug 2024 21:35:50 +0200 Subject: [PATCH 2/7] checkstyle: fix import ordering --- src/test/java/com/thealgorithms/others/FloydTriangleTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/thealgorithms/others/FloydTriangleTest.java b/src/test/java/com/thealgorithms/others/FloydTriangleTest.java index fa9d0964b4fd..63a370ba6f81 100644 --- a/src/test/java/com/thealgorithms/others/FloydTriangleTest.java +++ b/src/test/java/com/thealgorithms/others/FloydTriangleTest.java @@ -1,9 +1,9 @@ package com.thealgorithms.others; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; + public class FloydTriangleTest { @Test From 7dcc34d3fbc41be8123600fe674470ec05e10d27 Mon Sep 17 00:00:00 2001 From: alxkm Date: Fri, 23 Aug 2024 13:56:11 +0200 Subject: [PATCH 3/7] refactor: change return from String to List --- .../thealgorithms/others/FloydTriangle.java | 18 ++++++++++-------- .../others/FloydTriangleTest.java | 18 ++++++++++++------ 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/thealgorithms/others/FloydTriangle.java b/src/main/java/com/thealgorithms/others/FloydTriangle.java index bc17f3c49bcb..dff48443fc25 100644 --- a/src/main/java/com/thealgorithms/others/FloydTriangle.java +++ b/src/main/java/com/thealgorithms/others/FloydTriangle.java @@ -1,5 +1,8 @@ package com.thealgorithms.others; +import java.util.ArrayList; +import java.util.List; + final class FloydTriangle { private FloydTriangle() { } @@ -8,21 +11,20 @@ private FloydTriangle() { * Generates a Floyd Triangle with the specified number of rows. * * @param rows The number of rows in the triangle. - * @return A string representing the Floyd Triangle. + * @return A List representing the Floyd Triangle. */ - public static String generateFloydTriangle(int rows) { - StringBuilder triangle = new StringBuilder(); + public static List> generateFloydTriangle(int rows) { + List> triangle = new ArrayList<>(); int number = 1; for (int i = 0; i < rows; i++) { + List row = new ArrayList<>(); for (int j = 0; j <= i; j++) { - triangle.append(number++).append(" "); - } - if (i < rows - 1) { - triangle.append("\n"); + row.add(number++); } + triangle.add(row); } - return triangle.toString(); + return triangle; } } diff --git a/src/test/java/com/thealgorithms/others/FloydTriangleTest.java b/src/test/java/com/thealgorithms/others/FloydTriangleTest.java index 63a370ba6f81..cdea810a5693 100644 --- a/src/test/java/com/thealgorithms/others/FloydTriangleTest.java +++ b/src/test/java/com/thealgorithms/others/FloydTriangleTest.java @@ -1,36 +1,42 @@ package com.thealgorithms.others; +import org.junit.jupiter.api.Test; + import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.jupiter.api.Test; +import java.util.Arrays; +import java.util.List; public class FloydTriangleTest { @Test public void testGenerateFloydTriangleWithValidInput() { - String expectedOutput = "1 \n2 3 \n4 5 6 "; + List> expectedOutput = Arrays.asList(Arrays.asList(1), Arrays.asList(2, 3), Arrays.asList(4, 5, 6)); assertEquals(expectedOutput, FloydTriangle.generateFloydTriangle(3)); } @Test public void testGenerateFloydTriangleWithOneRow() { - String expectedOutput = "1 "; + List> expectedOutput = Arrays.asList(Arrays.asList(1)); assertEquals(expectedOutput, FloydTriangle.generateFloydTriangle(1)); } @Test public void testGenerateFloydTriangleWithZeroRows() { - assertEquals("", FloydTriangle.generateFloydTriangle(0)); + List> expectedOutput = Arrays.asList(); + assertEquals(expectedOutput, FloydTriangle.generateFloydTriangle(0)); } @Test public void testGenerateFloydTriangleWithNegativeRows() { - assertEquals("", FloydTriangle.generateFloydTriangle(-3)); + List> expectedOutput = Arrays.asList(); + assertEquals(expectedOutput, FloydTriangle.generateFloydTriangle(-3)); } @Test public void testGenerateFloydTriangleWithMultipleRows() { - String expectedOutput = "1 \n2 3 \n4 5 6 \n7 8 9 10 \n11 12 13 14 15 "; + List> expectedOutput = Arrays.asList(Arrays.asList(1), Arrays.asList(2, 3), Arrays.asList(4, 5, 6), Arrays.asList(7, 8, 9, 10), Arrays.asList(11, 12, 13, 14, 15)); assertEquals(expectedOutput, FloydTriangle.generateFloydTriangle(5)); } } + From 6a713e115452be064204fd5e99f0338f7d6226fe Mon Sep 17 00:00:00 2001 From: alxkm Date: Fri, 23 Aug 2024 13:58:55 +0200 Subject: [PATCH 4/7] checkstyle: fix import ordering --- src/test/java/com/thealgorithms/others/FloydTriangleTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/test/java/com/thealgorithms/others/FloydTriangleTest.java b/src/test/java/com/thealgorithms/others/FloydTriangleTest.java index cdea810a5693..c3853757bc32 100644 --- a/src/test/java/com/thealgorithms/others/FloydTriangleTest.java +++ b/src/test/java/com/thealgorithms/others/FloydTriangleTest.java @@ -1,9 +1,8 @@ package com.thealgorithms.others; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; import java.util.Arrays; import java.util.List; From 4e79dde22f50583c7b8a0135e65c71d1b03545fd Mon Sep 17 00:00:00 2001 From: alxkm Date: Fri, 23 Aug 2024 14:01:49 +0200 Subject: [PATCH 5/7] checkstyle: add test --- .../java/com/thealgorithms/others/FloydTriangleTest.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/test/java/com/thealgorithms/others/FloydTriangleTest.java b/src/test/java/com/thealgorithms/others/FloydTriangleTest.java index c3853757bc32..0550ed09a1fc 100644 --- a/src/test/java/com/thealgorithms/others/FloydTriangleTest.java +++ b/src/test/java/com/thealgorithms/others/FloydTriangleTest.java @@ -37,5 +37,12 @@ public void testGenerateFloydTriangleWithMultipleRows() { List> expectedOutput = Arrays.asList(Arrays.asList(1), Arrays.asList(2, 3), Arrays.asList(4, 5, 6), Arrays.asList(7, 8, 9, 10), Arrays.asList(11, 12, 13, 14, 15)); assertEquals(expectedOutput, FloydTriangle.generateFloydTriangle(5)); } + + @Test + public void testGenerateFloydTriangleWithMoreMultipleRows() { + List> expectedOutput = Arrays.asList(Arrays.asList(1), Arrays.asList(2, 3), Arrays.asList(4, 5, 6), Arrays.asList(7, 8, 9, 10), Arrays.asList(11, 12, 13, 14, 15), + Arrays.asList(16, 17, 18, 19, 20, 21), Arrays.asList(22, 23, 24, 25, 26, 27, 28)); + assertEquals(expectedOutput, FloydTriangle.generateFloydTriangle(7)); + } } From 8c1f60a3e02b0d1f19550c3b9a972d994bf81612 Mon Sep 17 00:00:00 2001 From: alxkm Date: Fri, 23 Aug 2024 14:05:50 +0200 Subject: [PATCH 6/7] checkstyle: formatting --- src/test/java/com/thealgorithms/others/FloydTriangleTest.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/test/java/com/thealgorithms/others/FloydTriangleTest.java b/src/test/java/com/thealgorithms/others/FloydTriangleTest.java index 0550ed09a1fc..df19f2ec99d9 100644 --- a/src/test/java/com/thealgorithms/others/FloydTriangleTest.java +++ b/src/test/java/com/thealgorithms/others/FloydTriangleTest.java @@ -40,9 +40,7 @@ public void testGenerateFloydTriangleWithMultipleRows() { @Test public void testGenerateFloydTriangleWithMoreMultipleRows() { - List> expectedOutput = Arrays.asList(Arrays.asList(1), Arrays.asList(2, 3), Arrays.asList(4, 5, 6), Arrays.asList(7, 8, 9, 10), Arrays.asList(11, 12, 13, 14, 15), - Arrays.asList(16, 17, 18, 19, 20, 21), Arrays.asList(22, 23, 24, 25, 26, 27, 28)); + List> expectedOutput = Arrays.asList(Arrays.asList(1), Arrays.asList(2, 3), Arrays.asList(4, 5, 6), Arrays.asList(7, 8, 9, 10), Arrays.asList(11, 12, 13, 14, 15), Arrays.asList(16, 17, 18, 19, 20, 21), Arrays.asList(22, 23, 24, 25, 26, 27, 28)); assertEquals(expectedOutput, FloydTriangle.generateFloydTriangle(7)); } } - From 4d8320b6f3e837d338a1aeed517078c501df7a58 Mon Sep 17 00:00:00 2001 From: alxkm Date: Fri, 23 Aug 2024 14:06:54 +0200 Subject: [PATCH 7/7] checkstyle: import ordering --- src/test/java/com/thealgorithms/others/FloydTriangleTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/thealgorithms/others/FloydTriangleTest.java b/src/test/java/com/thealgorithms/others/FloydTriangleTest.java index df19f2ec99d9..afa280c09838 100644 --- a/src/test/java/com/thealgorithms/others/FloydTriangleTest.java +++ b/src/test/java/com/thealgorithms/others/FloydTriangleTest.java @@ -2,9 +2,9 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.jupiter.api.Test; import java.util.Arrays; import java.util.List; +import org.junit.jupiter.api.Test; public class FloydTriangleTest {