### Question:
SetextHeaderBlock extends SourceBlock { @Override public boolean canStart(LineSequence lineSequence) { Line line = lineSequence.getCurrentLine(); Line nextLine = lineSequence.getNextLine(); return line != null && nextLine != null && indentPattern.matcher(line.getText()).matches() && setextUnderlinePattern.matcher(nextLine.getText()).matches(); }  @Override void process(ProcessingContext context, DocumentBuilder builder, LineSequence lineSequence); @Override boolean canStart(LineSequence lineSequence);  }### Answer:
@Test public void canStart() { assertTrue(block.canStart(LineSequence.create("Heading\n-"))); assertTrue(block.canStart(LineSequence.create("Heading\n="))); assertTrue(block.canStart(LineSequence.create("Heading\n ="))); assertTrue(block.canStart(LineSequence.create("Heading\n ="))); assertFalse(block.canStart(LineSequence.create("Heading\n ="))); assertTrue(block.canStart(LineSequence.create("Heading\n====="))); assertTrue(block.canStart(LineSequence.create("Heading Text\n-----"))); assertFalse(block.canStart(LineSequence.create("Heading\n\n====="))); assertTrue(block.canStart(LineSequence.create(" Heading\n====="))); assertFalse(block.canStart(LineSequence.create(" Heading\n====="))); }