diff --git a/books/bookvol0.pamphlet b/books/bookvol0.pamphlet index 8505132..4410502 100644 --- a/books/bookvol0.pamphlet +++ b/books/bookvol0.pamphlet @@ -16419,28 +16419,28 @@ choosing the toroidal coordinate system. \subsection{Axiom Images} \newpage -\center{\includegraphics{ps/v0page1.eps}} +{\center{\includegraphics{ps/v0page1.eps}}} \newpage -\center{\includegraphics{ps/v0page2.eps}} +{\center{\includegraphics{ps/v0page2.eps}}} \newpage -\center{\includegraphics{ps/v0page3.eps}} +{\center{\includegraphics{ps/v0page3.eps}}} \newpage -\center{\includegraphics{ps/v0page4.eps}} +{\center{\includegraphics{ps/v0page4.eps}}} \newpage -\center{\includegraphics{ps/v0page5.eps}} +{\center{\includegraphics{ps/v0page5.eps}}} \newpage -\center{\includegraphics{ps/v0page6.eps}} +{\center{\includegraphics{ps/v0page6.eps}}} \newpage -\center{\includegraphics{ps/v0page7.eps}} +{\center{\includegraphics{ps/v0page7.eps}}} \newpage -\center{\includegraphics{ps/v0page8.eps}} +{\center{\includegraphics{ps/v0page8.eps}}} \newpage \subsection{Three-Dimensional Options} @@ -61681,36 +61681,6 @@ constructor name {\tt VectorFunctions2} from the system: \par\noindent{\bf Also See:} {\tt )compile} \index{ugSysCmdcompile} -\section{)boot} -\index{ugSysCmdboot} - -\index{boot} - - -\par\noindent{\bf User Level Required:} development - -\par\noindent{\bf Command Syntax:} -\begin{list}{} -\item {\tt )boot} {\it bootExpression} -\end{list} - -\par\noindent{\bf Command Description:} - -This command is used by Axiom system developers to execute -expressions written in the BOOT language. -For example, -\begin{verbatim} -)boot times3(x) == 3*x -\end{verbatim} -creates and compiles the Common Lisp function ``times3'' -obtained by translating the BOOT code. - -\par\noindent{\bf Also See:} -{\tt )fin} \index{ugSysCmdfin}, -{\tt )lisp} \index{ugSysCmdlisp}, -{\tt )set} \index{ugSysCmdset}, and -{\tt )system} \index{ugSysCmdsystem}. - \section{)browse} \index{browse} \par\noindent{\bf User Level Required:} interpreter @@ -62680,6 +62650,190 @@ command may be used to drop out of Axiom into Common Lisp. This command is obsolete. Use {\tt )library} instead. +\section{)regress} +\index{regress} +\par\noindent{\bf User Level Required:} development +\par\noindent{\bf Command Syntax:} +\begin{list}{} +\item {\tt )regress} {\it filename} +\item {\tt )regress} {\it filename.output} +\item {\tt )regress} {\it /path/filename} +\item {\tt )regress} {\it /pathfilename.output} +\end{list} + +\par\noindent{\bf Command Description:} + +\begin{verbatim} +The regress command will run the regress function that was compiled +as part of the lisp image build process. This function expects an +input filename, possibly containing a path prefix. + +If the filename contains a period then we consider it a fully formed +filename, otherwise we append ``.output'', which is the default file +extension. + + )regress matrix + )regress matrix.output + )regress /path/to/file/matrix + )regress /path/to/file/matrix.output + +will test the contents of the file matrix.output. + +The idea behind regression testing is to check that the results +we currently get match the results we used to get. In order to +do that we create input files with a special comment format that +contains the prior results. These are easy to create as all you +need to do is run the Axiom function, capture the results, and +turn them input specially formed comments using the -- comment. + +A regression file caches the result of an Axiom function so we +can automate the testing process. It is a file of many tests, +each with their own output. + +The regression file format uses the Axiom -- comment syntax to keep +a copy of the expected output from an Axiom command. This expected +output is compared character by character against the actual output. + +The regression file is broken into numbered blocks, delimited by +a --S for the beginning and a --E for the end. The total number of +blocks is also given so missing or failed tests also raise an error. + +There are 4 special kinds of -- comments in regression files: + + --S n of M this is test n of M tests in this file + --E n this marks the end of test n + --R any output this marks the actual expected output line + --I any output this line is compared but ignored + +A regression test file looks like: + + )set break resume + )spool foo.output + )set message type off + )clear all + + --S 1 of 3 + 2+3 + --R this is the exact Axiom output + --R (1) 5 + --E 1 + + --S 2 of 3 + 2+3 + --R this should fail to match + --R (2) 7 + --E 2 + + --S 3 of 3 + 2+3 + --R this fails to match but we + --I (3) 7 use --I to ignore this line + --E 3 + +We can now run this file with + + )read foo.input + +Note that when this file is run it will create a spool file called +"foo.output" because of the lines: + + )spool foo.output + )spool + +The "foo.output" file contains the console image of the result. +It will look like: + + Starts dribbling to foo.output (2012/2/28, 12:25:7). + )set message type off + )clear all + + --S 1 of 3 + 2+3 + + (1) 5 + --R + --R (1) 5 + --E 1 + + --S 2 of 3 + 2+3 + + (2) 5 + --R + --R (2) 7 + --E 2 + + --S 3 of 3 + 2+3 + + (3) 5 + --R + --I (3) 7 + --E 3 + + )spool + +This "foo.output" file can now be checked using the )regress command. + +When we run the )regress foo.output we see; + + testing foo + passed foo 1 of 3 + MISMATCH + expected:" (2) 7" + got:" (2) 5" + FAILED foo 2 of 2 + passed foo 3 of 3 + regression result FAILED 1 of 3 stanzas file foo + +Tests either pass or fail. A passing test generates the message: + + passed foo 1 of 3 + +A failing test will give a reversed printout of the expected vs +actual output as well as a FAILED message, as in: + + MISMATCH + expected:" (2) 7" + got:" (2) 5" + FAILED foo 2 of 3 + +The last line of output is a summary: + + regression result FAILED 1 of 3 stanzas file foo + +\end{verbatim} + +\par\noindent{\bf Also See:} +{\tt )tangle} + +\section{)tangle} +\index{ugSysCmdboot} +\index{tangle} +\par\noindent{\bf User Level Required:} development +\par\noindent{\bf Command Syntax:} +\begin{list}{} +\item {\tt )tangle} {\it filename} +\item {\tt )tangle} {\it filename.output} +\item {\tt )tangle} {\it /path/filename} +\item {\tt )tangle} {\it /pathfilename.output} +\end{list} + +\par\noindent{\bf Command Description:} + +\begin{verbatim} +This command is used to tangle pamphlet files. + +)tangle matrix.input.pamphlet + +will tangle the contents of the file matrix.input.pamphlet into +matrix.input. The ``.input.pamphlet'' is optional. + +\end{verbatim} + +\par\noindent{\bf Also See:} +{\tt )regress} + \section{)trace} \label{ugSysCmdtrace} \label{ugSysCmdltrace} diff --git a/changelog b/changelog index 6b41130..dc1e1d1 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,5 @@ +20120302 tpd src/axiom-website/patches.html 20120302.01.tpd.patch +20120302 tpd books/bookvol0 add )tangle and )regress commands 20120301 tpd src/axiom-website/patches.html 20120301.01.tpd.patch 20120301 tpd src/algebra/Makefile add Pade regression test 20120301 tpd books/bookvol10.4 document and regression test PadeApproximants diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index b59565d..c7274b9 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -3832,5 +3832,7 @@ buglist fix bug 7217
books/bookvol5 add )tangle and )regress commands
20120301.01.tpd.patch books/bookvol10.4 document and regression test PadeApproximants
+20120302.01.tpd.patch +books/bookvol0 add )tangle and )regress commands