@Test
public void testOr() {

  assertEquals("or", INTEGER.or(INTEGER).toString());
  assertEquals((Object) 123, INTEGER.or(constant(456)).parse("123", mode));
  assertEquals((Object) 'b', isChar('a').or(constant('b')).parse("", mode));
  assertEquals((Object) 'a', areChars("ab").or(isChar('a')).parse("a", mode));
  assertListParser(areChars("ab").or(isChar('a')).many(), "a", 'a');
  assertFailure(mode, areChars("ab").or(isChar('a')), "x", 1, 1);
}