TEST is a program for Dos/Windows computers that benchmarks
warriors for corewar. It requires either pmars.exe or exhaust.exe
located in a "path" directory so it can be called without having
to specify the location, or located in the same directory as TEST.

TEST.BAS - QBasic source for the TEST warrior tester
TEST.EXE - Dos/Windows executable compiled w/ FirstBasic
TEST.TXT - This file

Run TEST.EXE (or test.bas) to start, a menu should appear.
Press number keys to set up the directories, core size and
rounds as needed. Press R to start the benchmark from the
first warrior, or C to continue a previous benchmark run.
To stop the program before it completes press Q, or delete
the "DeleteMe" file. Press V to view the raw report file or
S to view a sorted report file. Press X to exit, settings are
saved for the next time. Delete the test.ini file to restore
the defaults.

TEST is a pretty simple tester, it does not detect duplicates
but duplicate scores in fixed mode are a clue. In random mode
it is normal for bench scores to vary from run to run, use fixed
mode and a fairly high value for rounds for more accurate results.

For testing Nano warriors the Permutate option is the fastest and
most accurate method, requires pmars 0.9.2+ compiled to support the
-P option. Set rounds to the value displayed for opt. rounds to
cover all possible combinations of starting position and turn.

Simulator parameters are hard-coded (it's a simple tester)...
Coresize 80 - 80 processes, 800 cycles, max length/min separation 5
Coresize 800 - 800 processes, 8000 cycles, max length/min separation 20
Coresize 8000 - 8000 processes, 80000 cycles, max length/min separation 100

TEST can use either Exhaust or PMARS, when using Exhaust
all warriors must be in simplified load format with no labels
besides ORG START, END [number] is not supported, and only random
sequence can be used. I considered removing Exhaust support from
TEST but it is much faster and possibly useful for testing warriors
already in a compatible format, such as those produced by Fizzle.

When using PMARS be sure there is extra room on the drive
(especially if using a ramdisk), although I finally managed
to call pmars in a way that still lets me press Q to quit,
pmars outputs a ton of junk which TEST has to ignore.
Keyboard sensitivity has always been a problem when
benchmarking using pmars, can't press any keys or it goes
into debug mode. Apparently it's still detecting the keypress
but when it tries to read it there is nothing there so it
dumps garbage and continues. Your mileage may vary.

As of v1.2 pmars is shelled (actually the bench batch) via
%comspec% ... < nul > nul, NT/XP/etc don't support ctty nul/con.
Q works as expected (and after a while it works under XP too...),
don't know if pmars is still dumping but doesn't matter any more.
This method does not hide assert warnings under Win9x, the screen
while benchmarking is just as messed up as it is under XP. If it
is bothersome add ;assert coresize == 800 (or whatever) to the
benchmark warrior(s) causing the warning message(s).

In a hill situation usually warriors battle themselves in
addition to the other warriors, samples that score higher
against themselves tend to place higher. Enable self-battle
to take this into account, disable for normal benchmark.

TEST is provided as-is and without warranty.
It works for me but use at your own risk.
Feel free to let me know if there's a problem.

History
v1.51 - 3-7-09 - set size 8000 warrior size/dist to 100
v1.5 - 2-28-09 - added "Permutate" mode, pmars 0.9.2+ only
v1.4 - 1-10-09 - "Fixed" mode now does -f, for pmars only
v1.3 - 11-13-03 - added self-battle option, fixed "Fixed" mode
v1.2 - 9-3-03 - changed pmars shell method for NT compatibility
v1.1 - 8-31-03 - added DeleteMe file for alternative stop
V1.0 - 8-28-03 - initial version

----------------------------------------
Terry Newton (wtn90125@yahoo.com)
