testInsertsAndRemovesWithCustomComparator() {
    const tree = new AvlTree((a, b) => a - b);

    const NUM_TO_INSERT = 37;
    const valuesToRemove = [1, 0, 6, 7, 36];

    // Insert ints into tree out of order
    const values = [];
    for (let i = 0; i < NUM_TO_INSERT; i += 1) {
      tree.add(i);
      values.push(i);
    }

    for (let i = 0; i < valuesToRemove.length; i += 1) {
      assertEquals(tree.remove(valuesToRemove[i]), valuesToRemove[i]);
      googArray.remove(values, valuesToRemove[i]);
    }
    assertEquals(tree.remove(-1), null);
    assertEquals(tree.remove(37), null);

    // Verify strings are stored in sorted order
    let i = 0;
    tree.inOrderTraverse((value) => {
      assertEquals(values[i], value);
      i += 1;
    });
    assertEquals(i, values.length);
  }
This test verifies that we can insert values into and remove values from
the AvlTree and have them be stored and sorted correctly by a custom
comparator.