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?
