apppend unexposed bugs to the rhs of the benchmark plot

This commit is contained in:
Burke Fetscher 2014-03-22 15:28:29 -05:00
parent 94a5f215b1
commit 0f5be21f21

View File

@ -1,6 +1,7 @@
#lang racket/base #lang racket/base
(require plot/pict (require "apply-diffs.rkt"
plot/pict
racket/cmdline racket/cmdline
racket/list racket/list
racket/match racket/match
@ -65,6 +66,21 @@
29 2.045 29 2.045
30 2.042)) 30 2.042))
(define (bug-file? f)
(define m (regexp-match #rx"^.*/(.*-[0-9]\\.rkt)$"
(path->string f)))
(and m
(second m)))
(define (all-bug-files)
(sort
(flatten
(for/list ([d (in-list (get-directories directories))])
(for/list ([f (in-directory d)]
#:when (bug-file? f))
(bug-file? f))))
string<?))
(define (make-plot filenames) (define (make-plot filenames)
(parameterize ([plot-x-tick-label-angle 75] (parameterize ([plot-x-tick-label-angle 75]
[plot-x-tick-label-anchor 'right] [plot-x-tick-label-anchor 'right]
@ -102,6 +118,9 @@
(define name-avgs (make-hash)) (define name-avgs (make-hash))
(for ([b (in-list (all-bug-files))])
(hash-set! name-avgs b '()))
(define data-stats (define data-stats
(let loop ([d data] (let loop ([d data]
[sorted-times (hash)]) [sorted-times (hash)])
@ -131,19 +150,30 @@
0 0
(error-bar times))))]))) (error-bar times))))])))
(define (name-order name)
(define name-order
;; this function is mysteriously called a LOT...
(let ([memo (make-hash)])
(λ (name)
(hash-ref memo name
(λ ()
(define ans
(length (length
(or (or
(memf (memf
(λ (n) (equal? n name)) (λ (n) (equal? n name))
(sort (hash-keys name-avgs) (sort (sort (hash-keys name-avgs)
string>?)
> >
#:key (λ (k) #:key (λ (k)
(define val (hash-ref name-avgs k)) (define val (hash-ref name-avgs k))
(if (number? val) (cond
val [(number? val) val]
(mean val))))) [(empty? val) +inf.0]
[else (mean val)]))))
'()))) '())))
(hash-set! memo name ans)
ans)))))
(define (get-name-num name n) (define (get-name-num name n)
(+ (if (offset?) (+ (if (offset?)
@ -162,7 +192,7 @@
(and (equal? type (list-ref l 1)) (and (equal? type (list-ref l 1))
(list-ref l 2))) (list-ref l 2)))
data-stats))) data-stats)))
(list (define ps
(points (points
(map (map
(λ (l) (λ (l)
@ -173,7 +203,10 @@
#:sym (hash-ref type-symbols type) #:sym (hash-ref type-symbols type)
#:size 20 #:size 20
#:line-width 2 #:line-width 2
#:color (add1 n)) #:color (add1 n)))
(if (equal? type 'ordered)
ps
(list ps
(error-bars (error-bars
(map (λ (d) (map (λ (d)
(list (get-name-num (list-ref d 0) n) (list (get-name-num (list-ref d 0) n)
@ -182,7 +215,7 @@
this-type) this-type)
#:y-min 0.01 #:y-min 0.01
#:line-width 1 #:line-width 1
#:color (length (member type all-types))))) #:color (length (member type all-types))))))
(define (zero->neg n) (define (zero->neg n)
(if (zero? n) (if (zero? n)