test_class.file: utilities/src/test/java/ec/tstoolkit/utilities/TreesTest.java
test_class.identifier: TreesTest
test_case.body: @Test
      public void testBreadthFirstIterable() {
          Node n1 = new Node("1");
          Node n2 = new Node("2");
          n1.children.add(n2);
          Node n3 = new Node("3");
          n1.children.add(n3);
          Node n4 = new Node("4");
          n1.children.add(n4);
          n2.children.add(new Node("5"));
          n2.children.add(new Node("6"));
  
          assertThat(Trees.breadthFirstStream(n1, Node::childrenStream).map(Node::getName))
                  .containsExactly("1", "2", "3", "4", "5", "6");
      }
test_case.class_method_signature: TreesTest.testBreadthFirstIterable()
test_case.full_signature: @Test public void testBreadthFirstIterable()
test_case.identifier: testBreadthFirstIterable
test_case.invocations: add add add add add containsExactly assertThat map breadthFirstStream
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testBreadthFirstIterable()
focal_class.file: utilities/src/main/java/ec/tstoolkit/utilities/Trees.java
focal_class.identifier: Trees
focal_class.class_method_signature: Trees.Trees()
focal_class.full_signature: private  Trees()
focal_class.identifier: Trees
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  Trees()
focal_class.class_method_signature: Trees.breadthFirstIterable(
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children)
focal_class.full_signature: @NonNull public static Iterable<T> breadthFirstIterable(
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children)
focal_class.identifier: breadthFirstIterable
focal_class.modifiers: @NonNull public static
focal_class.parameters: (
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children)
focal_class.return: Iterable<T>
focal_class.signature: Iterable<T> breadthFirstIterable(
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children)
focal_class.class_method_signature: Trees.breadthFirstStream(
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children)
focal_class.full_signature: @NonNull public static Stream<T> breadthFirstStream(
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children)
focal_class.identifier: breadthFirstStream
focal_class.modifiers: @NonNull public static
focal_class.parameters: (
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children)
focal_class.return: Stream<T>
focal_class.signature: Stream<T> breadthFirstStream(
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children)
focal_class.class_method_signature: Trees.depthFirstIterable(
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children)
focal_class.full_signature: @NonNull public static Iterable<T> depthFirstIterable(
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children)
focal_class.identifier: depthFirstIterable
focal_class.modifiers: @NonNull public static
focal_class.parameters: (
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children)
focal_class.return: Iterable<T>
focal_class.signature: Iterable<T> depthFirstIterable(
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children)
focal_class.class_method_signature: Trees.depthFirstStream(
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children)
focal_class.full_signature: @NonNull public static Stream<T> depthFirstStream(
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children)
focal_class.identifier: depthFirstStream
focal_class.modifiers: @NonNull public static
focal_class.parameters: (
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children)
focal_class.return: Stream<T>
focal_class.signature: Stream<T> depthFirstStream(
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children)
focal_class.class_method_signature: Trees.prettyPrint(
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children,
              @NonNegative int maxLevel,
              @NonNull Function<? super T, ? extends CharSequence> toString,
              @NonNull Appendable appendable)
focal_class.full_signature: public static void prettyPrint(
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children,
              @NonNegative int maxLevel,
              @NonNull Function<? super T, ? extends CharSequence> toString,
              @NonNull Appendable appendable)
focal_class.identifier: prettyPrint
focal_class.modifiers: public static
focal_class.parameters: (
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children,
              @NonNegative int maxLevel,
              @NonNull Function<? super T, ? extends CharSequence> toString,
              @NonNull Appendable appendable)
focal_class.return: void
focal_class.signature: void prettyPrint(
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children,
              @NonNegative int maxLevel,
              @NonNull Function<? super T, ? extends CharSequence> toString,
              @NonNull Appendable appendable)
focal_class.class_method_signature: Trees.prettyPrintToString(
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children,
              @NonNegative int maxLevel,
              @NonNull Function<? super T, ? extends CharSequence> toString)
focal_class.full_signature: @NonNull public static String prettyPrintToString(
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children,
              @NonNegative int maxLevel,
              @NonNull Function<? super T, ? extends CharSequence> toString)
focal_class.identifier: prettyPrintToString
focal_class.modifiers: @NonNull public static
focal_class.parameters: (
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children,
              @NonNegative int maxLevel,
              @NonNull Function<? super T, ? extends CharSequence> toString)
focal_class.return: String
focal_class.signature: String prettyPrintToString(
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children,
              @NonNegative int maxLevel,
              @NonNull Function<? super T, ? extends CharSequence> toString)
focal_class.class_method_signature: Trees.prettyPrint(
              @NonNull T item,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children,
              @NonNegative int maxLevel,
              @NonNull Appendable appendable,
              @NonNull Function<? super T, ? extends CharSequence> toString,
              @NonNull String prefix,
              boolean last)
focal_class.full_signature: private static void prettyPrint(
              @NonNull T item,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children,
              @NonNegative int maxLevel,
              @NonNull Appendable appendable,
              @NonNull Function<? super T, ? extends CharSequence> toString,
              @NonNull String prefix,
              boolean last)
focal_class.identifier: prettyPrint
focal_class.modifiers: private static
focal_class.parameters: (
              @NonNull T item,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children,
              @NonNegative int maxLevel,
              @NonNull Appendable appendable,
              @NonNull Function<? super T, ? extends CharSequence> toString,
              @NonNull String prefix,
              boolean last)
focal_class.return: void
focal_class.signature: void prettyPrint(
              @NonNull T item,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children,
              @NonNegative int maxLevel,
              @NonNull Appendable appendable,
              @NonNull Function<? super T, ? extends CharSequence> toString,
              @NonNull String prefix,
              boolean last)
focal_method.body: @NonNull
      public static <T> Iterable<T> breadthFirstIterable(
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children) {
          return new BreadthFirstIterable(root, children);
      }
focal_method.class_method_signature: Trees.breadthFirstIterable(
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children)
focal_method.full_signature: @NonNull public static Iterable<T> breadthFirstIterable(
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children)
focal_method.identifier: breadthFirstIterable
focal_method.modifiers: @NonNull public static
focal_method.parameters: (
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children)
focal_method.return: Iterable<T>
focal_method.signature: Iterable<T> breadthFirstIterable(
              @NonNull T root,
              @NonNull Function<? super T, ? extends Stream<? extends T>> children)