public <T> boolean parse(Handler<T> handler, T target, CharSequence input) {
    if (input == null) throw new NullPointerException("input == null");
    return parse(handler, target, input, 0, input.length());
  }
@Test void parse_badParameters() {
    assertThatThrownBy(() -> entrySplitter.parse(null, map, ""))
      .isInstanceOf(NullPointerException.class)
      .hasMessage("handler == null");
    assertThatThrownBy(() -> entrySplitter.parse(parseIntoMap, null, ""))
      .isInstanceOf(NullPointerException.class)
      .hasMessage("target == null");
    assertThatThrownBy(() -> entrySplitter.parse(parseIntoMap, map, null))
      .isInstanceOf(NullPointerException.class)
      .hasMessage("input == null");

    assertThatThrownBy(() -> entrySplitter.parse(parseIntoMap, map, "", -1, 1))
      .isInstanceOf(IllegalArgumentException.class)
      .hasMessage("beginIndex < 0");

    assertThatThrownBy(() -> entrySplitter.parse(parseIntoMap, map, "", 0, 2))
      .isInstanceOf(IllegalArgumentException.class)
      .hasMessage("endIndex > input.length()");
  }