On Wed, Jun 24, 2009 at 8:33 AM, Nicolas M.
Thiery<nicolas.thi...@u-psud.fr> wrote:
>
> On Wed, Jun 24, 2009 at 12:01:58AM -0400, David Roe wrote:
>> On Tue, Jun 23, 2009 at 7:08 PM, Nicolas M. Thiery 
>> <nicolas.thi...@u-psud.fr> wrote:
>
>>     On Tue, Jun 23, 2009 at 10:29:34AM +0200, Franco Saliola wrote:
>>     > > I'm also in favor of _test_X to avoid cluttering up the tab
>>     > > completion. Another option to increase visibility would be to have a
>>     > > test object, e.g.
>>     > >
>>     > > sage: foo.test.associativity()
>>     > > True
>>     >
>>     > +1. I think it merges the two concerns together nicely (visibility and
>>     > avoiding clutter).
>>
>>     Thanks for the feedback! I agree that the syntax looks good.
>>
>>     But, err, guys, are you telling *me* that you want an attribute here
>>     instead of a method? Or should this be:
>>
>> I'm fine with it as a lazy attribute.
>
> Taking a good note of that :-)
>
>>
>>            foo.test().associativity?
>>
>>     I also like the clean aspect of separating the test object. But one of
>>     the main point of doing this would be to stick more closely to the
>>     testunit framework. But then that would call for:
>>
>>            foo.test().test_associativity()
>>
>>     which is not that nice anymore.
>>
>>     Some other questions:
>>
>>      - what syntax do you want to run all tests?
>>
>>            foo.check()
>>
>>            foo.test().run()
>>
>>            foo.test()   /   foo.test.associativity()
>>
>>
>> foo.test().  The __call__ method on the test object runs the tests (would 
>> this
>> work with a lazy attribute?  Yes, right?)
>
> No problem. Well, I actually would just use a property rather than a
> lazy_attribute, since there is no reason to cache the test object.
>
> Do we have a consensus on this?

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.

 -- 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to