summaryrefslogtreecommitdiff
path: root/Source/UnitTests
diff options
context:
space:
mode:
authorGravatar Dan Liew <daniel.liew@imperial.ac.uk>2015-01-29 09:29:42 +0000
committerGravatar Dan Liew <daniel.liew@imperial.ac.uk>2015-01-29 09:29:42 +0000
commit0e3b0f7e24fb00bebd190a801d82f4c48e443786 (patch)
treecffa7ba95e9692b1983e7f1fc7978aebedd089b6 /Source/UnitTests
parent07479d57e747cac41ffe4380165225dd4502f7b3 (diff)
Add unit tests to check that ComputeHashCode() and GetHashCode() agree
for BvExtractExpr, BvConcatExpr and OldExpr.
Diffstat (limited to 'Source/UnitTests')
-rw-r--r--Source/UnitTests/CoreTests/ExprImmutability.cs24
1 files changed, 24 insertions, 0 deletions
diff --git a/Source/UnitTests/CoreTests/ExprImmutability.cs b/Source/UnitTests/CoreTests/ExprImmutability.cs
index a1c08e9e..3dd2e427 100644
--- a/Source/UnitTests/CoreTests/ExprImmutability.cs
+++ b/Source/UnitTests/CoreTests/ExprImmutability.cs
@@ -50,6 +50,30 @@ namespace CoreTests
}
[Test()]
+ public void CachedHashCodeBvExtractExpr()
+ {
+ var literalBv = new LiteralExpr(Token.NoToken, Microsoft.Basetypes.BigNum.FromInt(0), 4, /*immutable=*/true);
+ var bvExtract = new BvExtractExpr(Token.NoToken, literalBv, 3, 0, /*immutable=*/true);
+ Assert.AreEqual(bvExtract.ComputeHashCode(), bvExtract.GetHashCode());
+ }
+
+ [Test()]
+ public void CachedHashCodeBvConcatExpr()
+ {
+ var literalBv = new LiteralExpr(Token.NoToken, Microsoft.Basetypes.BigNum.FromInt(0), 4, /*immutable=*/true);
+ var bvConcat = new BvConcatExpr(Token.NoToken, literalBv, literalBv, /*immutable=*/true);
+ Assert.AreEqual(bvConcat.ComputeHashCode(), bvConcat.GetHashCode());
+ }
+
+ [Test()]
+ public void CachedHashCodeOldExpr()
+ {
+ var literalBv = new LiteralExpr(Token.NoToken, Microsoft.Basetypes.BigNum.FromInt(0), 4, /*immutable=*/true);
+ var oldExpr = new OldExpr(Token.NoToken, literalBv, /*immutable=*/true);
+ Assert.AreEqual(oldExpr.ComputeHashCode(), oldExpr.GetHashCode());
+ }
+
+ [Test()]
public void CachedHashCodeForAllExpr()
{
var x = new BoundVariable(Token.NoToken, new TypedIdent(Token.NoToken, "x", BasicType.Int));