mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-12-19 07:00:35 +08:00
refactor: improve PythagoreanTriple logic and add parameterized tests (#6350)
This commit is contained in:
committed by
GitHub
parent
2f5bc8c242
commit
fa2ca9db39
@@ -1,22 +1,24 @@
|
||||
package com.thealgorithms.maths;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.CsvSource;
|
||||
|
||||
public class PythagoreanTripleTest {
|
||||
|
||||
@ParameterizedTest
|
||||
@CsvSource({"3, 4, 5, true", "6, 8, 10, true", "9, 12, 15, true", "12, 16, 20, true", "15, 20, 25, true", "18, 24, 30, true", "5, 20, 30, false", "6, 8, 100, false", "-2, -2, 2, false", "0, 0, 0, false", "5, 5, 5, false"})
|
||||
void testIsPythagoreanTriple(int a, int b, int c, boolean expected) {
|
||||
assertEquals(expected, PythagoreanTriple.isPythagTriple(a, b, c));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPythagoreanTriple() {
|
||||
assertTrue(PythagoreanTriple.isPythagTriple(3, 4, 5));
|
||||
assertTrue(PythagoreanTriple.isPythagTriple(6, 8, 10));
|
||||
assertTrue(PythagoreanTriple.isPythagTriple(9, 12, 15));
|
||||
assertTrue(PythagoreanTriple.isPythagTriple(12, 16, 20));
|
||||
assertTrue(PythagoreanTriple.isPythagTriple(15, 20, 25));
|
||||
assertTrue(PythagoreanTriple.isPythagTriple(18, 24, 30));
|
||||
assertFalse(PythagoreanTriple.isPythagTriple(5, 20, 30));
|
||||
assertFalse(PythagoreanTriple.isPythagTriple(6, 8, 100));
|
||||
assertFalse(PythagoreanTriple.isPythagTriple(-2, -2, 2));
|
||||
void testUnorderedInputStillValid() {
|
||||
// Should still detect Pythagorean triples regardless of argument order
|
||||
assertTrue(PythagoreanTriple.isPythagTriple(5, 3, 4));
|
||||
assertTrue(PythagoreanTriple.isPythagTriple(13, 12, 5));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user