Search in sources :

Example 6 with Product

use of org.abs_models.frontend.ast.Product in project abstools by abstools.

the class SearchSolutionsTest method checkSol.

private static boolean checkSol(ChocoSolver s, Model m, String prod) throws Exception {
    Product p = m.findProduct(prod).getProduct();
    assertNotNull(p);
    Map<String, Integer> guess = p.getSolution();
    return s.checkSolution(guess, m);
}
Also used : Product(org.abs_models.frontend.ast.Product)

Example 7 with Product

use of org.abs_models.frontend.ast.Product in project abstools by abstools.

the class ProductDeclarationTest method complexExpression.

@Test
public void complexExpression() throws WrongProgramArgumentException {
    Model model = assertParse("product P1 = {F1, F2, F3} && {F3, F4} || {F5, F6} - {F6};");
    model.evaluateAllProductDeclarations();
    ProductDecl p = model.findProduct("P1");
    Product impl = p.getProduct();
    assertEquals(2, impl.getNumFeature());
    Set<String> expected = new HashSet<>(Arrays.asList("F3", "F5"));
    Set<String> actual = new HashSet<>();
    for (Feature f : impl.getFeatures()) actual.add(f.getName());
    assertEquals(expected, actual);
}
Also used : ProductDecl(org.abs_models.frontend.ast.ProductDecl) Model(org.abs_models.frontend.ast.Model) Product(org.abs_models.frontend.ast.Product) Feature(org.abs_models.frontend.ast.Feature) HashSet(java.util.HashSet) Test(org.junit.Test)

Example 8 with Product

use of org.abs_models.frontend.ast.Product in project abstools by abstools.

the class ProductDeclarationTest method unorderedProduct.

@Test
public void unorderedProduct() throws WrongProgramArgumentException {
    Model model = assertParse("product P2 = P1;" + "product P3 = P2;" + "product P1 = {F1, F2, F3};");
    model.evaluateAllProductDeclarations();
    ProductDecl p = model.findProduct("P3");
    Product impl = p.getProduct();
    assertEquals(3, impl.getNumFeature());
    Set<String> expected = new HashSet<>(Arrays.asList("F1", "F2", "F3"));
    Set<String> actual = new HashSet<>();
    for (Feature f : impl.getFeatures()) actual.add(f.getName());
    assertEquals(expected, actual);
}
Also used : ProductDecl(org.abs_models.frontend.ast.ProductDecl) Model(org.abs_models.frontend.ast.Model) Product(org.abs_models.frontend.ast.Product) Feature(org.abs_models.frontend.ast.Feature) HashSet(java.util.HashSet) Test(org.junit.Test)

Example 9 with Product

use of org.abs_models.frontend.ast.Product in project abstools by abstools.

the class ProductDeclarationTest method productFeatureSet.

@Test
public void productFeatureSet() throws WrongProgramArgumentException {
    Model model = assertParse("product P1 = {F1, F2, F3};");
    model.evaluateAllProductDeclarations();
    ProductDecl p = model.findProduct("P1");
    Product impl = p.getProduct();
    assertEquals(3, impl.getNumFeature());
    Set<String> expected = new HashSet<>(Arrays.asList("F1", "F2", "F3"));
    Set<String> actual = new HashSet<>();
    for (Feature f : impl.getFeatures()) actual.add(f.getName());
    assertEquals(expected, actual);
}
Also used : ProductDecl(org.abs_models.frontend.ast.ProductDecl) Model(org.abs_models.frontend.ast.Model) Product(org.abs_models.frontend.ast.Product) Feature(org.abs_models.frontend.ast.Feature) HashSet(java.util.HashSet) Test(org.junit.Test)

Example 10 with Product

use of org.abs_models.frontend.ast.Product in project abstools by abstools.

the class ProductDeclarationTest method productName.

@Test
public void productName() throws WrongProgramArgumentException {
    Model model = assertParse("product P1 = {F1, F2, F3};" + "product P2 = P1;");
    model.evaluateAllProductDeclarations();
    ProductDecl p = model.findProduct("P2");
    Product impl = p.getProduct();
    assertEquals(3, impl.getNumFeature());
    Set<String> expected = new HashSet<>(Arrays.asList("F1", "F2", "F3"));
    Set<String> actual = new HashSet<>();
    for (Feature f : impl.getFeatures()) actual.add(f.getName());
    assertEquals(expected, actual);
}
Also used : ProductDecl(org.abs_models.frontend.ast.ProductDecl) Model(org.abs_models.frontend.ast.Model) Product(org.abs_models.frontend.ast.Product) Feature(org.abs_models.frontend.ast.Feature) HashSet(java.util.HashSet) Test(org.junit.Test)

Aggregations

Product (org.abs_models.frontend.ast.Product)12 Model (org.abs_models.frontend.ast.Model)11 HashSet (java.util.HashSet)10 Feature (org.abs_models.frontend.ast.Feature)10 ProductDecl (org.abs_models.frontend.ast.ProductDecl)9 Test (org.junit.Test)9 Constraint (choco.kernel.model.constraints.Constraint)1 AttrAssignment (org.abs_models.frontend.ast.AttrAssignment)1 IntVal (org.abs_models.frontend.ast.IntVal)1 ChocoSolver (org.abs_models.frontend.mtvl.ChocoSolver)1