On Sun, 6 Nov 2016, Jakob Kroeker wrote:
> But, If you catched issues for non-corner cases, the challenge is often
> to find a minimal/simple failing example, which is often necessary for
> successful debugging.
True, but I don't see any easy solution to this. As an example, about two
years ago I found bugs in Singular 3, but no failing polynomial of less
than four variables and the polynomials where at least few lines long when
written out.
>> Should have a list of corner cases? I don't know if that would be easy
>> to do or not, something like modulename._cornercases() or so.
>
> I would expect that you will need corner cases per function and per data
> type (graph, Ideal, prime number...)
Yes, that would be good. But for example Sage should never halt on simple
f(0), not for any built-in f. This could be tested automatically.
> I recommend that you continue test sage library functions which you use
> in your own research projects, or functions where you already found bugs
> or expect that they are improperly coded.
> But probably you should not do that, you may get unpleasantly surprised...
:=)
Of course this kind of testing found only bugs that are not dangerous. You
won't get a wrong result from stack trace.
--
Jori Mäntysalo