TestKosaraju.java 1.43 KiB
import it.uniupo.graphLib.DirectedGraph;
import it.uniupo.graphLib.UndirectedGraph;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.Arrays;
public
class TestKosaraju {
@Test
void testCostructor() {
DirectedGraph g = new DirectedGraph("3; 0 1; 0 2");
Kosaraju kosaraju = new Kosaraju(g);
Assertions.assertNotNull(kosaraju);
}
@Test
void testReversePostVisitOrder() {
DirectedGraph g = new DirectedGraph("5; 1 4; 4 3; 3 1; 1 2; 4 0; 2 0; 0 2;");
Kosaraju kosaraju = new Kosaraju(g);
ArrayList<Integer> reversePostVisitOrder = kosaraju.reversePostVisitOrder();
Assertions.assertTrue(reversePostVisitOrder.indexOf(1) < reversePostVisitOrder.indexOf(0) && reversePostVisitOrder.indexOf(1) < reversePostVisitOrder.indexOf(2));
Assertions.assertTrue(reversePostVisitOrder.indexOf(4) < reversePostVisitOrder.indexOf(0) && reversePostVisitOrder.indexOf(4) < reversePostVisitOrder.indexOf(2));
Assertions.assertTrue(reversePostVisitOrder.indexOf(3) < reversePostVisitOrder.indexOf(0) && reversePostVisitOrder.indexOf(3) < reversePostVisitOrder.indexOf(2));
}
@Test
void testGetSCC() {
DirectedGraph g = new DirectedGraph("5; 1 4; 4 3; 3 1; 1 2; 4 0; 2 0; 0 2;");
Kosaraju kosaraju = new Kosaraju(g);
System.out.println(Arrays.toString(kosaraju.getSCC()));
}
}