Each subdirectory of this directory corresponds to a chapter in the book
"Computations in algebraic geometry with Macaulay 2".  Each directory has
a file 'chapter.m2' which contains all the input to Macaulay 2 from that 
chapter, and a file 'chapter.out.expected', which contains the Macaulay2
output obtained at the time the book was made.

We ensure that Macaulay 2 continues to produce essentially the same answers
for computations in the book, despite further development of the program.
It's impossible to ensure that the answers are exactly the same.  There are
some trivial reasons for this: for example, displayed execution times will
change.  A less trivial reason is that the way in which entries are stored in
a hash table depends on hash codes, which are assigned in an arbitrary but
deterministic way that varies from one version of Macaulay 2 to the next,
simply because many hash codes are assigned sequentially as objects are
created.  Finally, algorithms can change and yield slightly different but
equivalent answers.  For example, the authors of Singular-Factory use a
random number generator whose seed depends on the time of day, and thus the
ordering of polynomial factors returned by 'factor' was never predictable
until we decided to reset the seed just before attempting to factor a
polynomial.  So now at least the results of 'factor' are predictable, but
different from what they were before.

Thus each directory also contains a file 'test.m2', derived from 'chapter.m2'
in order to make a good test, by avoiding the complications discussed above,
or replacing the former answers by the currently expected answers.  The file
'test.out.expected' contains the expected output, more or less.  Use the
command 

	make changes

to see the differences between chapter.out.expected and test.out.expected, if
you wonder whether we did it right.  Use the command

	make tests

to run the tests.  Use a command like

	make d-modules.test

to run the tests in the directory 'd-modules'.  Use

	make clean

to erase the output.

The files called 'patterns' in this directory and the chapter directory are
used with 'sed' to filter out text which need not match, for example,
displayed execution times.
