import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import static org.junit.jupiter.api.Assertions.*; class ToposortTest { @Test void test() { ArrayList> adj = new ArrayList<>(); for (int i = 0; i < 4; i++) { adj.add(new ArrayList<>()); } adj.get(0).add(1); adj.get(2).add(0); adj.get(3).add(0); ArrayList results = new ArrayList(Arrays.asList(4, 3, 6, 8)); assertEquals(results, Toposort.postOrder(adj)); } @Test void test1() { ArrayList> adj = new ArrayList<>(); for (int i = 0; i < 5; i++) { adj.add(new ArrayList<>()); } adj.get(1).add(0); adj.get(1).add(2); adj.get(1).add(3); adj.get(1).add(4); adj.get(2).add(0); adj.get(2).add(3); adj.get(2).add(4); adj.get(3).add(0); adj.get(3).add(4); adj.get(4).add(0); ArrayList results = new ArrayList(Arrays.asList(2, 7, 6, 5, 4)); assertEquals(results, Toposort.postOrder(adj)); } @Test void test2() { ArrayList> adj = new ArrayList<>(); for (int i = 0; i < 5; i++) { adj.add(new ArrayList<>()); } adj.get(1).add(0); adj.get(1).add(2); adj.get(1).add(4); adj.get(1).add(3); adj.get(2).add(0); adj.get(2).add(3); adj.get(2).add(4); adj.get(3).add(4); adj.get(3).add(0); adj.get(4).add(0); ArrayList results = new ArrayList(Arrays.asList(2, 7, 6, 5, 4)); assertEquals(results, Toposort.postOrder(adj)); } @Test void test10() { ArrayList> adj = new ArrayList<>(); for (int i = 0; i < 10; i++) { adj.add(new ArrayList<>()); } adj.get(9).add(1); adj.get(9).add(7); adj.get(4).add(3); adj.get(2).add(1); adj.get(7).add(3); adj.get(9).add(3); adj.get(0).add(1); adj.get(8).add(6); adj.get(1).add(7); adj.get(2).add(9); adj.get(6).add(5); adj.get(0).add(4); adj.get(0).add(7); adj.get(0).add(5); adj.get(0).add(8); adj.get(2).add(5); adj.get(6).add(9); adj.get(8).add(3); adj.get(8).add(4); adj.get(4).add(2); ArrayList results = new ArrayList(Arrays.asList(13, 7, 9, 5, 10, 3, 11, 6, 12, 8)); assertEquals(results, Toposort.postOrder(adj)); } }