Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
866 changes: 866 additions & 0 deletions racket/benchpilot/client/cli.rkt

Large diffs are not rendered by default.

1,131 changes: 1,131 additions & 0 deletions racket/benchpilot/core/bench-runtime.rkt

Large diffs are not rendered by default.

538 changes: 538 additions & 0 deletions racket/benchpilot/core/contracts.rkt

Large diffs are not rendered by default.

367 changes: 367 additions & 0 deletions racket/benchpilot/core/evidence.rkt

Large diffs are not rendered by default.

10 changes: 9 additions & 1 deletion racket/benchpilot/core/profile.rkt
Original file line number Diff line number Diff line change
Expand Up @@ -91,9 +91,17 @@
;; ----------------------------------------------------------------------------

(define (ci-ref h key [default #f])
(define key*
(if (symbol? key)
(symbol->string key)
key))
(or (hash-ref h key #f)
(hash-ref h key* #f)
(for/first ([(k v) (in-hash h)]
#:when (string-ci=? k key))
#:when (string-ci=? (if (symbol? k)
(symbol->string k)
k)
key*))
v)
(if (procedure? default)
(default)
Expand Down
22 changes: 12 additions & 10 deletions racket/benchpilot/core/readiness-test.rkt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
;; tests/Benchpilot.Core.Tests (BenchReadinessTests): mode determination,
;; placeholder scanning and safety value checks.

(require benchpilot/core/profile
(require benchpilot/core/contracts
benchpilot/core/profile
benchpilot/core/readiness)

(module+ test
Expand Down Expand Up @@ -61,11 +62,12 @@ JSON
(test-case "safety-value-check renders the contract message for present values"
(define check
(safety-value-check "safety.max-voltage" "maxVoltage" 12.5 "V" "Set safety.maxVoltage."))
(check-true (readiness-check-passed check))
(check-equal? (readiness-check-severity check) "error")
(check-equal? (readiness-check-summary check) "Bench safety maxVoltage is configured at 12.5 V.")
(check-false (readiness-check-remediation check))
(check-equal? (readiness-check-details check) (hash "value" "12.5" "unit" "V")))
(check-true (bench-readiness-check-passed check))
(check-equal? (bench-readiness-check-severity check) "error")
(check-equal? (bench-readiness-check-summary check)
"Bench safety maxVoltage is configured at 12.5 V.")
(check-false (bench-readiness-check-remediation check))
(check-equal? (bench-readiness-check-details check) (hash "value" "12.5" "unit" "V")))

(test-case "safety-value-check trims to at most three decimals, invariant format"
(check-equal? (format-safety-number 2000) "2000")
Expand All @@ -80,9 +82,9 @@ JSON
#f
"mA"
"Set safety.maxCurrentMa to a conservative ceiling."))
(check-false (readiness-check-passed check))
(check-equal? (readiness-check-summary check)
(check-false (bench-readiness-check-passed check))
(check-equal? (bench-readiness-check-summary check)
"Real-bench readiness requires safety.maxCurrentMa to be configured.")
(check-equal? (readiness-check-remediation check)
(check-equal? (bench-readiness-check-remediation check)
"Set safety.maxCurrentMa to a conservative ceiling.")
(check-false (readiness-check-details check))))
(check-false (bench-readiness-check-details check))))
5 changes: 3 additions & 2 deletions racket/benchpilot/core/readiness.rkt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@
safety-value-check
format-safety-number)

(require "profile.rkt")
(require benchpilot/core/contracts
"profile.rkt")

;; ----------------------------------------------------------------------------
;; One deterministic readiness assertion. Severity is "error" or "warning";
Expand Down Expand Up @@ -86,7 +87,7 @@

(define (safety-value-check code setting value unit remediation)
(define present (and (real? value) (not (nan? value))))
(readiness-check
(bench-readiness-check
code
present
"error"
Expand Down
Loading
Loading