101 lines
2.3 KiB
Java
101 lines
2.3 KiB
Java
package ch.usi.sqt;
|
|
|
|
import org.junit.jupiter.api.AfterEach;
|
|
import org.junit.jupiter.api.Assertions;
|
|
import org.junit.jupiter.api.BeforeEach;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
|
|
class TriangleClassifierTest {
|
|
|
|
Integer result;
|
|
|
|
@BeforeEach
|
|
public void setUp() {
|
|
result = null;
|
|
}
|
|
|
|
@AfterEach
|
|
public void tearDown() {
|
|
final List<Integer> returnValues = Arrays.asList(1, 2, 3, 4);
|
|
Assertions.assertTrue(result == null ||
|
|
returnValues.contains(result), String.format("result not in %s: %d", returnValues, result));
|
|
}
|
|
|
|
@Test
|
|
public void test1() {
|
|
int side1 = 2;
|
|
int side2 = 2;
|
|
int side3 = 2;
|
|
|
|
result = TriangleClassifier.classify(side1, side2, side3);
|
|
TriangleKind.EQUILATERAL.shouldBeValueOf(result);
|
|
}
|
|
|
|
@Test
|
|
public void test2() {
|
|
int side1 = 2;
|
|
int side2 = 2;
|
|
int side3 = 3;
|
|
|
|
result = TriangleClassifier.classify(side1, side2, side3);
|
|
TriangleKind.ISOSCELES.shouldBeValueOf(result);
|
|
}
|
|
|
|
@Test
|
|
public void test3() {
|
|
int side1 = 2;
|
|
int side2 = 3;
|
|
int side3 = 2;
|
|
|
|
result = TriangleClassifier.classify(side1, side2, side3);
|
|
TriangleKind.ISOSCELES.shouldBeValueOf(result);
|
|
}
|
|
|
|
@Test
|
|
public void test4() {
|
|
int side1 = 2;
|
|
int side2 = 3;
|
|
int side3 = 4;
|
|
|
|
result = TriangleClassifier.classify(side1, side2, side3);
|
|
TriangleKind.SCALENE.shouldBeValueOf(result);
|
|
}
|
|
|
|
@Test
|
|
public void test5() {
|
|
int side1 = -1;
|
|
int side2 = 2;
|
|
int side3 = 2;
|
|
|
|
Assertions.assertThrows(IllegalArgumentException.class, () -> {
|
|
result = TriangleClassifier.classify(side1, side2, side3);
|
|
});
|
|
}
|
|
|
|
@Test
|
|
public void test6() {
|
|
int side1 = 1;
|
|
int side2 = 2;
|
|
int side3 = 3;
|
|
|
|
result = TriangleClassifier.classify(side1, side2, side3);
|
|
TriangleKind.WRONG.shouldBeValueOf(result);
|
|
}
|
|
|
|
enum TriangleKind {
|
|
EQUILATERAL(1), ISOSCELES(2), SCALENE(3), WRONG(4);
|
|
|
|
private final Integer value;
|
|
|
|
TriangleKind(int value) {
|
|
this.value = value;
|
|
}
|
|
|
|
public void shouldBeValueOf(int result) {
|
|
Assertions.assertEquals(value, result);
|
|
}
|
|
}
|
|
} |