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, and the newest entry of
                         Changes is the version of the distribution.
  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 against itself at
                         mixed levels, each from its own opening: every game
                         ends, the board is sound after every step, every game
                         reads back as the same game, every game is destroyed,
                         nothing warns. FANORONA_SOAK turns it on;
                         FANORONA_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, t/moves.txt and
t/games.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 endgame counts in t/12-tables.t are those of Schadd, Winands, Uiterwijk,
van den Herik and Bergsma, "Best Play in Fanorona Leads to Draw" (2008).
