You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am upgrading my project to .NET Core 2.0 and discovered that the LurchTable tests have a method that depends on the implementation of new Guid(byte[]) and guid.ToByteArray():
privatestaticRandomrandom=newRandom();privatestaticintiCounter=0x01010101;publicstaticGuidNextHashCollision(Guidguid){varbytes=guid.ToByteArray();// Modify bytes 8 & 9 with random numberArray.Copy(BitConverter.GetBytes((short)random.Next()),0,bytes,8,2);// Increment bytes 11, 12, 13, & 14Array.Copy(BitConverter.GetBytes(BitConverter.ToInt32(bytes,11)+Interlocked.Increment(refiCounter)),0,bytes,11,4);Guidresult=newGuid(bytes);
#if !NETCOREAPP2_0Assert.AreEqual(guid.GetHashCode(),result.GetHashCode());
#endif
returnresult;}
The assert fails in .NET Core 2.0 because the underlying implementation has changed. What I am wondering is if there is some dependency of LurchTable on the Guid generation algorithm, or if this is just for testing? What reference you were following to come up with this logic?
Removing the offending assert and the TestNextHashCollision test seems to have no effect on the results of other tests, but I just wanted to be sure there isn't anything special about the design of LurchTable that relies on the Guid creation algorithm.
The text was updated successfully, but these errors were encountered:
NightOwl888
changed the title
Does LurchTable depend on the implementation of new Guid(byte[]) and guid.ToByteArray()?
Does LurchTable depend on the implementation of new Guid(byte[]) and guid.ToByteArray()?
Sep 11, 2017
I don't recall any explicit dependency on Guid at all... The test above is using the Guid class to create duplicate value for .GetHashCode() while keeping the .Equals() false. This could be just as easily coded as an independent class instead of leveraging Guid.
I am upgrading my project to .NET Core 2.0 and discovered that the LurchTable tests have a method that depends on the implementation of
new Guid(byte[])
andguid.ToByteArray()
:The assert fails in .NET Core 2.0 because the underlying implementation has changed. What I am wondering is if there is some dependency of LurchTable on the Guid generation algorithm, or if this is just for testing? What reference you were following to come up with this logic?
Removing the offending assert and the TestNextHashCollision test seems to have no effect on the results of other tests, but I just wanted to be sure there isn't anything special about the design of LurchTable that relies on the Guid creation algorithm.
The text was updated successfully, but these errors were encountered: