@@ -0,0 +1,1653 @@
+package com.example.playground.monadic.parser.combinators;%0A%0Aimport org.junit.Test;%0A%0Aimport java.util.List;%0Aimport java.util.stream.IntStream;%0A%0Aimport static com.example.playground.monadic.parser.combinators.ParserResult.parserResultList;%0Aimport static java.util.stream.Collectors.toList;%0Aimport static org.hamcrest.Matchers.equalTo;%0Aimport static org.hamcrest.Matchers.is;%0Aimport static org.junit.Assert.assertThat;%0A%0Apublic class ResultParserTest %7B%0A    @Test%0A    public void shouldReturnParserWhichReturnsListOfParserResultWithPassedValueAndUnconsumedInputStream() %7B%0A        final int result = 1;%0A        final String input = %22word%22;%0A        final Parser%3CInteger, Integer, IntStream%3E parser = Parsers.%3CInteger, Integer, IntStream%3Eresult(result);%0A%0A        final List%3CParserResult%3CInteger, Integer, IntStream%3E%3E actualResults = parser.parse(input.chars());%0A        final ParserResult%3CInteger, Integer, IntStream%3E actualParserResult = actualResults.get(0);%0A        final Integer actualResult = actualParserResult.getResult();%0A        final List%3CInteger%3E actualList = actualParserResult.getStream().boxed().collect(toList());%0A%0A        final List%3CParserResult%3CInteger, Integer, IntStream%3E%3E expectedResults = parserResultList(result, input.chars());%0A        final ParserResult%3CInteger, Integer, IntStream%3E expectedParserResult = expectedResults.get(0);%0A        final Integer expectedResult = expectedParserResult.getResult();%0A        final List%3CInteger%3E expectedList = expectedParserResult.getStream().boxed().collect(toList());%0A%0A        assertThat(actualResult, is(equalTo(expectedResult)));%0A        assertThat(actualList, is(equalTo(expectedList)));%0A    %7D%0A%7D%0A

Add simple test for result parser