On Fri, 21 Jun 2019 at 12:43, K K Subbu <kksubbu.ml@gmail.com> wrote:
Nice graph, Ben! The larger test names (selector size > 100) look more like sentences than names ;-).
On 21/06/19 6:50 AM, Ben Coman wrote:
classes := Object allSubclasses select: [ :cc | cc isKindOf: TestCase class ]. methods := c flatCollect: [ :c | c allMethods ].
Ahh, yes. Blame evolution of the Playground code between when I used it and when I copied it here.
Did you mean "classes" flatCollect: here?
tests := methods select: [ :m | m selector beginsWith: 'test' ]. lengths := tests collect: [ :m | m selector size ].
select:thenCollect: can also be used here.
yes. but I was checking each stage as it grew incrementally.
lengths asBag keysAndValuesDo: [ :len :count | Transcript crShow: len; show: ','; show: count ]
I find the in: selector very handy for quick commands without having to use undefined temps. e.g. ```` (Object allSubclasses select: [ :cc | cc isKindOf: TestCase class ]) in: [ :classes | (classes flatCollect: [ :c | c allMethods ]) in: [ :methods | (methods select: [ :m | m selector beginsWith: 'test' ] thenCollect: [ :m | m selector size ]) in: [:lengths | lengths asBag keysAndValuesDo: [ :len :count | Transcript crShow: len; show: ','; show: count ]]]] ````
cool cheers -ben