Test for Collection>>sorted

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Test for Collection>>sorted

hilaire
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: Test for Collection>>sorted

Stéphane Ducasse

On Mar 31, 2010, at 5:38 PM, Hilaire Fernandes wrote:

> I wrote two tests on the ArrayTest collection to test #sorted and #sorted:
> #sorted broke, it is easy to fix.
>
> I guess we need to write these tests for the whole CollectionTest hierarchy.  I noted there is a CollectionRootTest using trait, however when looking at the asSortedCollection tests, it is reapeatly written for almost each classes of the hierarchy, and not in the CollectionRootTest using inheritance mechanism.
> Any reason for that?

Hilaire you should read the paper on traits.
Probably sorted does not make sense on all collection so we define a trait and apply it when needed.
Traits are simple, just have a look. I did a presentation at esug about them.

Stef

>
> Hilaire
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Test for Collection>>sorted

hilaire
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: Test for Collection>>sorted

hilaire
In reply to this post by Stéphane Ducasse
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: Test for Collection>>sorted

Stéphane Ducasse
In reply to this post by hilaire

On Apr 1, 2010, at 8:50 AM, Hilaire Fernandes wrote:

> Stéphane Ducasse a écrit :
>> On Mar 31, 2010, at 5:38 PM, Hilaire Fernandes wrote:
>>> I wrote two tests on the ArrayTest collection to test #sorted and #sorted:
>>> #sorted broke, it is easy to fix.
>>>
>>> I guess we need to write these tests for the whole CollectionTest hierarchy.  I noted there is a CollectionRootTest using trait, however when looking at the asSortedCollection tests, it is reapeatly written for almost each classes of the hierarchy, and not in the CollectionRootTest using inheritance mechanism.
>>> Any reason for that?
>> Hilaire you should read the paper on traits.
>
> pointer on *one* good tutorial? I think I already read something. A small memento on the syntax to define and to use trait will be enough to get started comfortably. If there are such a things I suggest we add it in good place in the pharo web site (along a paper on unit test); these features are essential parts -- features -- of Pharo, so why not emphasis it.


this is on my todo for the next book but well other people could help...


> Btw, it would be a nice idea to convert an html version of the Pharo by example book, so we can have direct pointer to chapter from the pharo web site. It should be doable with latex2html. In the past I used hyperlatex to produce both nice html and pdf version of DrGeo manual (http://documentation.ofset.org/drgeo/fr/drgenius_51.html)

I do not have time for that.

> Probably sorted does not make sense on all collection so we define a trait and apply it when needed.
>
> Yes. What about writing like bellow? Is it acceptable or is it cumbersome?
>
>
> testSorted
> self unsortedCollection ifNotNil: [self assert: ....]
>
>
> Matrix>>unosrtedCollection
> ^ nil
>
> Arary>>unosrtedCollection
> ^ #(5 9 1 3 2)

Yes the idea is that you define a couple of methods in your testTraits

        testNilSorted
        testSorted
        testSortedWithDuplicates
        testAlreadySorted
        testSortedCollectionIsANewCollection

they will rely on different accessors

        testNilSorted
       
                self assert: self emptyCollection sorted isEmpty


ArrayTest
        uses: TSorted


and since emptyCollection is already defined you are done.

Now if you have
       
testSorted
       
        self assert: self aNonEmptyCollection sorted = self sortedCollection

ArrayTest>> aNonEmptyCollection
        ^ #(3 6 1 20 -3)

ArrayTest>> sortedCollection
        ^ #(-3 1 3 6 20)
       
Stef



>
>
>> Traits are simple, just have a look. I did a presentation at esug about them.
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Test for Collection>>sorted

hilaire
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: Test for Collection>>sorted

Stéphane Ducasse
Thanks hilaire.

Stef


> Stéphane Ducasse a écrit :
>
>>>> Hilaire you should read the paper on traits.
>>> pointer on *one* good tutorial? I think I already read something. A small memento on the syntax to define and to use trait will be enough to get started comfortably. If there are such a things I suggest we add it in good place in the pharo web site (along a paper on unit test); these features are essential parts -- features -- of Pharo, so why not emphasis it.
>> this is on my todo for the next book but well other people could help...
>
> For now, adding two entries on the FAQ with link to reference material
> about Trait and Unit Test could help and be helpful.
>
>
>>> Btw, it would be a nice idea to convert an html version of the Pharo by example book, so we can have direct pointer to chapter from the pharo web site. It should be doable with latex2html. In the past I used hyperlatex to produce both nice html and pdf version of DrGeo manual (http://documentation.ofset.org/drgeo/fr/drgenius_51.html)
>> I do not have time for that.
>
> Depending on how is constructed the latex source it could be tedious or not: if command where use to abstract the latex instruction it will be easier.
>
> I have commited in the Inbox tests and fixed for sorted, sorted: methods. Trait are indeed nicely used in the test classes.
>
> Hilaire
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project