Implementations of NUMERICAL-EQUAL for mixed list/vector arguments.
[lisp-unit.git] / TODO
blob9f7b16378683acbf8ef7c650e444ee2c08bee0dd
1 LISP-UNIT TODO
3 2009-04-15
5 (1) Generate a tutorial describing how to use LISP-UNT.
7 (2) The default value of epsilon is dependent on the least precise
8 argument to %FLOAT-EQUAL. This is determined in %FLOAT-EQUAL using a
9 COND form. It would be more efficient to pull the determination of the
10 default epsilon out of %FLOAT-EQUAL so that it is not repeated in
11 every iteration of a loop, particularly for arrays that are guaranteed
12 to have uniform floating point types.
14 (3) Add unit testing for lisp-unit. I think the approach should be to
15 note some functions and macros as identities that have be verified or
16 are logically correct. All tests of lisp-unit should then be defined
17 in terms of the identity functions. Maybe a core set of functionality
18 should be verified using standard CL comparisons such as eq, eql, =,
19 etc.
21 (4) Design better data structures for the sequence and array error
22 results. The data structure is currently a nested list. Should
23 probably be a structure or class. Maybe a hash table.
25 (5) Better integrate the numeric diagnostic functions with the numeric
26 assertions. Currently, the VALUE and FORM argument of the assertion
27 must be repeated as arguments to the diagnostic function. The intent
28 is that you simply note the diagnostic function that you wish to apply
29 to the test in the event of a failure and the VALUE and FORM arguments
30 are automagically passed to that function.
32 (6) Improve the test report. Initially, it would be useful to only
33 specifically report the failures and otherwise just report the overall
34 summary. Other improvements might be some sort of progress indication,
35 like 'PPPPFPPPFFFP.......' where P is pass, F is fail and (.) is not
36 performed yet. Ideas here are welcome.
38 (7) Interactive correction of tests. Something along the lines of the
39 debugger, maybe actually using the debugger. I envision a work-flow
40 scenario where you run all of the tests and see X of Y tests
41 failed. Now you enter a form like
43   CL-USER> (lisp-unit:run-failed-tests :interactive t)
45 where the default for interactive is nil. Actually, this approach
46 could also satisfy the reporting requirements. Anyway, the first
47 failed test is executed reporting the results and you are provided a
48 prompt with some options. The options could be along the lines of
49 abort the testing, pick a diagnostic function to execute or re-run the
50 test. If the re-run the test option is chosen, it should be after
51 modifications to the definition of the test or the routine being
52 tested are made. The idea for this interactive correction feature is
53 to tighten the debug loop. Input on this idea is highly welcome.
55 (8) A documentation of the internals would also be useful.