Package edu.cmu.cs.fusion.constraint

Examples of edu.cmu.cs.fusion.constraint.SpecVar


    labels[0] = new AbstractObjectLabel("w", "Bar");
    labels[1] = new AbstractObjectLabel("x");
    labels[2] = new AbstractObjectLabel("y", "Foo");
    labels[3] = new AbstractObjectLabel("z");
   
    vars[0] = new SpecVar();
    vars[1] = new SpecVar();
    vars[2] = new SpecVar();
    vars[3] = new SpecVar();
    vars[4] = new SpecVar();
   
    subs[0] = new Substitution();
    subs[0] = subs[0].addSub(vars[0], labels[0]);
    subs[0] = subs[0].addSub(vars[1], labels[2]);
    subs[0] = subs[0].addSub(vars[2], labels[3]);
View Full Code Here


  }
 
  @Test
  public void testAdd() throws FusionException {
    FreeVars vars = new FreeVars();
    vars = vars.addVar(new SpecVar("foo"), "Foo");
    assertEquals(1, vars.size());
    assertEquals("Foo", vars.getType(new SpecVar("foo")));
  }
View Full Code Here

  }
 
  @Test
  public void testUnionNormal() throws FusionException {
    FreeVars vars1 = new FreeVars();
    vars1 = vars1.addVar(new SpecVar("foo"), "Foo");

    FreeVars vars2 = new FreeVars();
    vars2 = vars2.addVar(new SpecVar("bar"), "Bar");
    vars2 = vars2.union(vars1);
    assertEquals(2, vars2.size());
    assertEquals("Foo", vars2.getType(new SpecVar("foo")));
    assertEquals("Bar", vars2.getType(new SpecVar("bar")));
  }
View Full Code Here

  }

  @Test
  public void testUnionSubtype() throws FusionException {
    FreeVars vars1 = new FreeVars();
    vars1 = vars1.addVar(new SpecVar("foo"), "Foo");

    FreeVars vars2 = new FreeVars();
    vars2 = vars2.addVar(new SpecVar("foo"), "SnaFu");
    vars2 = vars2.addVar(new SpecVar("bar"), "Bar");
    vars2 = vars2.union(vars1);
    assertEquals(2, vars2.size());
    assertEquals("Foo", vars2.getType(new SpecVar("foo")));
    assertEquals("Bar", vars2.getType(new SpecVar("bar")));
  }
View Full Code Here

  }

  @Test
  public void testUnionSupertype() throws FusionException {
    FreeVars vars1 = new FreeVars();
    vars1 = vars1.addVar(new SpecVar("foo"), "SnaFu");

    FreeVars vars2 = new FreeVars();
    vars2 = vars2.addVar(new SpecVar("foo"), "Foo");
    vars2 = vars2.addVar(new SpecVar("bar"), "Bar");
    vars2 = vars2.union(vars1);
    assertEquals(2, vars2.size());
    assertEquals("Foo", vars2.getType(new SpecVar("foo")));
    assertEquals("Bar", vars2.getType(new SpecVar("bar")));
  }
View Full Code Here

  }
 
  @Test
  public void testFindLabelsOneOption() {
    FusionEnvironment<?> env = new FusionEnvironment<TestAliasContext>(aliases, null, null, testH, new InferenceEnvironment(null), Variant.PRAGMATIC_VARIANT);
    FreeVars fv = new FreeVars().addVar(new SpecVar("a"), "Foo").addVar(new SpecVar("b"), "Bar");
    ConsList<Binding> list = ConsList.empty();
   
    list = ConsList.cons(new Binding(new SpecVar("a"), vars[0]), list);
    list = ConsList.cons(new Binding(new SpecVar("b"), vars[1]), list);
   
    List<Substitution> subs = env.findLabels(list, fv);
   
    assertEquals(1, subs.size());
   
    Iterator<Substitution> itr = subs.iterator();
    assertTrue(itr.hasNext());
    Substitution sub = itr.next();
   
    assertEquals(2, sub.size());
    assertEquals(labels[0], sub.getSub(new SpecVar("a")));
    assertEquals(labels[1], sub.getSub(new SpecVar("b")))
  }
View Full Code Here

  }

  @Test
  public void testFindLabelsAliasesAllDefinite() {
    FusionEnvironment<?> env = new FusionEnvironment<TestAliasContext>(aliases, null, null, testH, new InferenceEnvironment(null), Variant.PRAGMATIC_VARIANT);
    FreeVars fv = new FreeVars().addVar(new SpecVar("a"), "Foo").addVar(new SpecVar("b"), "Bar");
    ConsList<Binding> list = ConsList.empty();
   
    list = ConsList.cons(new Binding(new SpecVar("a"), vars[2]), list);
    list = ConsList.cons(new Binding(new SpecVar("b"), vars[1]), list);
   
    List<Substitution> subs = env.findLabels(list, fv);
   
    assertEquals(2, subs.size());
   
    Iterator<Substitution> itr = subs.iterator();
    assertTrue(itr.hasNext());
    Substitution subA = itr.next();
    assertTrue(itr.hasNext());
    Substitution subB = itr.next();
   
    assertEquals(2, subA.size());
    assertEquals(2, subB.size());
   
    if (subA.getSub(new SpecVar("a")).equals(labels[4])) {
      assertEquals(labels[1], subA.getSub(new SpecVar("b")));     
      assertEquals(labels[3], subB.getSub(new SpecVar("a")));     
      assertEquals(labels[1], subB.getSub(new SpecVar("b")));     
    }
    else {
      assertEquals(labels[3], subA.getSub(new SpecVar("a")));     
      assertEquals(labels[1], subA.getSub(new SpecVar("b")));     
      assertEquals(labels[4], subB.getSub(new SpecVar("a")));     
      assertEquals(labels[1], subB.getSub(new SpecVar("b")));           
    }
  }
View Full Code Here

  }
 
  @Test
  public void testUnionRemove() throws FusionException {
    FreeVars vars1 = new FreeVars();
    vars1 = vars1.addVar(new SpecVar("foo"), "SnaFu");
    vars1 = vars1.addVar(new SpecVar("bazar"), "Bazar");

    FreeVars vars2 = new FreeVars();
    vars2 = vars2.addVar(new SpecVar("foo"), "Foo");
    vars2 = vars2.addVar(new SpecVar("bar"), "Bar");
    vars2 = vars2.union(vars1).subtract(vars2);
    assertEquals(1, vars2.size());
    assertEquals("Bazar", vars2.getType(new SpecVar("bazar")));
  }
View Full Code Here

  }
 
  @Test
  public void testFindLabelsPossibleFromSuperTypes() {
    FusionEnvironment<?> env = new FusionEnvironment<TestAliasContext>(aliases, null, null, testH, new InferenceEnvironment(null), Variant.PRAGMATIC_VARIANT);
    FreeVars fv = new FreeVars().addVar(new SpecVar("a"), "SnaFu").addVar(new SpecVar("b"), "Baz");
    ConsList<Binding> list = ConsList.empty();
   
    list = ConsList.cons(new Binding(new SpecVar("a"), vars[3]), list);
    list = ConsList.cons(new Binding(new SpecVar("b"), vars[4]), list);
   
    List<Substitution> subs = env.findLabels(list, fv);
   
    assertEquals(2, subs.size());

    Iterator<Substitution> itr = subs.iterator();
    assertTrue(itr.hasNext());
    Substitution subA = itr.next();
    assertTrue(itr.hasNext());
    Substitution subB = itr.next()
   
    assertEquals(2, subA.size());
    assertEquals(2, subB.size());
   
    if (subA.getSub(new SpecVar("b")).equals(labels[6])) {
      assertEquals(labels[0], subA.getSub(new SpecVar("a")));     
      assertEquals(labels[5], subB.getSub(new SpecVar("b")));     
      assertEquals(labels[0], subB.getSub(new SpecVar("a")));     
    }
    else {
      assertEquals(labels[5], subA.getSub(new SpecVar("b")));     
      assertEquals(labels[0], subA.getSub(new SpecVar("a")));     
      assertEquals(labels[6], subB.getSub(new SpecVar("b")));     
      assertEquals(labels[0], subB.getSub(new SpecVar("a")));           
    }
  }
View Full Code Here

  }

  @Test
  public void testUnionUnequal() throws FusionException {
    FreeVars vars1 = new FreeVars();
    vars1 = vars1.addVar(new SpecVar("foo"), "SnaFu");
    vars1 = vars1.addVar(new SpecVar("bar"), "Bazar");

    FreeVars vars2 = new FreeVars();
    vars2 = vars2.addVar(new SpecVar("foo"), "Bazar");
    vars2 = vars2.addVar(new SpecVar("bar"), "Snafu");
    vars2 = vars2.union(vars1);
    assertEquals(2, vars2.size());
    assertEquals(FreeVars.OBJECT_TYPE, vars2.getType(new SpecVar("foo")));
    assertEquals(FreeVars.OBJECT_TYPE, vars2.getType(new SpecVar("bar")));
  }
View Full Code Here

TOP

Related Classes of edu.cmu.cs.fusion.constraint.SpecVar

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.