TestGraph.java 2.84 KiB
import it.uniupo.graphLib.DirectedGraph;
import it.uniupo.graphLib.GraphInterface;
import it.uniupo.graphLib.UndirectedGraph;
import org.junit.jupiter.api.*;
import static org.junit.jupiter.api.Assertions.*;
public class TestGraph {
//Slide 12 è sbagliata
//Slide 18 in teoria è difficile
@Test
void testCreate() {
GraphInterface grafo = new DirectedGraph(3);
DFS dfsTest = new DFS(grafo);
assertNotNull(dfsTest);
}
@Test
@Timeout(value = 500)
void testScoperti() {
GraphInterface grafo = new DirectedGraph("3;0 1;1 2;2 0");
DFS dfsTest = new DFS(grafo);
assertNotNull(dfsTest.getTree(0));
}
@Test
void testNumeroArchi() {
GraphInterface grafo = new UndirectedGraph("4; 0 2; 0 1; 1 3; 2 3;");
DFS dfsTest = new DFS(grafo);
Assertions.assertEquals(grafo.getOrder() - 1, dfsTest.getTree(0).getEdgeNum());
}
@Test
void testArchiDFS() {
GraphInterface grafo = new UndirectedGraph("4; 0 2; 0 1; 1 3; 2 3;");
DFS dfsTest = new DFS(grafo);
GraphInterface dfsTree = dfsTest.getTree(2);
Assertions.assertTrue((dfsTree.hasEdge(0, 2) && dfsTree.hasEdge(0, 1) && dfsTree.hasEdge(1, 3)) || (dfsTree.hasEdge(2, 3) && dfsTree.hasEdge(3, 1) && dfsTree.hasEdge(1, 0)));
Assertions.assertFalse((dfsTree.hasEdge(0, 1) && dfsTree.hasEdge(0, 2) && dfsTree.hasEdge(2, 3)) || (dfsTree.hasEdge(0, 2)) && dfsTree.hasEdge(2, 3) && dfsTree.hasEdge(3, 1));
}
@Test
void testInitAlbero() {
GraphInterface grafo = new UndirectedGraph("4; 0 2; 0 1; 1 3; 2 3;");
DFS dfsTest = new DFS(grafo);
Assertions.assertEquals(3, dfsTest.getTree(2).getEdgeNum());
Assertions.assertEquals(3, dfsTest.getTree(1).getEdgeNum());
}
@Test
void testEccezione() {
GraphInterface grafo = new UndirectedGraph("4; 0 2; 0 1; 1 3; 2 3;");
DFS dfsTest = new DFS(grafo);
Assertions.assertThrows(java.lang.IllegalArgumentException.class, () -> {
dfsTest.getTree(200);
});
Assertions.assertThrows(java.lang.IllegalArgumentException.class, () -> {
dfsTest.getTree(-1);
});
}
@Test
void testAlberiRicoprenti() {
GraphInterface grafo = new UndirectedGraph("5; 0 3; 0 4; 3 4; 1 2;");
DFS dfsTest = new DFS(grafo);
Assertions.assertThrows(NotAllNodesReachedException.class, () -> {
dfsTest.getTreeRicoprente(0);
});
}
@Test
void testForesta() {
GraphInterface grafo = new UndirectedGraph("5; 0 3; 0 4; 3 4; 1 2;");
DFS dfsTest = new DFS(grafo);
GraphInterface forest = dfsTest.getForest();
Assertions.assertFalse(forest.hasEdge(0,1) || forest.hasEdge(3,1) || forest.hasEdge(4, 1) || forest.hasEdge(0,2) || forest.hasEdge(3,2) || forest.hasEdge(4, 2));
}
}