public void TwoHashes_WithSameData_AreSame() { var inputX = new byte[] { 0, 1, 2, 3, 4 }; var inputY = new byte[] { 0, 1, 2, 3, 4 }; var equalityComparer = new HashEqualityComparer(); var x = Mock.Of <IHash>(m => m.Bytes == inputX); var y = Mock.Of <IHash>(m => m.Bytes == inputY); Assert.IsTrue(equalityComparer.Equals(x, y)); }
public void TwoHashes_WithDifferentData_AreDifferent() { var inputX = new byte[] { 0, 1, 2, 3, 4 }; var inputY = new byte[] { 1, 2, 3, 4, 5 }; var equalityComparer = new HashEqualityComparer(); var x = Mock.Of <IHash>(m => m.Bytes == inputX); var y = Mock.Of <IHash>(m => m.Bytes == inputY); Assert.IsFalse(equalityComparer.Equals(x, y)); }
public void HashEqualityComparer_Equals_SameSize1() { byte[] vector1 = "92937945B518814341DE3F726500D4FF".HexToBinary(); byte[] vector2 = (byte[])vector1.Clone(); bool result = comparer.Equals(vector1, vector2); Assert.AreEqual(true, result); }
/// <summary> /// Constructor /// </summary> protected KeyConfigurationBase(ICountConfiguration <TCount> configuration, bool createValueFilter = true) : base(createValueFilter) { _countConfiguration = configuration; _getId = GetIdImpl; _idHash = id => { var res = BitConverter.ToInt32(_murmurHash.Hash(BitConverter.GetBytes(id)), 0); return(res == 0 ? 1 : res); }; _hashes = (hash, hashCount) => ComputeHash(hash, BitConverter.ToInt32(_murmurHash.Hash(BitConverter.GetBytes(hash), 912345678), 0), hashCount, 1); //the hashSum value is an identity hash. _entityHash = e => IdHash(GetId(e)); _isPure = (d, p) => CountConfiguration.IsPure(d.Counts[p]) && HashEqualityComparer.Equals(d.HashSumProvider[p], IdHash(d.IdSumProvider[p])); _idAdd = _idRemove = (id1, id2) => id1 ^ id2; _idIntersect = (id1, id2) => id1 & id2; _hashIdentity = 0; _idIdentity = 0L; _hashAdd = _hashRemove = (h1, h2) => h1 ^ h2; _hashIntersect = (h1, h2) => h1 & h2; _idEqualityComparer = EqualityComparer <long> .Default; _hashEqualityComparer = EqualityComparer <int> .Default; }