예제 #1
0
        public void CritBitAddManaged()
        {
            var critbit = new CritBitTree <object>();

            foreach (var b in _bytes)
            {
                critbit.Add(b, null);
            }
        }
예제 #2
0
        public void Setup()
        {
            var random = new Random(1234);

            for (int i = 0; i < _bytes.Length; i++)
            {
                var bytes = new byte[20];
                for (int j = 0; j < 20; j++)
                {
                    bytes[j] = (byte)Chars[random.Next(0, 15)];
                }
                _bytes[i] = bytes;

                _hashSet.Add(bytes);
                _dictionary.Add(bytes, null);
                _concurrentDictionary.TryAdd(bytes, null);
                _critBitTree.Add(bytes, null);
                _critBitTreeUnmanaged.Add(bytes);
            }
        }
예제 #3
0
        public void TestMethod1()
        {
            var critBitTree = new CritBitTree <string>();

            var helloWorldBytes = Encoding.ASCII.GetBytes(HelloWorldString);
            var result          = critBitTree.Add(helloWorldBytes, HelloWorldString);

            Assert.IsTrue(result);
            Assert.IsTrue(critBitTree.ContainsKey(helloWorldBytes));

            result = critBitTree.Add(helloWorldBytes, HelloWorldString);
            Assert.IsFalse(result);

            var testBytes = Encoding.ASCII.GetBytes(TestString);

            result = critBitTree.Add(testBytes, TestString);
            Assert.IsTrue(result);
            Assert.IsTrue(critBitTree.ContainsKey(testBytes));
            Assert.IsFalse(critBitTree.ContainsKey(Encoding.ASCII.GetBytes("alsdjfaösfdölkjsa")));

            result = critBitTree.Add(testBytes, null);
            Assert.IsFalse(result);
            Assert.IsTrue(critBitTree.ContainsKey(testBytes));

            var helloTestBytes = Encoding.ASCII.GetBytes(HelloTestString);

            result = critBitTree.Add(helloTestBytes, HelloTestString);
            Assert.IsTrue(result);

            result = critBitTree.Add(helloTestBytes, null);
            Assert.IsFalse(result);

            result = critBitTree.Add(helloTestBytes, null);
            Assert.IsFalse(result);
            result = critBitTree.Add(helloTestBytes, null);
            Assert.IsFalse(result);
            result = critBitTree.Add(helloTestBytes, null);
            Assert.IsFalse(result);

            Assert.IsTrue(critBitTree.ContainsKey(helloWorldBytes));
            Assert.IsTrue(critBitTree.ContainsKey(helloTestBytes));
            Assert.IsTrue(critBitTree.ContainsKey(testBytes));

            Assert.IsFalse(critBitTree.ContainsKey(Encoding.ASCII.GetBytes("Hello my test")));
            Assert.IsFalse(critBitTree.ContainsKey(Encoding.ASCII.GetBytes("asf")));
            Assert.IsFalse(critBitTree.ContainsKey(Encoding.ASCII.GetBytes("ulululu")));

            Assert.IsTrue(critBitTree.Add(Encoding.ASCII.GetBytes("ulululu"), "ulululu"));
            Assert.IsTrue(critBitTree.Add(Encoding.ASCII.GetBytes("ulululu1"), "ulululu1"));
            Assert.IsTrue(critBitTree.Add(Encoding.ASCII.GetBytes("ulululu2"), "ulululu2"));
            Assert.IsTrue(critBitTree.Add(Encoding.ASCII.GetBytes("ulululu3"), "ulululu3"));
            Assert.IsTrue(critBitTree.Add(Encoding.ASCII.GetBytes("ulululu4"), "ulululu4"));

            var longBytes = new byte[1000];

            Assert.IsTrue(critBitTree.Add(longBytes, "Long bytes"));
            Assert.IsTrue(critBitTree.ContainsKey(longBytes));

            Assert.IsFalse(critBitTree.Remove(Encoding.ASCII.GetBytes("asdf")));
            var count = critBitTree.Count();

            Assert.IsTrue(critBitTree.Remove(helloWorldBytes));

            Assert.IsTrue(critBitTree.Count() == count - 1);
            Assert.IsFalse(critBitTree.ContainsKey(helloWorldBytes));
            Assert.IsTrue(critBitTree.ContainsKey(testBytes));
        }