### Question:
BinaryTreesCount { public static BigInteger findBinaryTreesCount(int n) { if (n <= 0) { throw new IllegalArgumentException("Input number of vertices is not positive"); } return findBinaryTreesCount(n, new BigInteger[n + 1]); }  static BigInteger findBinaryTreesCount(int n);  }### Answer:
@Test(expected = IllegalArgumentException.class) public void testFindBinaryTreesCountNegativeN() { findBinaryTreesCount(-1); }
@Test public void testFindBinaryTrees1() { assertThat(findBinaryTreesCount(1), is(BigInteger.valueOf(1))); }
@Test public void testFindBinaryTrees2() { assertThat(findBinaryTreesCount(2), is(BigInteger.valueOf(2))); }
@Test public void testFindBinaryTrees3() { assertThat(findBinaryTreesCount(3), is(BigInteger.valueOf(5))); }
@Test public void testFindBinaryTrees4() { assertThat(findBinaryTreesCount(4), is(BigInteger.valueOf(14))); }
@Test public void testFindBinaryTrees5() { assertThat(findBinaryTreesCount(14), is(BigInteger.valueOf(2674440))); }
@Test public void testFindBinaryTrees6() { assertThat(findBinaryTreesCount(20), is(BigInteger.valueOf(6564120420L))); }
@Test public void testFindBinaryTrees7() { assertThat(findBinaryTreesCount(30), is(BigInteger.valueOf(3814986502092304L))); }