[Pharo-project] Coverage of Collection test
Hi, I was looking for an approximation of the coverage in the Collection tests. I wrote the following scripts. Maybe some of you have ideas to refine on how to refine it. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- =-=-=-=-= | definedMethods testedMethods classCategory testCategory suffix classes untestedMethods testClasses | suffix := 'Abstract'. classCategory := 'Collections-', suffix. testCategory := 'CollectionsTests-', suffix. classes := Smalltalk allClasses select: [:cls | cls category = classCategory]. testClasses := Smalltalk allClasses select: [:cls | cls category = testCategory]. definedMethods := classes inject: Set new into: [:sum :cls | sum union: cls methodDictionary keys]. testedMethods := testClasses inject: Set new into: [:sum :cls | sum union: (cls methodDictionary values inject: Set new into: [:sums :cm | sums union: cm messages])]. "testedMethods contains all the methods send in test methods, which probably contains methods that have nothign to do with collection" testedMethods := testedMethods reject: [:sel | (definedMethods includes: sel) not]. untestedMethods := definedMethods select: [:selector | (testedMethods includes: selector) not]. { testedMethods . definedMethods . 'coverage =', (testedMethods size * 100 / definedMethods size) asFloat printString } -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- =-=-=-=-= Here are the results so far CollectionsTests- Abstract = 7 % Arrayed = 15% Sequenceable = 54% SkipLists = 47% Stack = 61% Streams = 10% Support = 24% Text = 25% Unordered = 27% Weak = 11% I tried to make Christo run, but it seems that Reflectivity behaves strangely under Pharo. Cheers, Alexandre -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
participants (1)
-
Alexandre Bergel