コード例 #1
0
        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);
        }
コード例 #2
0
        public void AffineHash_Hash_Distributes_Char()
        {
            Random             random = AffineHashTests.Random();
            AffineHash         target = new AffineHash(random);
            IEnumerable <char> values = Enumerable.Range(char.MinValue, char.MaxValue - char.MinValue + 1)
                                        .Select(n => (char)n);

            AffineHashTests.AssertHashDistribution(target, values);
        }
コード例 #3
0
        public void AffineHash_Hash_Distributes_UInt16()
        {
            Random               random = AffineHashTests.Random();
            AffineHash           target = new AffineHash(random);
            IEnumerable <ushort> values = Enumerable.Range(ushort.MinValue, ushort.MaxValue - ushort.MinValue + 1)
                                          .Select(n => (ushort)n);

            AffineHashTests.AssertHashDistribution(target, values);
        }
コード例 #4
0
        public void AffineHash_Hash_Distributes_Byte()
        {
            Random             random = AffineHashTests.Random();
            AffineHash         target = new AffineHash(random);
            IEnumerable <byte> values = Enumerable.Range(byte.MinValue, byte.MaxValue - byte.MinValue + 1)
                                        .Select(n => (byte)n);

            AffineHashTests.AssertHashDistribution(target, values);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        public void AffineHash_Hash_Distributes_String()
        {
            Random               random = AffineHashTests.Random();
            AffineHash           target = new AffineHash(random);
            IEnumerable <string> values = AffineHashTests.RandomCharArrays(random, 101, 10000)
                                          .Select(b => new string(b));

            AffineHashTests.AssertHashDistribution(target, values);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        public void AffineHash_Hash_Distributes_Decimal()
        {
            Random                random = AffineHashTests.Random();
            AffineHash            target = new AffineHash(random);
            IEnumerable <decimal> values = Enumerable.Range(0, 10000)
                                           .Select(n => new decimal(random.Next(), random.Next(), random.Next(), random.NextDouble() > 0.5D, (byte)random.Next(29)));

            AffineHashTests.AssertHashDistribution(target, values);
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        public void AffineHash_Hash_Matches_Identical_String_Segments()
        {
            Random     random   = AffineHashTests.Random();
            AffineHash target   = new AffineHash(random);
            string     value    = "TestTest";
            int        expected = target.GetHashCode(value, 0, 4);
            int        actual   = target.GetHashCode(value, 4, 4);

            Assert.AreEqual(expected, actual);
        }
コード例 #12
0
        public void AffineHash_Hash_Matches_Identical_Char_Array_Segments()
        {
            Random     random = AffineHashTests.Random();
            AffineHash target = new AffineHash(random);

            char[] value    = { 'T', 'e', 's', 't', 'T', 'e', 's', 't' };
            int    expected = target.GetHashCode(value, 0, 4);
            int    actual   = target.GetHashCode(value, 4, 4);

            Assert.AreEqual(expected, actual);
        }
コード例 #13
0
        public void AffineHash_Hash_Matches_Identical_Byte_Array_Segments()
        {
            Random     random = AffineHashTests.Random();
            AffineHash target = new AffineHash(random);

            byte[] value    = { 0, 1, 2, 3, 0, 1, 2, 3 };
            int    expected = target.GetHashCode(value, 0, 4);
            int    actual   = target.GetHashCode(value, 4, 4);

            Assert.AreEqual(expected, actual);
        }