public void MurmurHash3Config_Defaults_HaventChanged()
        {
            var murmurHash3Config = new MurmurHash3Config();


            Assert.Equal(32, murmurHash3Config.HashSizeInBits);
            Assert.Equal(0U, murmurHash3Config.Seed);
        }
示例#2
0
        public void play()
        {
            var config1 = new MurmurHash3Config();

            config1.HashSizeInBits = 64;
            config1.Seed           = (uint)12534;
            var    hashfac = MurmurHash3Factory.Instance.Create();
            string s       = "Andrew Douglas";
            var    hashval = hashfac.ComputeHash(Encoding.ASCII.GetBytes(s));
        }
        public void MurmurHash3Config_Clone_Works()
        {
            var murmurHash3Config = new MurmurHash3Config()
            {
                HashSizeInBits = 64,
                Seed           = 1337U,
            };

            var murmurHash3ConfigClone = murmurHash3Config.Clone();

            Assert.IsType <MurmurHash3Config>(murmurHash3ConfigClone);

            Assert.Equal(murmurHash3Config.HashSizeInBits, murmurHash3ConfigClone.HashSizeInBits);
            Assert.Equal(murmurHash3Config.Seed, murmurHash3ConfigClone.Seed);
        }
示例#4
0
        public void MurmurHash3Factory_Create_Works()
        {
            var defaultMurmurHash3Config = new MurmurHash3Config();

            var murmurHash3Factory = MurmurHash3Factory.Instance;
            var murmurHash3        = murmurHash3Factory.Create();

            Assert.NotNull(murmurHash3);
            Assert.IsType <MurmurHash3_Implementation>(murmurHash3);


            var resultingMurmurHash3Config = murmurHash3.Config;

            Assert.Equal(defaultMurmurHash3Config.HashSizeInBits, resultingMurmurHash3Config.HashSizeInBits);
            Assert.Equal(defaultMurmurHash3Config.Seed, resultingMurmurHash3Config.Seed);
        }
示例#5
0
        public BloomFilter(int n, double p)
        {
            this.n         = n;
            this.p         = p;
            this.bits      = BloomFilter.determine_size(n, p);
            this.bit_array = new byte[(this.bits / 8) + 1]; // + 1 is caution.
            int nhash = BloomFilter.hashes_required(n, this.bits);

            hash_functions = new IMurmurHash3[nhash];
            for (int i = 0; i < nhash; i++)
            {
                MurmurHash3Config config = new MurmurHash3Config();
                config.Seed           = (uint)i;
                config.HashSizeInBits = 32;

                hash_functions[i] = MurmurHash3Factory.Instance.Create(config);
            }
        }
示例#6
0
        public MinHashAlgorithm(int hashCount, int groupSize, int windowSize, int blockSize = 0, int step = 0)
        {
            _hashCount  = hashCount;
            _groupSize  = groupSize;
            _windowSize = windowSize;
            _blockSize  = blockSize;
            _step       = step;
            var factory = MurmurHash3Factory.Instance;

            _hashFunctions = new IHashFunction[_hashCount];
            for (var i = 0; i < _hashCount; i++)
            {
                var config = new MurmurHash3Config
                {
                    HashSizeInBits = 32,
                    Seed           = (uint.MaxValue / (uint)hashCount) * ((uint)i)
                };
                _hashFunctions[i] = factory.Create(config);
            }

            _groupHashFunction = CityHashFactory.Instance.Create();
        }