public List<BingTile> findChildren()
    {
        return findChildren(zoomLevel + 1);
    }
@Test
    public void testFindChildren()
    {
        assertEquals(
                toSortedQuadkeys(BingTile.fromQuadKey("").findChildren()),
                ImmutableList.of("0", "1", "2", "3"));

        assertEquals(
                toSortedQuadkeys(BingTile.fromQuadKey("0123").findChildren()),
                ImmutableList.of("01230", "01231", "01232", "01233"));

        assertEquals(
                toSortedQuadkeys(BingTile.fromQuadKey("").findChildren(2)),
                ImmutableList.of("00", "01", "02", "03", "10", "11", "12", "13", "20", "21", "22", "23", "30", "31", "32", "33"));

        assertThatThrownBy(() -> BingTile.fromCoordinates(0, 0, MAX_ZOOM_LEVEL).findChildren())
                .hasMessage(format("newZoom must be less than or equal to %s: %s", MAX_ZOOM_LEVEL, MAX_ZOOM_LEVEL + 1));

        assertThatThrownBy(() -> BingTile.fromCoordinates(0, 0, 13).findChildren(MAX_ZOOM_LEVEL + 1))
                .hasMessage(format("newZoom must be less than or equal to %s: %s", MAX_ZOOM_LEVEL, MAX_ZOOM_LEVEL + 1));

        assertThatThrownBy(() -> BingTile.fromCoordinates(0, 0, 13).findChildren(12))
                .hasMessage(format("newZoom must be greater than or equal to current zoom %s: %s", 13, 12));
    }