コード例 #1
0
        public void SimpleCountableHashTest()
        {
            var o     = BigInteger.One;
            var c     = FeatureUtil.makeFullCVR(1, 1, 1, 1, 1, 1, 1);
            var bvbi  = o | (o << 1) | (o << 2) | (o << 3) | (o << 4) | (o << (20 * 5)) | (o << (20 * 5 + 1));
            var bv    = UInt128.FromBigInteger(bvbi);
            var bv_is = LSHCalc.h7(c);

            Assert.AreEqual(bv, bv_is);
        }
コード例 #2
0
        public void LessSimpleHashTest()
        {
            var x     = 37;                     // 100101
            var y     = 21;                     // 010101
            var z     = 16777215;               // 111111111111111111111111
            var bv    = 18446742974197925427UL; // 111111111111111111111111000000000000000000000000000011000110011
            var bv_is = LSHCalc.hashi(x, y, z);

            Assert.AreEqual(bv, bv_is);
        }
コード例 #3
0
        public void HashesShouldNotCollideTest()
        {
            var r1 = Countable.NewFullCVectorResultant(7, 9, 7, 14, 0, 0, 0);
            var r2 = Countable.NewFullCVectorResultant(3, 9, 7, 14, 0, 0, 0);

            var lsh1 = LSHCalc.h7(r1);
            var lsh2 = LSHCalc.h7(r2);

            Assert.AreNotEqual(lsh1, lsh2);
        }
コード例 #4
0
        public void SimpleHashTest()
        {
            var x     = 1;
            var y     = 1;
            var z     = 1;
            var bv    = Convert.ToUInt64(0x10000000003);
            var bv_is = LSHCalc.hashi(x, y, z);

            Assert.AreEqual(bv, bv_is);
        }