@ifplaintext
\input texinfo
@settitle Assert, Testing source Code
@setfilename assert.txt
@copying
This manual is for workspace assert version  0 1 2.

Copyright @copyright{} 2019 Bill Daly

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
@end copying

@titlepage
@title Assert, Testing source Code
@author Bill Daly

@end titlepage

@ifnottex
@node TOP
@end ifnottex

@end ifplaintext

@ifnotplaintext
@node assert
@end ifnotplaintext

@chapter Assert, Testing source Code
@cindex assert, testing source code


This library contains functions to perform unit testing.  There are
five basic functions, assert∆toScreen, assert∆return,
assert∆nil∆toScreen, assert∆nil∆return and assert∆err.  These functions will
execute their right argument (the test) and compare its results to the
left argument.

There are two functions for the environment, assert∆setup and
assert∆cleanup.


@deffn ∇ assert∆setup commands

Execute a list of commands to setup for testing

@end deffn

@deffn ∇ assert∆cleanUp commands

Execute a list of commands to clean up after testing

@end deffn

@deffn ∇ result assert∆toScreen test

Prints a message to the screen indicating whether the test succeeded
or failed.

@end deffn

@deffn ∇ b←result assert∆return test

returns a Boolean value indicating whether the test succeeded or
failed.

@end deffn

@deffn ∇ b ← eval_function assert∆nil∆toScreen  test

Function to test a function without a return value. Such a function
must have some side effects as it has no actual effect. One must write
a function to test for the side effects and return True or False.
Supply the name of that function as a character string.

@end deffn

@deffn ∇ b ← eval_function assert∆nil∆return test

Like assert∆nil∆toScreen, returns true or false rather than cluttering
up your screen.

@end deffn

@deffn ∇ assert∆message

A simple (minded) function to display a message

@end deffn

@deffn ∇ error assert∆error test

A Function to test that an error has occurred. Right now this is empty
function. When I get a bright idea on how to do it I will.

@end deffn

@deffn ∇ b←result assert∆01 test

A helper function to recursively evaluate nested test
results. Navigates through the complexity of nested array to define
what equals actually means.

@end deffn

