@Test public void allTokensAreQueued_whenAllOfThemLiesInsideTheRegionOfInterest_1() { final List<RobotLine> lines = lines( line( 0, new LineElement(0, 0, 0, "aaaa"), new LineElement(0, 4, 4, "bbbb"), new LineElement(0, 8, 8, "cccc")), line( 1, new LineElement(1, 0, 13, "dddd"), new LineElement(1, 4, 17, "eeee"), new LineElement(1, 8, 21, "ffff")), line( 2, new LineElement(2, 0, 26, "gggg"), new LineElement(2, 4, 30, "hhhh"), new LineElement(2, 8, 34, "iiii"))); final Deque<IRobotLineElement> queue = builder.buildQueue(0, 100, lines, 0); assertThat(transform(queue, toTokenContents())) .containsExactly( "aaaa", "bbbb", "cccc", "\n", "dddd", "eeee", "ffff", "\n", "gggg", "hhhh", "iiii", "\n"); }
@Test public void theTokenIsAlsoQueued_whenItEndsAfterRegionOfInterstButBeginsWithinIt() { final List<RobotLine> lines = lines( line( 0, new LineElement(0, 0, 0, "aaaa"), new LineElement(0, 4, 4, "bbbb"), new LineElement(0, 8, 8, "cccc"))); final Deque<IRobotLineElement> queue = builder.buildQueue(0, 6, lines, 0); assertThat(transform(queue, toTokenContents())).containsExactly("aaaa", "bbbb"); }
@Test public void thereAreNoTokensQueued_whenAllOfThemLiesAfterTheRegionOfInterest() { final List<RobotLine> lines = lines( line( 1, new LineElement(1, 0, 12, "dddd"), new LineElement(1, 4, 16, "eeee"), new LineElement(1, 8, 20, "ffff")), line( 2, new LineElement(2, 0, 25, "gggg"), new LineElement(2, 4, 29, "hhhh"), new LineElement(2, 8, 33, "iiii"))); final Deque<IRobotLineElement> queue = builder.buildQueue(4, 8, lines, 0); assertThat(queue).isEmpty(); }
@Test public void thereAreNoTokensQueued_whenAllOfThemLiesBeforeTheRegionOfInterest() { final List<RobotLine> lines = lines( line( 0, new LineElement(0, 0, 0, "aaaa"), new LineElement(0, 4, 4, "bbbb"), new LineElement(0, 8, 8, "cccc")), line( 1, new LineElement(1, 0, 13, "dddd"), new LineElement(1, 4, 17, "eeee"), new LineElement(1, 8, 21, "ffff"))); final Deque<IRobotLineElement> queue = builder.buildQueue(28, 8, lines, 2); assertThat(queue).isEmpty(); }