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));
}
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))));
}
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));
}
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(")");
}
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);
}
Aggregations