xt/ - the author tests
======================

None of these runs under `make test`. Build first, then give prove the built
tree: there is an XS object to find, so it is `prove -b` and never `prove -l`.

  xt/boilerplate.t       README, Changes and every module carry none of the
                         text Module::Starter wrote.
  xt/attribute-names.t   no attribute of a class shares a name with a method
                         or an XS function of that class. An attribute
                         replaces either without a word.
  xt/sort-variables.t    no file declares a lexical $a or $b, so no sort block
                         can be looking at one.
  xt/no-em-dash.t        no file of the manifest has an em dash, an en dash or
                         a curly quote in it.
  xt/ascii.t             every file of the manifest is ASCII.
  xt/test-warnings.t     no test file, and not the program, warns when it is
                         compiled.
  xt/soak.t              five thousand games of the program in every seat, at
                         two, three, four and six seats and mixed rungs, each
                         from its own opening: every game ends, each seat has
                         its pieces after every move, every game replays from
                         its log as the same game, every board is destroyed,
                         nothing warns. STERNHALMA_SOAK turns it on;
                         STERNHALMA_SOAK_GAMES sets the count.

The three that live in t/ and are skipped without RELEASE_TESTING are
t/manifest.t, t/pod.t and t/pod-coverage.t. They read the BUILT tree, so run
`make` after the last edit and before them, or they grade the copy from the
build before.

    make
    RELEASE_TESTING=1 prove -b t/ xt/


Where the expected lists come from
----------------------------------

There is no published perft table for this game. t/steps.txt and t/reach.txt
were written by a second implementation in another language, written from
the rules text and never from this engine's source. That program is not in
this distribution; its output is, as text, so the comparison needs nothing
but perl. A row is regenerated, never edited.

The shortest games in t/15-floors.t are George I. Bell's, "The shortest game
of Chinese Checkers and related problems", INTEGERS 9 (2009): 27 moves for
one seat crossing alone, 30 for two seats.
