Skip to content
Snippets Groups Projects
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()));
    }
}