Skip to content
Snippets Groups Projects
TestNloc.java 5.53 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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 nloc2 = new Nloc(getNloc2());
        Nloc nloc3 = new Nloc(getNloc3());
    
        Pump pump;
        try {
          pump = nloc2.generateDropletSequence(Arrays.asList("m1","m2"));
          List<Droplet> drList = pump.getDropletList();
          System.out.println("Number of Droplets needed: " + drList.size());
    
          if (nloc2.simulate()) {
            System.out.println("The sequence is good");
          } else {
            System.out.println("The sequence sucks");
          }
        } catch (BifurcationTooShortException e) {
          System.out.println(e.toString());
    
      }
      
      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> 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;
      }
    }