Index: /trunk/doc/pslib/testing.txt
===================================================================
--- /trunk/doc/pslib/testing.txt	(revision 838)
+++ /trunk/doc/pslib/testing.txt	(revision 838)
@@ -0,0 +1,152 @@
+Function		Tests to perform
+========		================
+p_psAlloc		Careful inspection of code.  Tested through testing other modules.
+p_psFree		Careful inspection of code.  Tested through testing other modules.
+p_psRealloc		Careful inspection of code.  Tested through testing other modules.
+psAlloc			Careful inspection of code.  Tested through testing other modules.
+psFree			Careful inspection of code.  Tested through testing other modules.
+psMemAllocateCB		This is a typedef.
+psMemAllocateCBSet	Set up a memory callback, allocate memory and make sure it calls back.
+psMemAllocateCBSetID	Set up a memory callback, allocate memory and make sure it calls back.
+psMemCheckCorruption	Allocate memory, and check corruption.  Deliberately overwrite a memBlock.
+psMemCheckLeaks		Allocate and free memory, check for leaks.
+psMemDecrRefCounter	Decrement reference counter to 0 and call psFree.
+psMemExhaustedCBSet	Set CB and check explicitly.
+psMemFreeCBSet		Set CB to use with psMemFreeCBSetID
+psMemFreeCBSetID	Allocate memory, set CB and free memory.
+psMemGetID		Careful inspection of code.  Tested through testing other modules (e.g., psMemFreeCBSetID).
+psMemGetRefCounter	Allocate memory, increment rc, get rc.
+psMemIncrRefCounter	See psMemGetRefCounter.  Attempt to free with rc > 1.
+psMemProblemCBSet	Set CB and check explicitly.  Should be called by psMemCheckCorruption.
+psRealloc		Careful inspection of code.  Tested through testing other modules.
+psAbort			Do an abort.
+psError			Generate multiple levels of errors.
+psGetTraceLevel		Set trace level, get trace level, print trace level.  Check inheritance.
+psLogMsg		Set log level, print log message.  Check inheritance?  Try log level outside 0--9.
+psPrintTraceLevels	Set trace level, get trace level, print trace level.  Check inheritance.
+psSetLogDestination	Set log destination, write log.
+psSetLogFormat		Set log format, write log.
+psSetLogLevel		Set log level, print log message.  Set log level outside 0--9 range.
+psSetTraceLevel		Set trace level, get trace level.  Check inheritance.
+psTrace			Check inheritance.  Try negative trace level.
+psTraceReset		Set trace level, reset trace, print a trace message.
+psDlistAlloc		Constructor/Destructor will be tested through testing other functions.
+psDlistFree		Constructor/Destructor will be tested through testing other functions.
+psDlistAdd		Add to middle, beginning and end of a list.  Add to an empty list.
+psDlistAppend		Append to a list.  Append to empty list.
+psDlistRemove		Remove from middle, beginning and end of list.  Remove from single-element list.
+psDlistGet		Iterate through list to print stuff.
+psDlistSetIterator	Iterate through list to print stuff.
+psDlistGetNext		Iterate through list to print stuff.
+psDlistGetPrev		Iterate backwards through list to print stuff.
+psDlistToArray		Convert list to an array and then iterate through array.
+psArrayToDlist		Convert array back to Dlist and compare.
+psHashAlloc		Constructor/Destructor will be tested through testing other functions.
+psHashFree		Constructor/Destructor will be tested through testing other functions.
+psHashInsert		Put stuff into a hash, look for it.
+psHashLookup		Put stuff into a hash, look for it.
+psHashRemove		Look for something in a hash, remove it.
+psVectorAlloc		Constructor/Destructor will be tested through testing other functions.
+psVectorRealloc		Constructor/Destructor will be tested through testing other functions.
+psVectorFree		Constructor/Destructor will be tested through testing other functions.
+psVectorElementFree	Inspection of code?
+psVoidPtrArrayAlloc	Constructor/Destructor will be tested through testing other functions.
+psVoidPtrArrayRealloc	Constructor/Destructor will be tested through testing other functions.
+psVoidPtrArrayFree	Constructor/Destructor will be tested through testing other functions.
+psEvalDPolynomial2D	Create simple polynomial and check expected result.
+psGaussian		Input random values, compare output to self-calculated values.
+psPolynomial2DAlloc	Constructor/Destructor will be tested through testing other functions.
+psPolynomial2DFree	Constructor/Destructor will be tested through testing other functions.
+psBitMaskAlloc		Constructor/Destructor will be tested through testing other functions.
+psBitMaskFree		Constructor/Destructor will be tested through testing other functions.
+psBitMaskOp		Set various bitmasks, and test AND, OR, XOR.  Test different sized bitmasks.
+psBitMaskNot		Set bitmask, test NOT: a AND NOT a --> everything 0.
+psBitMaskSet		Tested in the course of psBitMaskOp.
+psBitMaskTest		Tested in the course of psBitMaskOp.
+psBinaryOp		+ - * /, divide by 0, ^, min, max: by a scalar and by a vector and by a matrix
+psMatrixDeterminant	Test singular matrix
+psMatrixInvert		Test singular matrix
+psMatrixLUD		Test singular matrix
+psMatrixLUSolve		Test singular matrix
+psMatrixOp		Test matrix multiplication
+psMatrixToVector	Convert matrix to vector and back to matrix.
+psMatrixTranspose	Transpose matrix and check
+psScalarType		Tested in the course of psBinaryOp
+psUnaryOp		abs, exp, ln, ten = 10^x, log = log_10, sin, cos, tan, asin, acos, atan: scalar, vector, matrix
+psVectorToMatrix	Convert matrix to vector and back to matrix
+psMinimize		Use a quadratic function and check that numerical minimum is analytic minimum.
+psMinimizeChi2		Similar to psMinimize, except using data points generated from a quadratic.
+psImageAlloc		Constructor/Destructor will be tested through testing other functions.
+psImageClip		Create random image, clip and check that everything is clipped.
+psImageCopy		Copy an image and compare with original.  Check type conversion!
+psImageCut		Create image with known pattern, cut across pattern and compare with pattern.
+psImageEvalPolynomial	Create image with polynomial, and fit polynomial to that image.
+psImageFitPolynomial	Create image with polynomial, and fit polynomial to that image.
+psImageFree		Constructor/Destructor will be tested through testing other functions.
+psImageFreePixels	Constructor/Destructor will be tested through testing other functions.
+psImageGetStats		Create image with known statistics, check stats against parent.
+psImageHistogram	Create image with 5 different values, get histogram with 3 bins and check.
+psImageOverlaySection	Create two random images, overlay one on the other and check pixel values.  Overlay over the edges.
+psImageRadialCut	Create image with known pattern, cut through pattern.
+psImageReadSection	Create an image, write image, read section and compare with original.
+psImageRebin		Create image with simple pattern (0,1,0,1), rebin and compare with expectation.
+psImageRoll		Roll an image and check with original.
+psImageRotate		Rotate an image 90 deg and 180 deg and compare both.
+psImageShift		Create image with simple pattern (0,1,0,1), shift by 0.5 pix and compare with expectation.
+psImageSlice		Create image with known pattern, slice through pattern.
+psImageSubset		Create random image, make subimage, compare.  Try to make subimage over edges.
+psImageWriteSection	Create image, write section, read image and compare.  Try to write over edges.
+psSort			Create random vector, sort, check.  Make sure there are conflicts, x[5] == x[6].
+psSortIndex		Create random vector, sort, check.  Make sure there are conflicts, x[5] == x[6].
+psArrayStats		Create vector with known statistics, get stats and compare with parent.
+psGetArrayHistogram	Create vector with 5 values, get histogram with 3 bins, compare.
+psHistogramAlloc	Constructor/Destructor will be tested through testing other functions.
+psHistogramAllocGeneric	Constructor/Destructor will be tested through testing other functions.
+psHistogramFree		Constructor/Destructor will be tested through testing other functions.
+psStatsAlloc		Constructor/Destructor will be tested through testing other functions.
+psStatsFree		Constructor/Destructor will be tested through testing other functions.
+
+
+
+[[[These functions are no longer relevant]]]
+
+psStringCopy		Not required, but used by RHL.
+psStringNCopy		Not required, but used by RHL.
+psFloatArrayAlloc	Replaced by psVector.
+psFloatArrayRealloc	Replaced by psVector.
+psFloatArrayFree	Replaced by psVector.
+psComplexArrayAlloc	Replaced by psVector.
+psComplexArrayRealloc	Replaced by psVector.
+psComplexArrayFree	Replaced by psVector.
+psIntArrayAlloc		Replaced by psVector.
+psIntArrayRealloc	Replaced by psVector.
+psIntArrayFree		Replaced by psVector.
+psDoubleArrayAlloc	Replaced by psVector.
+psDoubleArrayRealloc	Replaced by psVector.
+psDoubleArrayFree	Replaced by psVector.
+psVectorArrayAlloc	Did we specify this?
+psVectorArrayRealloc	Did we specify this?	
+psVectorArrayFree	Did we specify this?
+psFFTAlloc		FFT API changed.
+psFFTAlloc1D		FFT API changed.
+psFFTConvolve		FFT API changed.
+psFFTCrossCorrelate	FFT API changed.
+psFFTFilter		FFT API changed.
+psFFTFilterComplex	FFT API changed.
+psFFTForward		FFT API changed.
+psFFTFree		FFT API changed.
+psFFTGetFT		FFT API changed.
+psFFTGetImage		FFT API changed.
+psFFTPowerSpec		FFT API changed.
+psFFTReverse		FFT API changed.
+psGetArrayPolynomial	Dropped?
+psImageFReadHeader	Is this being implemented?
+psImageFReadSection	Is this being implemented?
+psImageFWriteSection	Is this being implemented?
+psImageFreeChildren	Dropped.
+psImageReadHeader	Dropped?
+psMemExhaustedCB	This is a typedef.
+psMemFreeCB		This is a typedef
+psMemProblemCB		This is a typedef.
+p_psTrace		This is a macro replacement for psTrace.
+psVLogMsg		This is a macro replacement for psLogMsg?
