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); }
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); }