A.0) The `twist' test for MetaPost is analogous to the `trap' test
for METAFONT.  It requires a special version of inimp with the
following constant settings:

    mem_max = 4500+mem_min
    error_line = 64
    half_error_line = 32
    max_print_line = 72
    mem_top = 4500+mem_min

The other parameters max_internal, buf_size, etc. are not very
important but should be left at the values given in mp.web if
possible.

The twist test uses mtwist.mp twist.mp, twist.mpx, and twistf.tfm.
These four files should be in the current directory when running
the twist test; the other files in this directory should be saved
for comparison purposes.  Be sure that twist.mpx is written more
recently than twist.mp so that MetaPost does not try to regenerate
twist.mpx.

A.1) Create the tfm file from twistf.pl with pltotf(1).

A.2) Run the special inimp on mtwist.mp.  It should generate
mtwist.log, mtwist.0, mtwist.1, writeo, and writeo.2.  They should
almost match the corresponding files in this directory except that
twist.log can have the `allowable differences' listed below.  (The
other output files can only differ in their `%%CreationDate' lines.)

A.3) Run the special inimp and give it the contents of twist1.in
as terminal input.  This should produce lots of error messages and
write a binary file `twist.mem'.  The resulting twist.log should
almost match the twistin.log in this directory.

A.4) Now run the special inimp again and give it the contents of
twist2.in as terminal input.  The terminal output should almost
match twist.fot and the other files written should almost match
the versions in this directory.

A.5) Run the binary output file twist.tfm through tftopl and compare
the resulting twist.pl with the one in this directory.

                      Allowable differences

1. twist.log, twist.ps, and the output files with numeric extensions
all contain lines that give the time and date.

2. The capacity values printed out at the end depend on the parameters
buf_size, stack_size, etc.

3. The strings `now untouched' statistics may differ due to changes
in the number of characters in the date on the first line of the log
file.  All the string statistics will change if you alter ../mp.ch
in a way that changes the string pool.

4. If integer division with negative numbers does not truncate
toward zero in your implementation, numeric results will be rounded
differently.

5. If for some reason you alter the storage allocation code ../mp.web
or ../mp.ch this will change the memory usage statistics and the
capsule numbers.
