From 0e3b0f7e24fb00bebd190a801d82f4c48e443786 Mon Sep 17 00:00:00 2001 From: Dan Liew Date: Thu, 29 Jan 2015 09:29:42 +0000 Subject: Add unit tests to check that ComputeHashCode() and GetHashCode() agree for BvExtractExpr, BvConcatExpr and OldExpr. --- Source/UnitTests/CoreTests/ExprImmutability.cs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) 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 @@ -49,6 +49,30 @@ namespace CoreTests Assert.AreEqual(nary.ComputeHashCode(), nary.GetHashCode()); } + [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() { -- cgit v1.2.3