public void BVUGT() { var cfb = GetConstantFoldingBuilder(); var x = GetVarAndIdExpr("x", Microsoft.Boogie.Type.GetBvType(4)).Item2; var y = GetVarAndIdExpr("y", Microsoft.Boogie.Type.GetBvType(4)).Item2; var e = cfb.Not(cfb.BVUGT(x, y)); var asBVULE = ExprUtil.AsBVULE(e); Assert.IsNotNull(asBVULE); Assert.AreSame(x, asBVULE.Args[0]); Assert.AreSame(y, asBVULE.Args[1]); }
public void NoFold() { var builders = GetSimpleAndConstantFoldingBuilder(); SimpleExprBuilder sfb = builders.Item1; ConstantFoldingExprBuilder cfb = builders.Item2; var arg0 = GetVarAndIdExpr("x", BasicType.GetBvType(8)).Item2; var arg1 = GetVarAndIdExpr("y", BasicType.GetBvType(8)).Item2; var simpleResult = sfb.BVULE(arg0, arg1); var result = cfb.BVULE(arg0, arg1); CheckIsBoolType(result); CheckIsBoolType(simpleResult); Assert.IsNull(ExprUtil.AsLiteral(result)); Assert.IsNotNull(ExprUtil.AsBVULE(result)); Assert.IsTrue(ExprUtil.StructurallyEqual(result, simpleResult)); }