public void AffineHash_Hash_Distributes_Byte_Array() { Random random = AffineHashTests.Random(); AffineHash target = new AffineHash(random); IEnumerable <byte[]> values = AffineHashTests.RandomByteArrays(random, 101, 10000); AffineHashTests.AssertHashDistribution(target, values); }
public void AffineHash_Hash_Distributes_UInt64() { Random random = AffineHashTests.Random(); AffineHash target = new AffineHash(random); IEnumerable <ulong> values = AffineHashTests.RandomByteArrays(random, sizeof(ulong), 10000) .Select(b => BitConverter.ToUInt64(b, 0)); AffineHashTests.AssertHashDistribution(target, values); }
public void AffineHash_Hash_Distributes_Single() { Random random = AffineHashTests.Random(); AffineHash target = new AffineHash(random); IEnumerable <float> values = AffineHashTests.RandomByteArrays(random, sizeof(float), 10000) .Select(b => BitConverter.ToSingle(b, 0)); AffineHashTests.AssertHashDistribution(target, values); }
public void AffineHash_Hash_Distributes_Guid() { Random random = AffineHashTests.Random(); AffineHash target = new AffineHash(random); IEnumerable <Guid> values = AffineHashTests.RandomByteArrays(random, 16, 10000) .Select(b => new Guid(b)); AffineHashTests.AssertHashDistribution(target, values); }
public void AffineHash_Hash_Distributes_DateTimeOffset() { Random random = AffineHashTests.Random(); AffineHash target = new AffineHash(random); IEnumerable <DateTimeOffset> values = AffineHashTests.RandomByteArrays(random, sizeof(ulong), 10000) .Select(b => new DateTimeOffset((long)(BitConverter.ToUInt64(b, 0) % (ulong)DateTime.MaxValue.Ticks), TimeSpan.FromMinutes(random.Next(-840, 840)))); AffineHashTests.AssertHashDistribution(target, values); }
/// <summary> /// Generates random character arrays for test data. /// </summary> /// <param name="random">The random number generator to use.</param> /// <param name="length">The length of each character array.</param> /// <param name="count">The total number of character arrays to generate.</param> /// <returns>A list of random character arrays.</returns> private static IEnumerable <char[]> RandomCharArrays(Random random, int length, int count) { char[] buffer = new char[length]; foreach (byte[] bytes in AffineHashTests.RandomByteArrays(random, length * sizeof(char), count)) { int o = 0; for (int i = 0; i < buffer.Length; i++) { buffer[i] = BitConverter.ToChar(bytes, o); o += sizeof(char); } yield return(buffer); } }