refactor: FloydTriangle
(#5367)
This commit is contained in:
parent
34089774f3
commit
ce4eb55e0e
@ -1,22 +1,30 @@
|
||||
package com.thealgorithms.others;
|
||||
|
||||
import java.util.Scanner;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
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 List representing the Floyd Triangle.
|
||||
*/
|
||||
public static List<List<Integer>> generateFloydTriangle(int rows) {
|
||||
List<List<Integer>> triangle = new ArrayList<>();
|
||||
int number = 1;
|
||||
|
||||
for (int i = 0; i < rows; i++) {
|
||||
List<Integer> row = new ArrayList<>();
|
||||
for (int j = 0; j <= i; j++) {
|
||||
System.out.print(++n + " ");
|
||||
row.add(number++);
|
||||
}
|
||||
System.out.println();
|
||||
triangle.add(row);
|
||||
}
|
||||
|
||||
return triangle;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,46 @@
|
||||
package com.thealgorithms.others;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class FloydTriangleTest {
|
||||
|
||||
@Test
|
||||
public void testGenerateFloydTriangleWithValidInput() {
|
||||
List<List<Integer>> expectedOutput = Arrays.asList(Arrays.asList(1), Arrays.asList(2, 3), Arrays.asList(4, 5, 6));
|
||||
assertEquals(expectedOutput, FloydTriangle.generateFloydTriangle(3));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGenerateFloydTriangleWithOneRow() {
|
||||
List<List<Integer>> expectedOutput = Arrays.asList(Arrays.asList(1));
|
||||
assertEquals(expectedOutput, FloydTriangle.generateFloydTriangle(1));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGenerateFloydTriangleWithZeroRows() {
|
||||
List<List<Integer>> expectedOutput = Arrays.asList();
|
||||
assertEquals(expectedOutput, FloydTriangle.generateFloydTriangle(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGenerateFloydTriangleWithNegativeRows() {
|
||||
List<List<Integer>> expectedOutput = Arrays.asList();
|
||||
assertEquals(expectedOutput, FloydTriangle.generateFloydTriangle(-3));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGenerateFloydTriangleWithMultipleRows() {
|
||||
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));
|
||||
assertEquals(expectedOutput, FloydTriangle.generateFloydTriangle(5));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGenerateFloydTriangleWithMoreMultipleRows() {
|
||||
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));
|
||||
assertEquals(expectedOutput, FloydTriangle.generateFloydTriangle(7));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user