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())); } }