[squeak-dev] Method categories in test cases

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

[squeak-dev] Method categories in test cases

Ian Trudel-2
Hey y'all,

I am somehow annoyed with the categories we can find in various test
cases. It gets sometimes messy, confusing, and some categories with
the same meaning can have many forms. Writing a snippet in the
workspace (see code below) revealed it wasn't as bad as I have first
anticipated (see output below). Snippet is ran against community trunk
+ tests.

My opinion is that every little bit counts and we would all benefit if
we can inject some form of uniformity. How about defining some
standard naming for categories in the basic image? Against? For? Ideas
and suggestions?

Oh! By the way, the most popular category of all time is.... (rolling
drums)... as yet unclassified !

Ouch. =)

Ian.


| total tests categories |
total := 0.
categories := Dictionary new.
tests := TestCase allSubclasses.
tests do: [:each |
        each organization categories do: [:category |
                total := total + 1.
                categories at: category put: ((categories at: category ifAbsentPut: [0]) + 1)]
].
Transcript
        show: 'TestCases: ', tests size printString; cr;
        show: 'Total categories: ', total printString; cr;
        show: 'Total categories without duplicates: ', categories size printString; cr.
categories keysAndValuesDo: [:k :v |
        Transcript show: k asString, ' : ', v printString; cr].
^categories.


Output in my transcript:

TestCases: 235
Total categories: 554
Total categories without duplicates: 167

*monticello-mocks : 1
Coverage : 12
Event Notifications : 2
Events-Classes : 1
Events-Expression : 1
Events-General : 1
Events-Instance Variables : 1
Events-Methods : 1
IEEE 754 : 1
NaN behavior : 1
Not categorized : 2
Private : 7
Private-Generation : 1
Running : 15
Sunit original tests : 1
Testing : 2
Testing-Classes : 1
Testing-Expression : 1
Testing-Instance Variables : 1
Testing-Methods : 1
Testing-system triggers : 1
Tests : 12
accessing - defaults : 1
accessing : 7
actions : 3
as yet unclassified : 41
asserting : 12
association tests : 1
basic : 1
basic tests : 3
bugs : 1
building : 5
comparing : 1
compiling : 1
constants : 4
coverage : 1
create/delete tests : 1
data : 2
emulating : 1
events : 1
example module : 2
examples : 6
existence tests : 1
finalization handling : 1
helper : 1
helpers : 2
implementation tests : 1
infinity behavior : 1
initialize : 1
initialize-release : 14
keys and value tests : 1
miscellaneous : 1
mocks : 3
morphic : 1
no messages : 5
not categorized : 2
primitives : 1
private : 15
reading : 1
real tests : 1
resources : 1
running : 39
running file : 1
running parsing : 1
running resolving : 1
running-broadcast query : 2
running-copying : 1
running-dependent action : 2
running-dependent action supplied arguments : 2
running-dependent value : 2
running-remove actions : 2
selecting : 1
setUp : 1
setUp-tearDown : 1
setup : 6
simulating : 1
support : 5
test : 4
test methods : 2
test subjects : 1
test support : 1
test-comparing : 1
testing - Class Methods : 2
testing - arithmetic : 3
testing - basic : 1
testing - bugs : 1
testing - classification : 1
testing - classside : 1
testing - compiling : 1
testing - conversion : 1
testing - converting : 1
testing - etoys : 1
testing - examples : 1
testing - initialization : 1
testing - instance creation : 1
testing - into/outOf World : 1
testing - printing : 1
testing - testing : 3
testing - tokenizing : 1
testing : 65
testing-ExceptionTester : 1
testing-applying trait composition : 2
testing-basic : 1
testing-compiled : 1
testing-compiler : 1
testing-enquiries : 1
testing-finding : 1
testing-limits : 1
testing-method : 1
testing-outer : 1
testing-pragma : 1
testing-primitives : 1
testing-printing : 1
testing-printing-reformating : 1
tests - Class Methods : 1
tests - Float : 2
tests - Integer : 2
tests - accessing : 8
tests - arithmetic : 2
tests - back : 1
tests - basic : 1
tests - benchmarks : 1
tests - bitLogic : 1
tests - bits : 1
tests - character writing : 1
tests - colors : 1
tests - converting : 3
tests - copying : 3
tests - debugging : 1
tests - decoding : 1
tests - decompiling : 1
tests - enumerating : 1
tests - evaluating : 2
tests - indexOf : 1
tests - instance creation : 4
tests - positioning : 2
tests - positionning : 1
tests - printing : 4
tests - public methods : 1
tests - sinuses : 1
tests - substrings : 1
tests - testing : 7
tests : 73
tests-MatrixTransform2x3 : 1
tests-ShortIntegerArray : 1
tests-ShortPointArray : 1
tests-ShortRunArray : 1
tests-WordArray : 1
tests-button : 1
tests-input : 1
tests-lists : 1
tests-menus : 1
tests-misc : 1
tests-not applicable : 1
tests-panel : 1
tests-text : 1
tests-trees : 1
tests-window : 2
testsAccessing : 1
testsAdding : 1
testsCopying : 1
testsEnumerating : 1
testsRemoving : 1
utilities : 5
utility : 2
utils : 1
zero behavior : 1


--
http://mecenia.blogspot.com/

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Method categories in test cases

keith1y
Ian Trudel wrote:

> Hey y'all,
>
> I am somehow annoyed with the categories we can find in various test
> cases. It gets sometimes messy, confusing, and some categories with
> the same meaning can have many forms. Writing a snippet in the
> workspace (see code below) revealed it wasn't as bad as I have first
> anticipated (see output below). Snippet is ran against community trunk
> + tests.
>
> My opinion is that every little bit counts and we would all benefit if
> we can inject some form of uniformity. How about defining some
> standard naming for categories in the basic image? Against? For? Ideas
> and suggestions?
>
> Oh! By the way, the most popular category of all time is.... (rolling
> drums)... as yet unclassified !
>
> Ouch. =)
>
> Ian.
>  
You could use the automatic categorizer in OmniBrowser

Keith

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Method categories in test cases

Ian Trudel-2
2009/7/12 Keith Hodges <[hidden email]>:
> You could use the automatic categorizer in OmniBrowser

That's not really what I meant here...

These things are part of what makes Smalltalk "self documenting" code.
The idea would be to define a standard naming, rename categories
accordingly and stick to it. Then commit to tests repository.

> http://squeakboard.wordpress.com/2009/07/02/a-new-community-development-model/
> * If in doubt, ask.

It was rather a call for opinion... but you're telling me OmniBrowser
does that perfectly and nobody ever thought to run it and make it part
of the current (or even your 3.11) release? Or did I get it all wrong?
:)

Ian.

--
http://mecenia.blogspot.com/

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Method categories in test cases

keith1y
Ian Trudel wrote:

> 2009/7/12 Keith Hodges <[hidden email]>:
>  
>> You could use the automatic categorizer in OmniBrowser
>>    
>
> That's not really what I meant here...
>
> These things are part of what makes Smalltalk "self documenting" code.
> The idea would be to define a standard naming, rename categories
> accordingly and stick to it. Then commit to tests repository.
>
>  
>> http://squeakboard.wordpress.com/2009/07/02/a-new-community-development-model/
>> * If in doubt, ask.
>>    
>
> It was rather a call for opinion... but you're telling me OmniBrowser
> does that perfectly and nobody ever thought to run it and make it part
> of the current (or even your 3.11) release? Or did I get it all wrong?
> :)
>
> Ian
The automatic categorizer post dates current releases of squeak. I dont
use Omnibrowser so I wouldnt know what to do with it.

Keith