public void SplitAtColisions_Cake1Test()
        {
            var vNode = new VNode("a", "", 0, 16,
                                  new VNode[] { new VNode("b", new string('x', 16), 0, 16), },
                                  new VNode[] { new VNode("c", "", 4, 8), },
                                  new VNode[] { new VNode("d", "", 6, 4), }
                                  );

            VNodeColisionResolver.SplitAtColisions(vNode);

            var layers = vNode.VLayers;

            Assert.AreEqual(3, layers.Count);
            AssertLayerNodeRanges(layers[2], (6, 10));
            AssertLayerNodeRanges(layers[1], (4, 6), (6, 10), (10, 12));
            AssertLayerNodeRanges(layers[0], (0, 4), (4, 6), (6, 10), (10, 12), (12, 16));
        }
        public void SplitAtColisions_Cake2Test()
        {
            var vNode = new VNode("a", "", 0, 16,
                                  new VNode[] { new VNode("b", new string('x', 16), 0, 16), },
                                  new VNode[] { new VNode("c", "", 2, 5), new VNode("c", "", 9, 5) },
                                  new VNode[] { new VNode("d", "", 4, 8), },
                                  new VNode[] { new VNode("d", "", 7, 2), }
                                  );

            VNodeColisionResolver.SplitAtColisions(vNode);

            var layers = vNode.VLayers;

            Assert.AreEqual(4, layers.Count);
            AssertLayerNodeRanges(layers[3], (7, 9));
            AssertLayerNodeRanges(layers[2], (4, 7), (7, 9), (9, 12));
            AssertLayerNodeRanges(layers[1], (2, 4), (4, 7), (9, 12), (12, 14));
            AssertLayerNodeRanges(layers[0], (0, 2), (2, 4), (4, 7), (7, 9), (9, 12), (12, 14), (14, 16));
        }