Ejemplo n.º 1
0
 public void AreSingleton()
 {
     for (var i = 0; i < 8; i++)
     {
         SigoAssert.Same(Sigo.Create(i), Sigo.Create(i));
     }
 }
Ejemplo n.º 2
0
        public void Frozen_return_self()
        {
            var leaf = Sigo.From("leaf");
            var e3   = Sigo.Create(3);
            var tree = Sigo.Create(3, "k", "v").Freeze();

            SigoAssert.Same(leaf, leaf.Clone());
            SigoAssert.Same(e3, e3.Clone());
            SigoAssert.Same(tree, tree.Clone());
        }
Ejemplo n.º 3
0
        public void ChangeFlagsOnly()
        {
            var s0 = e0.Set1("k", e3);

            // change parent proton by adding a child with L effect
            var s1 = s0.Set1("k2", e4);

            SigoAssert.Same(s0, s1);
            SigoAssert.Equal(e3, s1.Get1("k"));
            SigoAssert.Equal(Bits.LM, s1.Flags & Bits.LMR);
        }
Ejemplo n.º 4
0
        public void Donot_createNewObject_ifNothingChange()
        {
            var v = Sigo.From("v");
            var s = e3.Set1("k", v).Freeze();

            SigoAssert.Same(s, s.Set1("k", v));
            SigoAssert.Same(s, s.Set1("k1", e3));
            SigoAssert.Same(s, s.Set1("k1", e7));

            // using Sigo.Same(), insteadOf referenceEquals
            SigoAssert.Same(s, s.Set1("k", Sigo.From("v")));
        }
Ejemplo n.º 5
0
        public void Return_self()
        {
            var sigos = new[] { V, A, E[0] };
            var paths = new[] { null, "", "/" };

            foreach (var sigo in sigos)
            {
                foreach (var path in paths)
                {
                    SigoAssert.Same(sigo, sigo.Get(path));
                }
            }
        }
Ejemplo n.º 6
0
        public void Return_using_Get1()
        {
            var sigos = new[] { A, V, E[0] };
            var paths = new[] { "x", "/x/", "z", "/z/" };

            foreach (var sigo in sigos)
            {
                foreach (var path in paths)
                {
                    var key = path.Replace("/", "");
                    SigoAssert.Same(sigo.Get1(key), sigo.Get(path));
                }
            }
        }
Ejemplo n.º 7
0
        public void Return_the_input_if_input_is_sigo()
        {
            var inputs = new object[] {
                Sigo.From("abc"),
                Sigo.Create(3),
                Sigo.Create(3).Set1("k", Sigo.From("v"))
            };

            foreach (var o in inputs)
            {
                var sigo = Sigo.From(o);

                SigoAssert.Same(o, sigo);
            }
        }
Ejemplo n.º 8
0
        public void NonFrozen_return_new_obj()
        {
            var user = Sigo.Create(3,
                                   "name", Sigo.Create(3,
                                                       "first", "Phat",
                                                       "last", "Dam"),
                                   "frozen", Sigo.Create(0, "k", "v").Freeze()
                                   );

            SigoAssert.False(user.IsFrozen());
            SigoAssert.False(user.Get("name").IsFrozen());
            SigoAssert.True(user.Get("frozen").IsFrozen());

            var clone = user.Clone();

            SigoAssert.NotSame(user, clone);
            SigoAssert.NotSame(user.Get("name"), clone.Get("name"));
            SigoAssert.Same(user.Get("frozen"), clone.Get("frozen"));
        }
Ejemplo n.º 9
0
        public void Return_treeWith1Child()
        {
            var values = new List <ISigo> {
                Sigo.From("v"),
                Sigo.Create(0),
                Sigo.Create(1),
                Sigo.Create(2),
                Sigo.Create(3, "k", Sigo.Create(0)),
                Sigo.Create(4),
                Sigo.Create(5),
                Sigo.Create(6),
                Sigo.Create(7, "k", "v")
            };

            foreach (var v in values)
            {
                var ret = s.Set1("k", v);
                SigoAssert.Same(v, ret.Get1("k"));
            }
        }
Ejemplo n.º 10
0
        public void Return_using_Get1_Get1()
        {
            var sigos = new[] { AB, V, E[0] };
            var paths = new[] {
                "A/x", "A/y", "A/z",
                "B/x", "B/y", "B/z",
                "C/x", "C/y", "C/z"
            };

            foreach (var sigo in sigos)
            {
                foreach (var path in paths)
                {
                    var keys = path.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries);

                    SigoAssert.Same(
                        sigo.Get1(keys[0]).Get1(keys[1]),
                        sigo.Get(path)
                        );
                }
            }
        }
Ejemplo n.º 11
0
 public void Return_element7()
 {
     SigoAssert.Same(Sigo.Create(7), s.Set1("k", Sigo.Create(7)));
 }
Ejemplo n.º 12
0
 public void Return_self()
 {
     SigoAssert.Same(s, s.Set1("k", Sigo.Create(3)));
 }
Ejemplo n.º 13
0
 public void Freeze_always_returns_self()
 {
     SigoAssert.Same(tree, tree.Freeze());
     SigoAssert.Same(leaf, leaf.Freeze());
     SigoAssert.Same(e3, e3.Freeze());
 }