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 nlS1 = new Nloc(getNlocS1()); //Nloc nlS1 = new Nloc(getNlocS1()); // Nloc nlS1 = new Nloc(getNlocS1()); Nloc nlS6 = new Nloc(getNlocS6()); List<List<Channel>> pathlist = nlS6.getAllPaths(); printPaths(pathlist); Pump pump = nlS6.getPump(); Channel ch = nlS6.getModuleByName("ch17"); List<List<Channel>> pathlist1 = nlS1.getAllPathsFromTo(pump, ch); printPaths(pathlist1); } public static void printPath(List<Channel> path) { for (Channel ch : path) { if (path.indexOf(ch) == (path.size() - 1)) { System.out.print(ch.getName()); } else { System.out.print(ch.getName() + " -> "); } } 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> getNlocS1() { // channel(name, psteps, hsteps) Channel ch1 = new Channel("ch1",1,1); Channel ch2 = new Channel("ch2",1,1); Channel ch3 = new Channel("ch3",1,1); Channel ch4 = new Channel("ch4",1,1); Channel ch5 = new Channel("ch5",1,1); Channel ch6 = new Channel("ch6",1,1); Channel ch7 = new Channel("ch7",1,1); Channel ch8 = new Channel("ch8",1,1); Channel ch9 = new Channel("ch9",1,1); Channel ch10 = new Channel("ch10",1,1); Channel ch11 = new Channel("ch11",1,1); Channel ch12 = new Channel("ch12",1,1); Channel ch13 = new Channel("ch13",1,1); Channel ch14 = new Channel("ch14",1,1); Channel ch15 = new Channel("ch15",1,1); Module m0 = new Module("m0", 5,1); Module m1 = new Module("m1", 5,1); Module m2 = new Module("m2", 5,1); Module d1 = new Module("d1", 5,1); Module d2 = new Module("d2", 5,1); Module h1 = new Module("h1", 5,1); Module h2 = new Module("h2", 5,1); Module f2 = new Module("f2", 5,1); Pump p0 = new Pump(); Sink s0 = new Sink(); List<Channel> chlist = Arrays.asList(ch1, ch2, ch3, ch4, ch5, ch6, ch7, ch8, ch9, ch10, ch11, ch12, ch13, ch14, ch15, m0, m1, m2, d1, d2, h1, h2, f2, p0, s0); p0.addChild(ch1); p0.addChild(ch2); p0.addChild(ch3); ch1.addChild(m2); m2.addChild(ch4); ch4.addChild(d2); d2.addChild(ch6); ch2.addChild(h2); h2.addChild(ch5); ch6.addChild(ch7); ch5.addChild(ch7); ch3.addChild(ch7); ch7.addChild(m1); m1.addChild(ch8); ch8.addChild(f2); f2.addChild(ch9); ch9.addChild(ch11); ch9.addChild(ch10); ch11.addChild(h1); h1.addChild(ch12); ch12.addChild(ch13); ch10.addChild(ch13); ch13.addChild(m0); m0.addChild(ch14); ch14.addChild(d1); d1.addChild(ch15); ch15.addChild(s0); return chlist; } public static List<Channel> getNlocS6() { // channel(name, psteps, hsteps) Channel ch1 = new Channel("ch1",1,1); Channel ch2 = new Channel("ch2",1,1); Channel ch3 = new Channel("ch3",1,1); Channel ch4 = new Channel("ch4",1,1); Channel ch5 = new Channel("ch5",1,1); Channel ch6 = new Channel("ch6",1,1); Channel ch7 = new Channel("ch7",1,1); Channel ch8 = new Channel("ch8",1,1); Channel ch9 = new Channel("ch9",1,1); Channel ch10 = new Channel("ch10",1,1); Channel ch11 = new Channel("ch11",1,1); Channel ch12 = new Channel("ch12",1,1); Channel ch13 = new Channel("ch13",1,1); Channel ch14 = new Channel("ch14",1,1); Channel ch15 = new Channel("ch15",1,1); Channel ch16 = new Channel("ch16",1,1); Channel ch17 = new Channel("ch17",1,1); Channel ch18 = new Channel("ch18",1,1); Channel ch19 = new Channel("ch19",1,1); Channel ch20 = new Channel("ch20",1,1); Module m0 = new Module("m0", 5,1); Module m1 = new Module("m1", 5,1); Module m3 = new Module("m3", 5,1); Module m4 = new Module("m4", 5,1); Module m5 = new Module("m5", 5,1); Module h0 = new Module("h0", 5,1); Module h3 = new Module("h3", 5,1); Module d1 = new Module("d1", 5,1); Pump p0 = new Pump(); Sink s0 = new Sink(); List<Channel> chlist = Arrays.asList(ch1, ch2, ch3, ch4, ch5, ch6, ch7, ch8, ch9, ch10, ch11, ch12, ch13, ch14, ch15, ch16, ch17, ch18, ch19, ch20, m0, m1, m3, m4, m5, h0, h3, d1, p0, s0); p0.addChild(ch1); p0.addChild(ch2); ch2.addChild(h3); h3.addChild(ch4); ch1.addChild(m4); m4.addChild(ch3); ch3.addChild(ch5); ch3.addChild(ch6); ch5.addChild(d1); d1.addChild(ch7); ch7.addChild(ch8); ch6.addChild(ch8); ch4.addChild(ch8); ch8.addChild(m1); m1.addChild(ch9); ch9.addChild(ch10); ch9.addChild(ch11); ch10.addChild(ch12); ch12.addChild(m3); m3.addChild(ch13); ch13.addChild(ch14); ch13.addChild(ch15); ch14.addChild(h0); h0.addChild(ch16); ch15.addChild(ch17); ch11.addChild(ch17); ch17.addChild(m0); m0.addChild(ch18); ch16.addChild(ch19); ch18.addChild(ch19); ch19.addChild(m5); m5.addChild(ch20); ch20.addChild(s0); return chlist; } }