### Question:
LineSequence implements Iterable<Line> { @Override public String toString() { return toStringHelper(LineSequence.class).add("currentLine", getCurrentLine()) .add("nextLine", getNextLine()) .toString(); }  static LineSequence create(String content); abstract Line getCurrentLine(); abstract Line getNextLine(); abstract void advance(); void advance(int count); @Override Iterator<Line> iterator(); LineSequence with(Predicate<Line> predicate); LineSequence transform(Function<Line, Line> transform); abstract LineSequence lookAhead(); @Override String toString();  }### Answer:
@Test public void toStringTest() { assertEquals("LineSequence{currentLine=Line{lineNumber=0, offset=0, text=a}, nextLine=null}", LineSequence.create("a\n").toString()); assertEquals( "LineSequence{currentLine=Line{lineNumber=0, offset=0, text=a}, nextLine=Line{lineNumber=1, offset=2, text=b}}", LineSequence.create("a\nb").toString()); }