testRemovesWithDefaultComparator() {
    const tree = new AvlTree();
    const values = ['bill', 'blake', 'elliot', 'jacob', 'john', 'myles', 'ted'];

    // Insert strings into tree out of order
    tree.add('frodo');
    tree.add(values[4]);
    tree.add(values[3]);
    tree.add(values[0]);
    tree.add(values[6]);
    tree.add('samwise');
    tree.add(values[5]);
    tree.add(values[1]);
    tree.add(values[2]);
    tree.add('pippin');

    // Remove strings from tree
    assertEquals(tree.remove('samwise'), 'samwise');
    assertEquals(tree.remove('pippin'), 'pippin');
    assertEquals(tree.remove('frodo'), 'frodo');
    assertEquals(tree.remove('merry'), 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 strings into and remove strings from
the AvlTree and have the only the non-removed values be stored and sorted
correctly by the default comparator.