Skip to content
Snippets Groups Projects
TestGraph.java 2.31 KiB
Newer Older
  • Learn to ignore specific revisions
  • Gianluca Mastrolonardo's avatar
    Ok
    Gianluca Mastrolonardo committed
    import it.uniupo.graphLib.DirectedGraph;
    import it.uniupo.graphLib.GraphInterface;
    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 TestGraph {
        @Test
    
    Gianluca's avatar
    Gianluca committed
        void hasUndirectedCycleTest() {
    
    Gianluca Mastrolonardo's avatar
    Ok
    Gianluca Mastrolonardo committed
            UndirectedGraph myGraph = new UndirectedGraph("4; 1 0; 0 2; 2 3; 3 0");
            BFSAndDFSApp testApp = new BFSAndDFSApp(myGraph);
            Assertions.assertTrue(testApp.hasUndirectedCycle());
            DirectedGraph mySecondGraph = new DirectedGraph("3; 0 1; 0 2");
            testApp = new BFSAndDFSApp(mySecondGraph);
            Assertions.assertFalse(testApp.hasUndirectedCycle());
            DirectedGraph myForest = new DirectedGraph("5; 0 1; 0 2; 3 4; 4 3");
            testApp = new BFSAndDFSApp(myForest);
            Assertions.assertTrue(testApp.hasUndirectedCycle());
        }
    
        @Test
    
    Gianluca's avatar
    Gianluca committed
        void orderPostVisitTest() {
    
    Gianluca Mastrolonardo's avatar
    Ok
    Gianluca Mastrolonardo committed
            UndirectedGraph myGraph = new UndirectedGraph("4; 2 0; 1 0; 3 2; 3 1");
            BFSAndDFSApp testApp = new BFSAndDFSApp(myGraph);
            ArrayList<Integer> output = testApp.getNodesInOrderPostVisit(0);
    
            ArrayList<Integer> expected1 = new ArrayList<>();
    
            expected1.add(1);
            expected1.add(3);
            expected1.add(2);
            expected1.add(0);
    
            ArrayList<Integer> expected2 = new ArrayList<>();
    
    Gianluca's avatar
    Gianluca committed
            expected2.add(2);
            expected2.add(3);
            expected2.add(1);
            expected2.add(0);
    
            Assertions.assertTrue(output.equals(expected1) || output.equals(expected2));
        }
    
        @Test
        void hasDirCycleTest() {
            DirectedGraph g = new DirectedGraph("1");
            BFSAndDFSApp testApp = new BFSAndDFSApp(g);
            Assertions.assertFalse(testApp.hasDirCycle());
    
            g = new DirectedGraph("2; 0 1");
            testApp = new BFSAndDFSApp(g);
            Assertions.assertFalse(testApp.hasDirCycle());
    
            g = new DirectedGraph("3; 1 0; 1 2; 0 2");
            testApp = new BFSAndDFSApp(g);
            Assertions.assertFalse(testApp.hasDirCycle());
    
    Gianluca Mastrolonardo's avatar
    Ok
    Gianluca Mastrolonardo committed
    
    
    Gianluca's avatar
    Gianluca committed
            g = new DirectedGraph("3; 0 2; 2 1; 1 0");
            testApp = new BFSAndDFSApp(g);
            Assertions.assertTrue(testApp.hasDirCycle());
    
    Gianluca Mastrolonardo's avatar
    Ok
    Gianluca Mastrolonardo committed
    
    
    Gianluca's avatar
    Gianluca committed
            g = new DirectedGraph("5; 0 4; 4 1; 4 2; 3 4; 2 3");
            testApp = new BFSAndDFSApp(g);
            Assertions.assertTrue(testApp.hasDirCycle());
    
    Gianluca Mastrolonardo's avatar
    Ok
    Gianluca Mastrolonardo committed
        }
    }