/** * Copyright (c) 2009-2011, The HATS Consortium. All rights reserved. * This file is licensed under the terms of the Modified BSD License. */ package abs.frontend.delta; import java.util.Arrays; import java.util.HashSet; import org.junit.Test; import abs.frontend.ast.DeltaID; public class TopologicalSortingTest extends DeltaTest { int numNodes; DeltaID[] deltas; @Test(expected=DeltaModellingException.class) public void test0_1() { TopologicalSorting<DeltaID> sorter = init0_1(); sorter.sort(); } @Test(expected=DeltaModellingException.class) public void testCycle() { numNodes = 4; deltas = new DeltaID[numNodes]; for (int i=0; i<numNodes; i++) deltas[i] = new DeltaID("D" + i); TopologicalSorting<DeltaID> sorter = new TopologicalSorting<DeltaID>(new HashSet<DeltaID>(Arrays.asList(deltas))); sorter.addEdge(deltas[0], deltas[1]); // cycle sorter.addEdge(deltas[1], deltas[0]); // cycle sorter.addEdge(deltas[2], deltas[0]); sorter.addEdge(deltas[1], deltas[3]); sorter.sort(); } @Test(expected=DeltaModellingException.class) public void testCycle2() { numNodes = 1; deltas = new DeltaID[numNodes]; deltas[0] = new DeltaID("D0"); TopologicalSorting<DeltaID> sorter = new TopologicalSorting<DeltaID>(new HashSet<DeltaID>(Arrays.asList(deltas))); sorter.addEdge(deltas[0], deltas[0]); // cycle sorter.sort(); } /**************************************************************************/ private TopologicalSorting<DeltaID> init0_1() { numNodes = 0; deltas = new DeltaID[numNodes]; TopologicalSorting<DeltaID> sorter = new TopologicalSorting<DeltaID>(new HashSet<DeltaID>(Arrays.asList(deltas))); sorter.addEdge(new DeltaID("D0"), new DeltaID("D1")); return sorter; } }