package nloc; import java.util.List; import java.util.ArrayList; import java.util.ListIterator; import java.util.Arrays; public class TestNloc { public static void main(String[] args) { Nloc nloc0 = new Nloc(getNloc0()); Nloc nloc1 = new Nloc(getNloc1()); Nloc nloc2 = new Nloc(getNloc2()); Nloc nloc3 = new Nloc(getNloc3()); Nloc nloc4 = new Nloc(getNloc4()); } public static void printPath(List<Channel> path) { for (Channel ch : path) { System.out.print("ID: " + ch.getID() + " "); } System.out.println(""); } public static void printPaths(List<List<Channel>> pathlist) { System.out.println("Number of paths found: " + pathlist.size()); for (List<Channel> p : pathlist) { printPath(p); } } public static List<Channel> getNloc0() { Channel chan0 = new Channel("ch0",6,6); Channel chan1 = new Channel("ch1",8,8); Channel chan2 = new Channel("ch2",9,9); Channel chan3 = new Channel("ch3",11,12); Channel chan4 = new Channel("ch4",19,21); Channel chan5 = new Channel("ch5",5,5); Channel chan6 = new Channel("ch6",8,8); Channel chan7 = new Channel("ch7",9,10); Channel chan8 = new Channel("ch8",25,28); Module m0 = new Module("m0", 22,10); Module m1 = new Module("m1", 10,10); Pump p0 = new Pump(); Sink s0 = new Sink(); List<Channel> chanlist = Arrays.asList(chan0, chan1, chan2, chan3, chan4, chan5, chan6, chan7, chan8, m0, m1, p0, s0); p0.addChild(chan0); chan0.addChild(chan1); chan1.addChild(chan2); chan1.addChild(chan3); chan2.addChild(chan4); chan3.addChild(chan5); chan5.addChild(m0); m0.addChild(chan6); chan4.addChild(chan7); chan6.addChild(chan7); chan7.addChild(m1); m1.addChild(chan8); chan8.addChild(s0); return chanlist; } public static List<Channel> getNloc0() { Channel chan0 = new Channel("ch0",6,6); Channel chan1 = new Channel("ch1",8,8); Channel chan2 = new Channel("ch2",9,9); Channel chan3 = new Channel("ch3",11,12); Channel chan4 = new Channel("ch4",19,21); Channel chan5 = new Channel("ch5",5,5); Channel chan6 = new Channel("ch6",8,8); Channel chan7 = new Channel("ch7",9,10); Channel chan8 = new Channel("ch8",25,28); Module m0 = new Module("m0", 22,10); Module m1 = new Module("m1", 10,10); Pump p0 = new Pump(); Sink s0 = new Sink(); List<Channel> chanlist = Arrays.asList(chan0, chan1, chan2, chan3, chan4, chan5, chan6, chan7, chan8, m0, m1, p0, s0); p0.addChild(chan0); chan0.addChild(chan1); chan1.addChild(chan2); chan1.addChild(chan3); chan2.addChild(chan4); chan3.addChild(chan5); chan5.addChild(m0); m0.addChild(chan6); chan4.addChild(chan7); chan6.addChild(chan7); chan7.addChild(m1); m1.addChild(chan8); chan8.addChild(s0); return chanlist; } public static List<Channel> getNloc1() { Channel chan0 = new Channel("ch0",8,8); Channel chan1 = new Channel("ch1",8,8); Channel chan2 = new Channel("ch2",11,12); Channel chan3 = new Channel("ch3",19,21); Channel chan4 = new Channel("ch4",35,39); Channel chan5 = new Channel("ch5",10,11); Channel chan6 = new Channel("ch6",10,11); Channel chan7 = new Channel("ch7",12,13); Channel chan8 = new Channel("ch8",10,11); Channel chan9 = new Channel("ch9",10,11); Channel chan10 = new Channel("ch10",25,27); Channel chan11 = new Channel("ch11",10,11); Channel chan12 = new Channel("ch12",12,13); Channel chan13 = new Channel("ch13",13,14); Channel chan14 = new Channel("ch14",8,8); Channel chan15 = new Channel("ch15",8,8); Channel chan16 = new Channel("ch16",8,8); Channel chan17 = new Channel("ch17",8,8); Channel chan18 = new Channel("ch18",20,21); Channel chan19 = new Channel("ch19",20,21); Channel chan20 = new Channel("ch20",99,108); Module m0 = new Module("m0", 12,10); Module m1 = new Module("m1", 10,10); Module m2 = new Module("m2", 12,10); Module m3 = new Module("m3", 10,10); Module m4 = new Module("m4", 10,10); Pump p0 = new Pump(); Sink s0 = new Sink(); List<Channel> chanlist = Arrays.asList(chan0, chan1, chan2, chan3, chan4, chan5, chan6, chan7, chan8, chan9, chan10, chan11, chan12, chan13, chan14, chan15, chan16, chan17, chan18, chan19, chan20, m0, m1, m2, m3, m4, p0, s0); p0.addChild(chan0); chan0.addChild(chan1); chan0.addChild(chan2); chan1.addChild(chan3); chan3.addChild(m0); m0.addChild(chan4); chan4.addChild(chan20); chan20.addChild(s0); chan2.addChild(chan5); chan5.addChild(chan6); chan5.addChild(chan7); chan6.addChild(chan8); chan8.addChild(m1); m1.addChild(chan10); chan10.addChild(chan19); chan19.addChild(chan20); chan7.addChild(chan9); chan9.addChild(m2); m2.addChild(chan11); chan11.addChild(chan12); chan11.addChild(chan13); chan12.addChild(chan14); chan14.addChild(m3); m3.addChild(chan16); chan16.addChild(chan18); chan18.addChild(chan19); chan13.addChild(chan15); chan15.addChild(m4); m4.addChild(chan17); chan17.addChild(chan18); return chanlist; } public static List<Channel> getNloc2() { Channel chan0 = new Channel("ch0",8,8); Channel chan1 = new Channel("ch1",10,11); Channel chan2 = new Channel("ch2",11,12); Channel chan3 = new Channel("ch3",19,21); Channel chan4 = new Channel("ch4",19,21); Channel chan5 = new Channel("ch5",35,39); Channel chan6 = new Channel("ch6",8,8); Channel chan7 = new Channel("ch7",10,11); Channel chan8 = new Channel("ch8",11,12); Channel chan9 = new Channel("ch9",10,11); Channel chan10 = new Channel("ch10",10,11); Channel chan11 = new Channel("ch11",8,8); Channel chan12 = new Channel("ch12",10,11); Channel chan13 = new Channel("ch13",11,12); Channel chan14 = new Channel("ch14",10,11); Channel chan15 = new Channel("ch15",10,11); Channel chan16 = new Channel("ch16",13,14); Module m0 = new Module("m0", 12,10); Module m1 = new Module("m1", 10,10); Module m2 = new Module("m2", 12,10); Module m3 = new Module("m3", 10,10); Module m4 = new Module("m4", 10,10); Pump p0 = new Pump(); Sink s0 = new Sink(); List<Channel> chanlist = Arrays.asList(chan0, chan1, chan2, chan3, chan4, chan5, chan6, chan7, chan8, chan9, chan10, chan11, chan12, chan13, chan14, chan15, chan16, m0, m1, m2, m3, m4, p0, s0); p0.addChild(chan0); chan0.addChild(chan1); chan0.addChild(chan2); chan1.addChild(chan3); chan3.addChild(m4); m4.addChild(chan4); chan4.addChild(chan5); chan5.addChild(s0); chan2.addChild(chan6); chan6.addChild(chan7); chan6.addChild(chan8); chan7.addChild(m0); chan8.addChild(m1); m0.addChild(chan9); m1.addChild(chan10); chan9.addChild(chan11); chan10.addChild(chan11); chan11.addChild(chan12); chan11.addChild(chan13); chan12.addChild(m2); chan13.addChild(m3); m2.addChild(chan14); m3.addChild(chan15); chan15.addChild(chan16); chan14.addChild(chan16); chan16.addChild(chan5); return chanlist; } public static List<Channel> getNloc3() { Channel chan0 = new Channel("ch0",7,7); Channel chan1 = new Channel("ch1",8,8); Channel chan2 = new Channel("ch2",9,9); Channel chan3 = new Channel("ch3",19,19); Channel chan4 = new Channel("ch4",19,19); Channel chan5 = new Channel("ch5",7,7); Channel chan6 = new Channel("ch6",8,8); Channel chan7 = new Channel("ch7",9,9); Channel chan8 = new Channel("ch8",25,28); Channel chan9 = new Channel("ch9",25,28); Channel chan10 = new Channel("ch10",25,28); Module m0 = new Module("m0", 10,10); Module m1 = new Module("m1", 10,10); Module m2 = new Module("m2", 10,10); Module m3 = new Module("m3", 10,10); Pump p0 = new Pump(); Sink s0 = new Sink(); List<Channel> chanlist = Arrays.asList(chan0, chan1, chan2, chan3, chan4, chan5, chan6, chan7, chan8, chan9, chan10, m0, m1, m2, m3, p0, s0); p0.addChild(chan0); chan0.addChild(chan1); chan0.addChild(chan2); chan1.addChild(m0); m0.addChild(chan3); chan3.addChild(chan5); chan2.addChild(m1); m1.addChild(chan4); chan4.addChild(chan5); chan5.addChild(chan6); chan5.addChild(chan7); chan6.addChild(m2); chan7.addChild(m3); m2.addChild(chan8); m3.addChild(chan9); chan8.addChild(chan10); chan9.addChild(chan10); chan10.addChild(s0); return chanlist; } public static List<Channel> getNloc4() { Channel chan0 = new Channel("ch0",8,8); Channel chan1 = new Channel("ch1",8,8); Channel chan2 = new Channel("ch2",9,9); Channel chan3 = new Channel("ch3",19,19); Channel chan4 = new Channel("ch4",19,19); Channel chan5 = new Channel("ch5",8,8); Channel chan6 = new Channel("ch6",12,13); Channel chan7 = new Channel("ch7",13,14); Channel chan8 = new Channel("ch8",25,28); Channel chan9 = new Channel("ch9",25,28); Channel chan10 = new Channel("ch10",8,8); Channel chan11 = new Channel("ch11",12,13); Channel chan12 = new Channel("ch12",13,14); Channel chan13 = new Channel("ch13",25,28); Channel chan14 = new Channel("ch14",25,28); Channel chan15 = new Channel("ch15",99,108); Module m0 = new Module("m0", 10,10); Module m1 = new Module("m1", 10,10); Module m2 = new Module("m2", 10,10); Module m3 = new Module("m3", 10,10); Module m4 = new Module("m4", 10,10); Module m5 = new Module("m5", 10,10); Pump p0 = new Pump(); Sink s0 = new Sink(); List<Channel> chanlist = Arrays.asList(chan0, chan1, chan2, chan3, chan4, chan5, chan6, chan7, chan8, chan9, chan10, chan11, chan12, chan13, chan14, chan15, m0, m1, m2, m3, p0, s0); p0.addChild(chan0); chan0.addChild(chan1); chan0.addChild(chan2); chan1.addChild(m0); chan2.addChild(m1); m0.addChild(chan3); m1.addChild(chan4); chan3.addChild(chan5); chan4.addChild(chan5); chan5.addChild(chan6); chan5.addChild(chan7); chan6.addChild(m2); chan7.addChild(m3); m2.addChild(chan8); m3.addChild(chan9); chan8.addChild(chan10); chan9.addChild(chan10); chan10.addChild(chan11); chan10.addChild(chan12); chan11.addChild(m4); chan12.addChild(m5); m4.addChild(chan13); m5.addChild(chan14); chan13.addChild(chan15); chan14.addChild(chan15); chan15.addChild(s0); return chanlist; } }