Skip to content

Commit ce4eb55

Browse files
authored
refactor: FloydTriangle (#5367)
1 parent 3408977 commit ce4eb55

File tree

2 files changed

+64
-10
lines changed

2 files changed

+64
-10
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,30 @@
11
package com.thealgorithms.others;
22

3-
import java.util.Scanner;
3+
import java.util.ArrayList;
4+
import java.util.List;
45

56
final class FloydTriangle {
67
private FloydTriangle() {
78
}
89

9-
public static void main(String[] args) {
10-
Scanner sc = new Scanner(System.in);
11-
System.out.println("Enter the number of rows which you want in your Floyd Triangle: ");
12-
int r = sc.nextInt();
13-
int n = 0;
14-
sc.close();
15-
for (int i = 0; i < r; i++) {
10+
/**
11+
* Generates a Floyd Triangle with the specified number of rows.
12+
*
13+
* @param rows The number of rows in the triangle.
14+
* @return A List representing the Floyd Triangle.
15+
*/
16+
public static List<List<Integer>> generateFloydTriangle(int rows) {
17+
List<List<Integer>> triangle = new ArrayList<>();
18+
int number = 1;
19+
20+
for (int i = 0; i < rows; i++) {
21+
List<Integer> row = new ArrayList<>();
1622
for (int j = 0; j <= i; j++) {
17-
System.out.print(++n + " ");
23+
row.add(number++);
1824
}
19-
System.out.println();
25+
triangle.add(row);
2026
}
27+
28+
return triangle;
2129
}
2230
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package com.thealgorithms.others;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
5+
import java.util.Arrays;
6+
import java.util.List;
7+
import org.junit.jupiter.api.Test;
8+
9+
public class FloydTriangleTest {
10+
11+
@Test
12+
public void testGenerateFloydTriangleWithValidInput() {
13+
List<List<Integer>> expectedOutput = Arrays.asList(Arrays.asList(1), Arrays.asList(2, 3), Arrays.asList(4, 5, 6));
14+
assertEquals(expectedOutput, FloydTriangle.generateFloydTriangle(3));
15+
}
16+
17+
@Test
18+
public void testGenerateFloydTriangleWithOneRow() {
19+
List<List<Integer>> expectedOutput = Arrays.asList(Arrays.asList(1));
20+
assertEquals(expectedOutput, FloydTriangle.generateFloydTriangle(1));
21+
}
22+
23+
@Test
24+
public void testGenerateFloydTriangleWithZeroRows() {
25+
List<List<Integer>> expectedOutput = Arrays.asList();
26+
assertEquals(expectedOutput, FloydTriangle.generateFloydTriangle(0));
27+
}
28+
29+
@Test
30+
public void testGenerateFloydTriangleWithNegativeRows() {
31+
List<List<Integer>> expectedOutput = Arrays.asList();
32+
assertEquals(expectedOutput, FloydTriangle.generateFloydTriangle(-3));
33+
}
34+
35+
@Test
36+
public void testGenerateFloydTriangleWithMultipleRows() {
37+
List<List<Integer>> 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));
38+
assertEquals(expectedOutput, FloydTriangle.generateFloydTriangle(5));
39+
}
40+
41+
@Test
42+
public void testGenerateFloydTriangleWithMoreMultipleRows() {
43+
List<List<Integer>> 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));
44+
assertEquals(expectedOutput, FloydTriangle.generateFloydTriangle(7));
45+
}
46+
}

0 commit comments

Comments
 (0)