@Test
public void testMany() {

  assertListParser(isChar('a').many(), "");
  assertListParser(isChar('a').many(), "a", 'a');
  assertListParser(isChar('a').many(), "aaa", 'a', 'a', 'a');
  assertFailure(mode, areChars("ab").many(), "aba", 1, 4);
  assertListParser(areChars("ab").many().followedBy(isChar('a')), "aba", 'b');
  assertListParser(FOO.many(), "");
  assertListParser(isChar('a').atLeast(0), "");
  assertFailure(mode, isChar('a').atLeast(1), "", 1, 1);
  assertFailure(mode, areChars("ab").atLeast(1), "aba", 1, 4);
  assertFailure(mode, areChars("ab").atLeast(2), "aba", 1, 4);
  assertListParser(FOO.atLeast(0), "");
  assertListParser(FOO.atLeast(2), "", "foo", "foo");
  assertListParser(isChar('a').asDelimiter().next(isChar('b')).many().followedBy(isChar('a')), "a");
  assertEquals("atLeast", isChar('a').many().toString());
  assertEquals("atLeast", isChar('a').atLeast(1).toString());
}