예제 #1
0
        public void Double()
        {
            JudyStringDictionary <double> dic = new JudyStringDictionary <double>();

            dic["key1"] = 17.235;
            dic["key3"] = double.MinValue;
            dic["key4"] = double.MaxValue;
            dic["key5"] = 0;

            Assert.AreEqual(17.235, dic["key1"]);

            double value;

            Assert.IsTrue(dic.TryGetValue("key3", out value));
            Assert.AreEqual(double.MinValue, value);

            Assert.IsTrue(dic.TryGetValue("key4", out value));
            Assert.AreEqual(double.MaxValue, value);

            Assert.IsTrue(dic.TryGetValue("key5", out value));
            Assert.AreEqual(0, value);

            Assert.IsFalse(dic.TryGetValue("key2", out value));
            Assert.AreEqual(0, value);

            Assert.IsTrue(dic.Remove("key1"));

            Assert.IsFalse(dic.TryGetValue("key1", out value));
            Assert.AreEqual(0, value);

            Assert.IsFalse(dic.Remove("key1"));

            dic.Dispose();
        }
예제 #2
0
        public void Reference()
        {
            Version v1 = new Version();
            Version v2 = new Version(1, 2);
            JudyStringDictionary <Version> dic = new JudyStringDictionary <Version>();

            dic["key1"] = v1;
            dic["key3"] = v2;
            dic["key4"] = null;

            Assert.AreSame(v1, dic["key1"]);

            Version value;

            Assert.IsTrue(dic.TryGetValue("key3", out value));
            Assert.AreSame(v2, value);

            Assert.IsTrue(dic.TryGetValue("key4", out value));
            Assert.IsNull(value);

            Assert.IsFalse(dic.TryGetValue("key2", out value));
            Assert.IsNull(value);

            Assert.IsTrue(dic.Remove("key1"));

            Assert.IsFalse(dic.TryGetValue("key1", out value));
            Assert.IsNull(value);

            Assert.IsFalse(dic.Remove("key1"));

            dic.Dispose();
        }
예제 #3
0
        public void Int64()
        {
            JudyStringDictionary <long> dic = new JudyStringDictionary <long>();

            dic["key1"] = 17;
            dic["key3"] = long.MinValue;
            dic["key4"] = long.MaxValue;
            dic["key5"] = 0;

            Assert.AreEqual(17, dic["key1"]);

            long value;

            Assert.IsTrue(dic.TryGetValue("key3", out value));
            Assert.AreEqual(long.MinValue, value);

            Assert.IsTrue(dic.TryGetValue("key4", out value));
            Assert.AreEqual(long.MaxValue, value);

            Assert.IsTrue(dic.TryGetValue("key5", out value));
            Assert.AreEqual(0, value);

            Assert.IsFalse(dic.TryGetValue("key2", out value));
            Assert.AreEqual(0, value);

            Assert.IsTrue(dic.Remove("key1"));

            Assert.IsFalse(dic.TryGetValue("key1", out value));
            Assert.AreEqual(0, value);

            Assert.IsFalse(dic.Remove("key1"));

            dic.Dispose();
        }
예제 #4
0
        public void Double()
        {
            JudyStringDictionary<double> dic = new JudyStringDictionary<double>();
            dic["key1"] = 17.235;
            dic["key3"] = double.MinValue;
            dic["key4"] = double.MaxValue;
            dic["key5"] = 0;

            Assert.AreEqual(17.235, dic["key1"]);

            double value;
            Assert.IsTrue(dic.TryGetValue("key3", out value));
            Assert.AreEqual(double.MinValue, value);

            Assert.IsTrue(dic.TryGetValue("key4", out value));
            Assert.AreEqual(double.MaxValue, value);

            Assert.IsTrue(dic.TryGetValue("key5", out value));
            Assert.AreEqual(0, value);

            Assert.IsFalse(dic.TryGetValue("key2", out value));
            Assert.AreEqual(0, value);

            Assert.IsTrue(dic.Remove("key1"));

            Assert.IsFalse(dic.TryGetValue("key1", out value));
            Assert.AreEqual(0, value);

            Assert.IsFalse(dic.Remove("key1"));

            dic.Dispose();
        }
예제 #5
0
        public void Reference__Release()
        {
            Version value = new Version();
            JudyStringDictionary <Version> dic = new JudyStringDictionary <Version>();

            dic["key1"] = value;

            WeakReference weakValue = new WeakReference(value);

            value = null;
            GC.Collect();
            Assert.IsNotNull(weakValue.Target);

            dic.TryGetValue("key1", out value);
            Assert.AreSame(weakValue.Target, value);
            value = null;

            dic.Remove("key1");
            GC.Collect();
            Assert.IsNull(weakValue.Target);

            dic.Dispose();
        }
예제 #6
0
        public void Reference__Release()
        {
            Version value = new Version();
            JudyStringDictionary<Version> dic = new JudyStringDictionary<Version>();
            dic["key1"] = value;

            WeakReference weakValue = new WeakReference(value);
            value = null;
            GC.Collect();
            Assert.IsNotNull(weakValue.Target);

            dic.TryGetValue("key1", out value);
            Assert.AreSame(weakValue.Target, value);
            value = null;

            dic.Remove("key1");
            GC.Collect();
            Assert.IsNull(weakValue.Target);

            dic.Dispose();
        }
예제 #7
0
        public void Reference()
        {
            Version v1 = new Version();
            Version v2 = new Version(1, 2);
            JudyStringDictionary<Version> dic = new JudyStringDictionary<Version>();
            dic["key1"] = v1;
            dic["key3"] = v2;
            dic["key4"] = null;

            Assert.AreSame(v1, dic["key1"]);

            Version value;
            Assert.IsTrue(dic.TryGetValue("key3", out value));
            Assert.AreSame(v2, value);

            Assert.IsTrue(dic.TryGetValue("key4", out value));
            Assert.IsNull(value);

            Assert.IsFalse(dic.TryGetValue("key2", out value));
            Assert.IsNull(value);

            Assert.IsTrue(dic.Remove("key1"));

            Assert.IsFalse(dic.TryGetValue("key1", out value));
            Assert.IsNull(value);

            Assert.IsFalse(dic.Remove("key1"));

            dic.Dispose();
        }
예제 #8
0
        public void Int64()
        {
            JudyStringDictionary<long> dic = new JudyStringDictionary<long>();
            dic["key1"] = 17;
            dic["key3"] = long.MinValue;
            dic["key4"] = long.MaxValue;
            dic["key5"] = 0;

            Assert.AreEqual(17, dic["key1"]);

            long value;
            Assert.IsTrue(dic.TryGetValue("key3", out value));
            Assert.AreEqual(long.MinValue, value);

            Assert.IsTrue(dic.TryGetValue("key4", out value));
            Assert.AreEqual(long.MaxValue, value);

            Assert.IsTrue(dic.TryGetValue("key5", out value));
            Assert.AreEqual(0, value);

            Assert.IsFalse(dic.TryGetValue("key2", out value));
            Assert.AreEqual(0, value);

            Assert.IsTrue(dic.Remove("key1"));

            Assert.IsFalse(dic.TryGetValue("key1", out value));
            Assert.AreEqual(0, value);

            Assert.IsFalse(dic.Remove("key1"));

            dic.Dispose();
        }