sim-lib-forge 0.1.0

Compiled intent records and one-shot BRIDGE lifts for reusable packet programs.
Documentation
use std::collections::BTreeSet;

use sim_kernel::{Symbol, testing::bare_cx as cx};

use crate::{run_eval, standard_eval_arms, standard_eval_corpus};

#[test]
fn report_distinguishes_all_arms() {
    let mut cx = cx();
    let report = run_eval(&mut cx, &standard_eval_corpus(), &standard_eval_arms()).unwrap();
    let names = report
        .arms
        .iter()
        .map(|(name, _)| name.as_str())
        .collect::<Vec<_>>();

    assert_eq!(
        names,
        vec![
            "raw-prose-baseline",
            "compiled-uncached",
            "compiled-cached",
            "compiled-cached-downshifted",
            "identical-request-replay",
        ]
    );
    assert!(
        report.metrics("compiled-uncached").unwrap().tokens
            > report.metrics("compiled-cached").unwrap().tokens
    );
}

#[test]
fn golden_artifact_hit_makes_zero_compiler_calls() {
    let mut cx = cx();
    let corpus = standard_eval_corpus();
    let report = run_eval(&mut cx, &corpus, &standard_eval_arms()).unwrap();
    let cached = report.metrics("compiled-cached").unwrap();

    assert_eq!(cached.compiler_calls, 0);
    assert_eq!(cached.execution_calls, corpus.len() as u64);
    assert_eq!(cached.accuracy, 1.0);
}

#[test]
fn identical_request_replay_makes_zero_execution_calls() {
    let mut cx = cx();
    let corpus = standard_eval_corpus();
    let report = run_eval(&mut cx, &corpus, &standard_eval_arms()).unwrap();
    let replay = report.metrics("identical-request-replay").unwrap();

    assert_eq!(replay.execution_calls, 0);
    assert_eq!(replay.replay_hits, corpus.len() as u64);
    assert_eq!(replay.tokens, 0);
    assert_eq!(replay.accuracy, 1.0);
}

#[test]
fn downshift_arm_holds_accuracy_below_baseline_cost() {
    let mut cx = cx();
    let report = run_eval(&mut cx, &standard_eval_corpus(), &standard_eval_arms()).unwrap();
    let raw = report.metrics("raw-prose-baseline").unwrap();
    let downshift = report.metrics("compiled-cached-downshifted").unwrap();

    assert!(downshift.accuracy >= raw.accuracy);
    assert!(downshift.tokens < raw.tokens);
}

#[test]
fn committed_corpus_covers_the_four_bridge_profiles() {
    let profiles = standard_eval_corpus()
        .into_iter()
        .map(|case| case.profile)
        .collect::<BTreeSet<_>>();

    assert_eq!(
        profiles,
        BTreeSet::from([
            Symbol::qualified("bridge", "ASK"),
            Symbol::qualified("bridge", "BRIEF"),
            Symbol::qualified("bridge", "COLLAB"),
            Symbol::qualified("bridge", "LOOM"),
        ])
    );
}