s/BenchmarkReportText.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 05 Jun 2013 10:45:29 +0100
changeset 6 25b264cec44e
parent 5 8669edf62d9b
child 12 3a7ebd3da52f
permissions -rw-r--r--
Added parameter to BenchmarkResult to run each benchmark multiple times. The BenchmarkOutcome keeps all times. Also, BenchmarkInstance>>benchmark renamed to selector.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'jv:calipel/s' }"
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
BenchmarkReport subclass:#BenchmarkReportText
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
	instanceVariableNames:''
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
	classVariableNames:''
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	poolDictionaries:''
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	category:'CalipeL/S-Core-Reports'
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
!
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
5
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    11
!BenchmarkReportText methodsFor:'formatting'!
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    12
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    13
format: anObject width: width align: align
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    14
    | string |
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    15
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    16
    string := anObject printString. 
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    17
    align == #left ifTrue:[
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    18
        stream nextPutAll: string.
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    19
        stream next: ((width - string size) max: 0) put: Character space.
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    20
        ^self.
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    21
    ].
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    22
    align == #right ifTrue:[
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    23
        stream next: ((width - string size) max: 0) put: Character space.
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    24
        stream nextPutAll: string.
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    25
        ^self.
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    26
    ].
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    27
    align == #center ifTrue:[
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    28
        stream next: (((width - string size) max: 0) / 2 floor) put: Character space.
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    29
        stream nextPutAll: string.
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    30
        stream next: (((width - string size) max: 0) / 2 ceiling) put: Character space.
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    31
        ^self.
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    32
    ]
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    33
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    34
    "Created: / 31-05-2013 / 12:09:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    35
! !
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    36
1
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
!BenchmarkReportText methodsFor:'writing'!
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
write
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
    | classes outcomes |
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
    classes := SortedCollection sortBlock:[:a :b|a name < b name].
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
    outcomes := Dictionary new.
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
    result outcomes do:[:each|
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
        (classes includes: each instance class) ifFalse:[
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
            classes add: each instance class.
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
        ].
6
25b264cec44e Added parameter to BenchmarkResult to run each benchmark multiple times.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
    48
        (outcomes at: each instance class ifAbsentPut:[SortedCollection sortBlock:[:a :b|a instance selector < b instance selector]])
1
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
            add: each.
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
    ].
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
    classes do:[:class|
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
        stream nextPutAll: '== '; nextPutAll:  class name; nextPutAll: ' =='; cr.
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
        (outcomes at: class) do:[:outcome|
6
25b264cec44e Added parameter to BenchmarkResult to run each benchmark multiple times.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
    55
            self format: outcome instance selector width: 15 align: #right.
5
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    56
            stream nextPutAll: ' : '.
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    57
            self format: outcome time width: 5 align: #right.
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    58
            stream nextPutAll: ' [ms]'.
1
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
            stream cr.
5
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    60
        ].
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    61
    ].
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    62
    stream cr.
1
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
5
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    64
    "Modified: / 31-05-2013 / 12:11:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
! !
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
!BenchmarkReportText class methodsFor:'documentation'!
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
version_HG
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
    ^ '$Changeset: <not expanded> $'
5
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    72
!
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    73
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    74
version_MC
8669edf62d9b Fixes to make it running on Squeak/Pharo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    75
    ^ 'CalipeL_S-Core-JanVrany.7 5c300a20-c9d7-11e2-a959-606720e43e2c 2013-05-31T10:49:17 JanVrany'
1
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
! !
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77