Ejemplo n.º 1
0
        public void RollDownAggregate_SetNodeTextAsDepth()
        {
            var r = new MapNode(new MapTree(), "r");
            var c1 = new MapNode(r, "c1");
            var c11 = new MapNode(c1, "c11");
            var c12 = new MapNode(c1, "c12");
            var c13 = new MapNode(c1, "c13");
            var c2 = new MapNode(r, "c2");
            var c3 = new MapNode(r, "c3", NodePosition.Left);
            c3.Folded = true;
            var c31 = new MapNode(c3, "c31");
            var c32 = new MapNode(c3, "c32");

            r.RollDownAggregate(
                (n, v) =>
                {
                    n.Text = v.ToString();
                    return v + 1;
                },
                0);

            Assert.AreEqual("0", r.Text);
            Assert.AreEqual("2", c13.Text);
        }
Ejemplo n.º 2
0
        public void RollDownAggregate_DeepestNodeUnfolded()
        {
            var r = new MapNode(new MapTree(), "r");
            var c1 = new MapNode(r, "c1");
            var c11 = new MapNode(c1, "c11");
            var c12 = new MapNode(c1, "c12");
            var c121 = new MapNode(c12, "c121");
            var c13 = new MapNode(c1, "c13");
            c13.Folded = true;
            var c131 = new MapNode(c13, "c131");
            var c1311 = new MapNode(c131, "c1311");
            var c2 = new MapNode(r, "c2");
            var c3 = new MapNode(r, "c3", NodePosition.Left);
            c3.Folded = true;
            var c31 = new MapNode(c3, "c31");
            var c32 = new MapNode(c3, "c32");

            int deepestYet = 0;
            MapNode deepNodeYet = r;

            r.RollDownAggregate(
                (n, v) =>
                {
                    if (v > deepestYet)
                    {
                        deepestYet = v;
                        deepNodeYet = n;
                    }
                    return v + 1;
                },
                0,
                (n, v) => n.Folded
                );

            Assert.AreEqual(c121, deepNodeYet);
            Assert.AreEqual(3, deepestYet);
        }