Example #1
0
        public void RetriveValueWithUnknownKeyForPrimitiveTypesViaValAt()
        {
            IPersistentMap <int, int> target = new PersistentHashMap <int, int>();

            target = target.Assoc(1, 2);

            target.ValAt(3);
        }
Example #2
0
        public void RetriveValueWithUnknownKeyViaValAt()
        {
            IPersistentMap <string, string> target = new PersistentHashMap <string, string>();

            target = target.Assoc("a", "b");

            target.ValAt("x");
        }
Example #3
0
        public void PersistentMapTests()
        {
            IPersistentMap <String, String> target = new PersistentHashMap <String, String>();

            target = target.Assoc("k1", "v1");
            target = target.Assoc("k2", "v2");
            target = target.Assoc("k3", "v3");
            target = target.Assoc("k4", "v4");

            Assert.AreEqual(4, target.Count);
            Assert.IsTrue(target.ContainsKey("k3"));
            Assert.IsFalse(target.ContainsKey("x"));
            Assert.AreEqual("k3", target.EntryAt("k3").Key);
            Assert.AreEqual("v3", target.EntryAt("k3").Value);
            Assert.AreEqual("v3", target.ValAt("k3"));
            Assert.AreEqual("nf", target.ValAt("x", "nf"));

            target = target.Assoc("k2", "vx");

            Assert.AreEqual(4, target.Count);
            Assert.AreEqual("vx", target.ValAt("k2"));

            try
            {
                target = target.AssocEx("k2", "vy");
                Assert.Fail();
            }
            catch (Exception)
            {
                //Expected exception
            }

            Assert.AreEqual(4, target.Count);
            Assert.AreEqual("vx", target.ValAt("k2"));

            target = target.Without("k3");

            Assert.AreEqual(3, target.Count);
            Assert.AreEqual("v4", target.ValAt("k4"));

            target = target.Cons(new KeyValuePair <string, string>("k5", "v5"));

            Assert.AreEqual(4, target.Count);
            Assert.AreEqual("v5", target.ValAt("k5"));

            target = target.Assoc(null, "null");
            target = target.Assoc("null", null);

            Assert.AreEqual(6, target.Count);
            Assert.AreEqual("null", target.ValAt(null));
            Assert.IsNull(target.ValAt("null"));

            foreach (KeyValuePair <string, string> mapEntry in target)
            {
                if (mapEntry.Key != null && mapEntry.Key.Equals("null"))
                {
                    Assert.IsNull(mapEntry.Value);
                }
            }

            target = target.Empty();

            Assert.AreEqual(0, target.Count);

            target = target.Assoc("x", "y");
            target = target.Assoc("z", "a");

            IPersistentMap <String, String> target2 = new PersistentHashMap <String, String>();

            target2 = target2.Assoc("x", "y");
            target2 = target2.Assoc("z", "a");

            Assert.AreEqual(target, target2);
            Assert.AreEqual(target, target2);
            Assert.AreEqual(target.GetHashCode(), target2.GetHashCode());

            target2 = target2.Without("z");
            target2 = target2.Without("b");

            Assert.AreNotEqual(target, target2);
            Assert.IsFalse(target == target2);
            Assert.AreNotEqual(target, target2);
        }