Search in sources :

Example 6 with Expr

use of org.batfish.z3.expr.Expr in project batfish by batfish.

the class BoolExprTransformerTest method testVisitRangeMatchExpr.

@Test
public void testVisitRangeMatchExpr() {
    BooleanExpr expr = RangeMatchExpr.fromSubRanges(BasicHeaderField.DSCP, BasicHeaderField.DSCP.getSize(), ImmutableSet.of(new SubRange(1, 3), new SubRange(5, 7)));
    assertThat(toBoolExpr(expr, _input, _nodContext), instanceOf(BoolExpr.class));
}
Also used : BoolExpr(com.microsoft.z3.BoolExpr) BoolExprTransformer.toBoolExpr(org.batfish.z3.expr.visitors.BoolExprTransformer.toBoolExpr) SubRange(org.batfish.datamodel.SubRange) BooleanExpr(org.batfish.z3.expr.BooleanExpr) Test(org.junit.Test)

Example 7 with Expr

use of org.batfish.z3.expr.Expr in project batfish by batfish.

the class IpSpaceBooleanExprTransformerTest method testVisitIpWildcardSetIpSpace.

@Test
public void testVisitIpWildcardSetIpSpace() {
    IpWildcard includeWildcard = new IpWildcard("1.1.1.1");
    IpWildcard excludeWildcard = new IpWildcard("2.2.2.2");
    IpWildcardSetIpSpace ipSpace = IpWildcardSetIpSpace.builder().including(includeWildcard).excluding(excludeWildcard).build();
    BooleanExpr expr = ipSpace.accept(SRC_IP_SPACE_BOOLEAN_EXPR_TRANSFORMER);
    BooleanExpr includeExpr = includeWildcard.accept(SRC_IP_SPACE_BOOLEAN_EXPR_TRANSFORMER);
    BooleanExpr excludeExpr = excludeWildcard.accept(SRC_IP_SPACE_BOOLEAN_EXPR_TRANSFORMER);
    assertThat(expr, equalTo(new AndExpr(ImmutableList.of(new NotExpr(excludeExpr), includeExpr))));
}
Also used : IpWildcard(org.batfish.datamodel.IpWildcard) AndExpr(org.batfish.z3.expr.AndExpr) IpWildcardSetIpSpace(org.batfish.datamodel.IpWildcardSetIpSpace) NotExpr(org.batfish.z3.expr.NotExpr) BooleanExpr(org.batfish.z3.expr.BooleanExpr) Test(org.junit.Test)

Example 8 with Expr

use of org.batfish.z3.expr.Expr in project batfish by batfish.

the class RelationCollectorTest method testVisitQueryStatement.

/**
 * Test that collectRelations traverses the child of a QueryStatement.
 */
@Test
public void testVisitQueryStatement() {
    StateExpr p1 = newStateExpr();
    QueryStatement expr = new QueryStatement(p1);
    Set<String> expectedRelations = ImmutableSet.of(getNodName(_input, p1));
    assertThat(collectRelations(_input, expr), equalTo(expectedRelations));
}
Also used : StateExpr(org.batfish.z3.expr.StateExpr) QueryStatement(org.batfish.z3.expr.QueryStatement) Test(org.junit.Test)

Example 9 with Expr

use of org.batfish.z3.expr.Expr in project batfish by batfish.

the class ExprPrinter method printCollapsedComplexExpr.

private void printCollapsedComplexExpr(List<Expr> subExpressions) {
    _sb.append("(");
    int size = subExpressions.size();
    if (size > 0) {
        printExpr(subExpressions.get(0));
        for (int i = 1; i < size; i++) {
            _sb.append(" ");
            printExpr(subExpressions.get(i));
        }
        Expr lastSubExpression = subExpressions.get(size - 1);
        if (IsComplexVisitor.isComplexExpr(lastSubExpression)) {
            _sb.append(" ");
        }
    }
    _sb.append(")");
}
Also used : PrefixMatchExpr(org.batfish.z3.expr.PrefixMatchExpr) OrExpr(org.batfish.z3.expr.OrExpr) TrueExpr(org.batfish.z3.expr.TrueExpr) ExtractExpr(org.batfish.z3.expr.ExtractExpr) StateExpr(org.batfish.z3.expr.StateExpr) HeaderSpaceMatchExpr(org.batfish.z3.expr.HeaderSpaceMatchExpr) IfExpr(org.batfish.z3.expr.IfExpr) Expr(org.batfish.z3.expr.Expr) BitVecExpr(org.batfish.z3.expr.BitVecExpr) FalseExpr(org.batfish.z3.expr.FalseExpr) IpSpaceMatchExpr(org.batfish.z3.expr.IpSpaceMatchExpr) NotExpr(org.batfish.z3.expr.NotExpr) VarIntExpr(org.batfish.z3.expr.VarIntExpr) SaneExpr(org.batfish.z3.expr.SaneExpr) AndExpr(org.batfish.z3.expr.AndExpr) LitIntExpr(org.batfish.z3.expr.LitIntExpr) CurrentIsOriginalExpr(org.batfish.z3.expr.CurrentIsOriginalExpr) EqExpr(org.batfish.z3.expr.EqExpr) RangeMatchExpr(org.batfish.z3.expr.RangeMatchExpr) IdExpr(org.batfish.z3.expr.IdExpr) ListExpr(org.batfish.z3.expr.ListExpr)

Example 10 with Expr

use of org.batfish.z3.expr.Expr in project batfish by batfish.

the class ExprPrinter method visitBitVecExpr.

@Override
public void visitBitVecExpr(BitVecExpr bitVecExpr) {
    List<Expr> subExpressions = ImmutableList.of(new IdExpr("_"), new IdExpr("BitVec"), new IdExpr(Integer.toString(bitVecExpr.getSize())));
    printCollapsedComplexExpr(subExpressions);
}
Also used : PrefixMatchExpr(org.batfish.z3.expr.PrefixMatchExpr) OrExpr(org.batfish.z3.expr.OrExpr) TrueExpr(org.batfish.z3.expr.TrueExpr) ExtractExpr(org.batfish.z3.expr.ExtractExpr) StateExpr(org.batfish.z3.expr.StateExpr) HeaderSpaceMatchExpr(org.batfish.z3.expr.HeaderSpaceMatchExpr) IfExpr(org.batfish.z3.expr.IfExpr) Expr(org.batfish.z3.expr.Expr) BitVecExpr(org.batfish.z3.expr.BitVecExpr) FalseExpr(org.batfish.z3.expr.FalseExpr) IpSpaceMatchExpr(org.batfish.z3.expr.IpSpaceMatchExpr) NotExpr(org.batfish.z3.expr.NotExpr) VarIntExpr(org.batfish.z3.expr.VarIntExpr) SaneExpr(org.batfish.z3.expr.SaneExpr) AndExpr(org.batfish.z3.expr.AndExpr) LitIntExpr(org.batfish.z3.expr.LitIntExpr) CurrentIsOriginalExpr(org.batfish.z3.expr.CurrentIsOriginalExpr) EqExpr(org.batfish.z3.expr.EqExpr) RangeMatchExpr(org.batfish.z3.expr.RangeMatchExpr) IdExpr(org.batfish.z3.expr.IdExpr) ListExpr(org.batfish.z3.expr.ListExpr) IdExpr(org.batfish.z3.expr.IdExpr)

Aggregations

BooleanExpr (org.batfish.z3.expr.BooleanExpr)8 Test (org.junit.Test)8 AndExpr (org.batfish.z3.expr.AndExpr)5 HeaderSpaceMatchExpr (org.batfish.z3.expr.HeaderSpaceMatchExpr)5 NotExpr (org.batfish.z3.expr.NotExpr)5 PrefixMatchExpr (org.batfish.z3.expr.PrefixMatchExpr)5 StateExpr (org.batfish.z3.expr.StateExpr)5 BitVecExpr (org.batfish.z3.expr.BitVecExpr)4 CurrentIsOriginalExpr (org.batfish.z3.expr.CurrentIsOriginalExpr)4 EqExpr (org.batfish.z3.expr.EqExpr)4 Expr (org.batfish.z3.expr.Expr)4 ExtractExpr (org.batfish.z3.expr.ExtractExpr)4 FalseExpr (org.batfish.z3.expr.FalseExpr)4 IdExpr (org.batfish.z3.expr.IdExpr)4 IfExpr (org.batfish.z3.expr.IfExpr)4 IpSpaceMatchExpr (org.batfish.z3.expr.IpSpaceMatchExpr)4 ListExpr (org.batfish.z3.expr.ListExpr)4 LitIntExpr (org.batfish.z3.expr.LitIntExpr)4 OrExpr (org.batfish.z3.expr.OrExpr)4 RangeMatchExpr (org.batfish.z3.expr.RangeMatchExpr)4