public void LabeledTree_ToString()
        {
            var tree = new Tree<int>(42,
                new Tree<int>(19),
                new Tree<int>(23,
                    new Tree<int>(7)
                )
            );

            var ltre = new LabeledTree<int>(new Label<int>(tree, new List<Match> { new Match(1) }), new LabeledTree<int>[] {
                new LabeledTree<int>(new Label<int>(tree.Children[0], new List<Match> { new Match(2) }), Array.Empty<LabeledTree<int>>()),
                new LabeledTree<int>(new Label<int>(tree.Children[1], new List<Match> { new Match(3) }), new LabeledTree<int>[] {
                    new LabeledTree<int>(new Label<int>(tree.Children[1].Children[0], new List<Match> { new Match(4) }), Array.Empty<LabeledTree<int>>())
                }),
            });

            Assert.AreEqual("[1 (0$)] 42([2 (0$)] 19(), [3 (0$)] 23([4 (0$)] 7()))", ltre.ToString());
            Assert.AreEqual(@"[1 (0$)] 42(
  [2 (0$)] 19(), 
  [3 (0$)] 23(
    [4 (0$)] 7()
  )
)".Replace("\r", string.Empty), ltre.ToString(indent: 0).Replace("\r", string.Empty));
        }