Ejemplo n.º 1
0
  @Test
  public void testRemoveNodeIf() throws Exception {
    // remove all even elements
    MutableTree<Integer> tree = createMockTree();
    tree.removeNodeIf(
        new JPredicate<TreeNode<Integer>>() {
          @Override
          public boolean apply(@Nullable TreeNode<Integer> input) {
            return input.getValue() % 2 == 0;
          }
        });

    Assert.assertEquals(3, tree.getSize());
    for (TreeNode<Integer> node : tree) {
      Assert.assertTrue(node.getValue() % 2 != 0);
    }

    // remove all elements
    tree = createMockTree();
    tree.removeNodeIf(
        new JPredicate<TreeNode<Integer>>() {
          @Override
          public boolean apply(@Nullable TreeNode<Integer> input) {
            return true;
          }
        });
    Assert.assertEquals(1, tree.getSize());

    // remove all odd elements
    tree = createMockTree();
    tree.removeNodeIf(
        new JPredicate<TreeNode<Integer>>() {
          @Override
          public boolean apply(@Nullable TreeNode<Integer> input) {
            return input.getValue() % 2 != 0;
          }
        });

    Assert.assertEquals(5, tree.getSize());
    for (TreeNode<Integer> node : tree) {
      if (node != tree.getRoot()) {
        Assert.assertTrue(node.getValue() % 2 == 0);
      }
    }
  }