On Wed, Jun 24, 2009 at 6:30 PM, Robert Bradshaw<rober...@math.washington.edu> wrote: > > On Jun 24, 2009, at 12:52 AM, William Stein wrote: > >>>>>> >>>>>> But, err, guys, are you telling *me* that you want an >>>>>> attribute here >>>>>> instead of a method? Or should this be: > > One new attribute in tab completion is fine. A dozen, not so much. I > still like the approach below better though. > >>>> I am still opposed to adding a non-underscore method to SageObject. >>>> >>>> I did like Robert Bradshaw's other suggestion to do something >>>> like the >>>> following. >>>> >>>> sage: Test(foo).associativity() >>>> >>>> sage: Test? >>>> [[descript testing framework]] >>>> >>>> I.e., just create a Sage class "Test", which gives access to the >>>> test >>>> functionality, documents it, can even do something useful on objects >>>> foo that aren't necessarily SageObjects at all, etc. >>>> >>>> Test(obj) returns something that provides all kinds of functionality >>>> and methods for testing said object. This can call certain _ >>>> methods >>>> on obj. >>> >>> That would be fine for me too. The only thing I really care for is >>> for >>> the actual test methods (._test...) to be attached to foo, and >>> derived >>> from its classes. >>> >>> What syntax would you suggest to run all tests? >>> >>> One thing I am not very keen on is that to get the list of available >>> tests, one need to do: >>> >>> sage: t = Test(foo) >>> sage: t.ass<tab> >>> >>> But I guess I can live with that (in practice, I myself will be >>> using t._test_ass<tab>) > > That also seems to read a bit funny. Why not a global tester object, > so one could do. > > tester.test_associativity(foo) > > (OK, the test there is a bit redundant, maybe test.associativity(foo) > or tester.is_associative(foo)")
I also like the idea of a global tester object. Though, an advantage of t = Test(foo) is that it is way more flexible. I.e., sage: t = Tester(some_arithmetic_thing) sage: t.<tab> ---> various arithmetic type tests sage: type(t) <some sort of "arithmetic tester"> sage: t = Tester(a_web_server) sage: t.<tab> ---> various network type tests sage: type(t) <some sort of "web framework tester"> sage: t = Tester(an_element) sage: type(t) <some sort of "element tester"> Of course the tester objects could all fit into a class hierarchy eventually. William -- William --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to sage-devel-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---