open-standards/eoc/eoc-bench/crates/eoc-bench-mt/src/lib.rs
Transaction Science a437feb8ab Parallel ingest: 9 issues' worth of work across openpay / smart-byte / eoc
openpay/
  compliance/                     PCI-DSS readiness package (scope-map,
                                  pci-zero-architecture, hsm-kms-guidance,
                                  qsa-checklist), citing PCI-DSS v4.0.1
                                  requirements. (#1)
  examples/pci-zero/              Runnable example demonstrating a deployment
                                  where merchant code never touches a PAN. (#1)
  crates/op-core/                 Tokenized<Card> typestate + NetworkToken
                                  + CardNetwork + Cryptogram. (#2)
  crates/op-rails-card/network_token/
                                  NetworkTokenProvider trait + VTS adapter
                                  + MDES adapter, with deterministic stubs
                                  behind a 'live' feature flag. (#2)
  crates/op-driver-sdk/conformance/network_token.rs
                                  Conformance harness for third-party
                                  NetworkTokenProvider implementations. (#2)
  crates/op-cli/src/ledger/       'openpay ledger as-of' subcommand for
                                  bi-temporal queries. (#3)
  crates/op-orchestrator/src/telemetry.rs
                                  OpenTelemetry span emission per
                                  Payment<S> transition with semantic-
                                  conventions tags. (#3)
  docs/observability/             Grafana dashboard JSON + wiring guide
                                  for the bi-temporal ledger lens. (#3)

smart-byte/
  smart-byte-rs/                  Rust reference implementation: envelope
                                  encode/decode (canonical CBOR + BLAKE3
                                  content addressing), Ed25519 sign +
                                  verify, lockstep BFT commit MVP, Iroh
                                  transport scaffold, CLI. (#4)
  spec/identity_and_key_rotation.md
                                  Adopts KERI SAIDs + key-event log
                                  format; explicitly does not adopt ACDC
                                  chaining wholesale. (#5)
  conformance/v1/                 21 test vectors covering canonicalisation,
                                  SAID computation, signature verification,
                                  lockstep commit, gossip propagation.
                                  CI gate enforces spec/vector coupling. (#6)

eoc/
  eoc-rs/                         Rust + WASM reference implementation:
                                  4-stage cascade (cache -> kv -> graph ->
                                  neural), joule counters via RAPL / NVML /
                                  powermetrics, CLI, wasm-bindgen surface.
                                  18 tests pass. (#7)
  eoc-bench/                      Benchmark harness, MT-Bench and Router
                                  case sets, 'joules per MT-Bench point'
                                  metric, 'eoc-bench run | compare' CLI. (#8)
  standards/sci-for-ai-submission.md
                                  Submission proposal mapping EOC's
                                  receipt schema to GSF SCI-for-AI. (#9)
  cookbook/                       HuggingFace-style cookbook (markdown +
                                  runnable Python) demonstrating EOC's
                                  cascade with HF AI Energy Score. (#9)
  docs/bench-v0.md                Reproducibility doc for eoc-bench.

Workspace state:
- openpay clippy -- -D warnings: clean across all touched crates
- smart-byte-rs cargo test --workspace + clippy: clean
- eoc-rs cargo test --workspace + clippy: clean (18 tests)
- eoc-bench cargo check --workspace + clippy + 15 tests: clean

Rust 1.95.0 edition 2024 pinned at the open-standards root via
rust-toolchain.toml; every workspace inherits.

Closes #1 #2 #3 #4 #5 #6 #7 #8 #9.
2026-05-23 13:24:05 -04:00

67 lines
2 KiB
Rust

//! MT-Bench-style cases bundled with the EOC benchmark harness.
//!
//! The cases live in `data/cases.json` next to this crate. They are
//! embedded at compile time so the published crate is self-contained and
//! reproducible across environments. The schema is the JSON form of
//! [`eoc_bench_runner::BenchCase`]:
//!
//! ```json
//! {
//! "id": "mt-arith-01",
//! "prompt": "What is 2+2?",
//! "expected": "4",
//! "dataset": "mt"
//! }
//! ```
//!
//! The set deliberately mixes single-turn, multi-turn (concatenated with
//! `\nFollow-up:`), math, reasoning, code, and writing cases so the
//! cascade exercises all four stages.
#![forbid(unsafe_code)]
#![warn(missing_docs)]
use eoc_bench_runner::BenchCase;
/// Raw JSON for the MT-Bench-style suite, embedded at compile time.
pub const CASES_JSON: &str = include_str!("../data/cases.json");
/// Load and parse the bundled MT-Bench-style cases.
///
/// Panics if the embedded JSON fails to parse — that would be a build
/// error, not a runtime condition.
pub fn load() -> Vec<BenchCase> {
serde_json::from_str(CASES_JSON).expect("eoc-bench-mt: data/cases.json is malformed")
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn cases_parse() {
let cases = load();
assert!(!cases.is_empty(), "case set must not be empty");
for c in &cases {
assert!(!c.id.is_empty(), "case id must not be empty");
assert!(!c.prompt.is_empty(), "case prompt must not be empty");
assert_eq!(c.dataset, "mt", "all cases must be tagged dataset=mt");
}
}
#[test]
fn case_ids_are_unique() {
let cases = load();
let mut ids: Vec<&str> = cases.iter().map(|c| c.id.as_str()).collect();
ids.sort_unstable();
let total = ids.len();
ids.dedup();
assert_eq!(ids.len(), total, "case ids must be unique");
}
#[test]
fn case_count_matches_spec() {
// The harness pins at 20 MT cases.
assert_eq!(load().len(), 20);
}
}