                                CAVEAT
                                ------

     The notes in here identify known problem areas or requests for input to the library/testing process.

(1)  The Container classes FMAP and FMULTIMAP have very brief test programs.  While the other classes in the library make fairly extensive use of FMAPs and the class is therefore sort-of tested in the background we would welcome offers to build a more comprehensive test class for both FMAP and FMULTIMAP.

(2)  There is a rather philosophical problem with respect to operations which may be invoked on a non-immutable class.  Should there be an explicit test for void - or should that form part of a pre-condition?  On the basis that anything except a predicate (which is required to be total) - and possibly a 'size' enquiry - is used in order to do something sensible we have opted to put any necessary void test in a pre-condition.  We believe that thorough testing of a program should reveal all such situations either by using the pre and post conditions which are provided for all operations or by explixit user-written test code.  When a program is fully tested then it may be desired to compile without checking code - and there will then be no overhead of a void test.  There are two areas which it might be useful to bring to programmers' attention :-

     a.   There is a minor restriction in the semantics of an ARRAY class
     object compared with the 1.2 library.

     b.   elt! iters require a non-void object.

(3)  Some operations on string literals (the use of which is HEAVILY discouraged!!!!) will only work if the string culture/coding, etc is known.  Since the machine on which the program is compiled may not be that used for execution, anh use of literals require the use of the operation default_lib - ie "Mary had a little lamb".default_lib.

(4)  IMPORTANT The concurrency classes have been converted - BUT HAVE NOT BEEN TESTED.  PLEASE will someone undertake this - PLEASE???????

(5)  Since the abstraction of a cursor is applied not only to strings of characters, but binary strings, strings of runes, etc, etc the two operations currently having the names 'advance_one_char' and 'retract_one_char' now have the much shorter names 'advance' and 'retract'.

(6)  Canonical string ordering tests have yet to be done to demonstrate compliance with the string ordering standard.  Preliminary test indicate that this should work.  It just hasn't been necessary when other things were of higher priority.  They will be done when time permits.

(7)  Code conversion of the default culture files needs to be done - just another thing on the list not needed for beta testing.

(8)  In the container file buckets.sa line 751 has to be commented out for the classes to compile.  The compiler complains about the previous routine not being defined - and I can't (at present) think why!

(9)  The class FSET has been revised to ensure that there is a difference between void and an empty set.  This was NOT so in the 1.2 distribution!
I would like to change the name of the existing 'create' with no arguments to be 'empty' and return an empty set (NOT void!).

(10) Would someone like to produce a test program for CPX and CPXD.  The current 'skeleton' is just a place-holder for someone with a greater knowledge of complex arithmetic than I to complete [TestRequired/Numeric/cpx.sa].

(11) The classes FLT and FLTD in the 1.2 distribution have max and min set to +/- infinity.  Unfortunately that is NOT a valid value for arithmetic purposes.  This has been changed to max normal and -max normal.

(12) Again for the classes FLT and FLTD the 'asize' problem reared its ugly head so the definition of asize is (until the new compiler) put into both FLT and FLTD, rather than in FLT_COMMON.

(13) I have discovered  several cases where some special or limiting value in the 1.2 distribution did not work as expected.  I HOPE I have found most of these, but anyone who really wants to get their hands dirty should try lots of limit tests.

(14) While the class MONEY tests OK as far as I can go without assistance, it should only be used in respect of LOCAL currency - ie no exchange rate conversion.  The reason for this is that I have not been able to find out if there is a standard (preferably an ISO one) for an exchange rate file.  I would be grateful if someone can find a standard for such a file.  Is there not a European standard (EN ?????) perhaps?

(15) All plaudits and brickbats accepted with thanks!

