anchor.diff:  
   Test _example_ is just a document fragment in AsciiDoc syntax (a reference input), or the backend’s target syntax (an expected output).
   Example should consider one case of the generated output, i.e. it should reflect one code branch in a converter or template.
  -Examples are grouped in _examples suites_. Each suite focuses on one block or inline element — more precisely Asciidoctor’s AST node (paragraph, table, anchor, footnote…).
  -
  -Examples suite is a text file named similar to Asciidoctor templates, i.e. the AST node name with an extension according to syntax, for example `block_table.adoc`, `block_table.html`. See below for a list of the AST nodes.
  -Individual examples in the suite are separated by a special header with the name of the example, an optional description and options.
  -
  -Each example is identified by its name and the suite name like this: `{suite_name}:{example_name}` (e.g. `block_table:with_title`).
  +Examples are grouped in _example groups_.
  +Each group focuses on one block or inline element — more precisely Asciidoctor’s AST node (paragraph, table, anchor, footnote…).
  +
  +Examples group is a text file named similar to Asciidoctor templates, i.e. the AST node name with an extension according to syntax, for example `block_table.adoc`, `block_table.html`. See below for a list of the AST nodes.
  +Individual examples in the group file are separated by a special header with the name of the example, an optional description and options.
  +
  +Each example is identified by its name and the group name like this: `{group_name}:{example_name}` (e.g. `block_table:with_title`).
   Input and output examples are paired — for every input example there should be an output example with the same identifier.
   When you <<run-tests, run tests>>, the input example is converted using the tested backend (or templates) and its actual output is compared with the expected output example.
   
  
positive.code: 
  === HTML-based examples
  
  To test a HTML-based backend, extend class link:{src-base}/html_test.rb[Asciidoctor::DocTest::HtmlTest] and set the `templates_path` (for template-based backend) or the `backend` name.
  
  HtmlTest assumes that paragraphs are enclosed in `<p></p>` tags and implicitly sets the _include_ option to `./p/node()` for `inline_*:*` examples (if _include_ is not already set).
  If it’s not your case, then you must overwrite it:
  
  [source]
  ----
  class TestShiny < Asciidoctor::DocTest::HtmlTest
    def assert_example(expected, actual, opts)
      opts[:include] ||= [ './div/p/node()' ] if name.start_with? 'inline_'
      super
    end
  end
  ----
  
  
negative.code: 
  Each example should be focused on one use case, so when writing a new backend, you can incrementally implement new features following the reference input examples.
  However, they are not strictly isolated like unit tests.
  For example, if you change a format of a paragraph, it may affect a variety of other examples.
  
  When test fails, DocTest prints a nicely formatted diff of the expected and actual output (see <<run-tests>>), so you see exactly what went wrong.
  Insignificant differences, such as attributes order in HTML, are ignored.
  