mirror of
https://github.com/andrewyng/openworker.git
synced 2026-11-05 05:47:02 +00:00
77 lines
3.1 KiB
Rust
77 lines
3.1 KiB
Rust
use openworker_runtime::compaction as c;
|
|
use serde_json::{json, Value};
|
|
|
|
#[test]
|
|
fn shared_python_policy_fixtures() {
|
|
for case in c::REFERENCE["cases"].as_array().unwrap() {
|
|
let result: Value = match case["op"].as_str().unwrap() {
|
|
"trigger" => json!(c::trigger(
|
|
case["window"].as_u64().map(|v| v as usize),
|
|
case["pct"].as_f64().unwrap(),
|
|
case["cap"].as_u64().unwrap() as usize
|
|
)),
|
|
"estimate" => json!(c::estimate(case["messages"].as_array().unwrap())),
|
|
"boundary" => json!(c::boundary(
|
|
case["messages"].as_array().unwrap(),
|
|
case["keep"].as_u64().unwrap() as usize
|
|
)),
|
|
"quality" => json!(c::quality(case["text"].as_str().unwrap())),
|
|
"users" => {
|
|
let users = case["messages"]
|
|
.as_array()
|
|
.unwrap()
|
|
.iter()
|
|
.map(|v| v.as_str().unwrap().to_string())
|
|
.collect::<Vec<_>>();
|
|
let (kept, dropped) = c::fit_users(
|
|
&users,
|
|
case["prior_dropped"].as_u64().unwrap() as usize,
|
|
case["budget"].as_u64().unwrap() as usize,
|
|
case["pin"].as_u64().unwrap() as usize,
|
|
);
|
|
json!({"kept":kept,"dropped":dropped})
|
|
}
|
|
_ => panic!("unknown fixture"),
|
|
};
|
|
assert_eq!(result, case["expected"], "fixture {case}");
|
|
}
|
|
}
|
|
#[test]
|
|
fn raw_reasoning_and_calls_remain_an_atomic_assistant_group() {
|
|
let raw = vec![
|
|
json!({"role":"user","content":"task"}),
|
|
json!({"type":"reasoning","encrypted_content":"private"}),
|
|
json!({"type":"function_call","call_id":"c","name":"read_file","arguments":"{}"}),
|
|
json!({"type":"function_call_output","call_id":"c","output":"ok"}),
|
|
json!({"type":"message","role":"assistant","content":[{"type":"output_text","text":"done"}]}),
|
|
];
|
|
let logical = c::logical(&raw);
|
|
assert_eq!(
|
|
logical.iter().map(|v| v.0).collect::<Vec<_>>(),
|
|
vec![0, 1, 3, 4]
|
|
);
|
|
assert!(!serde_json::to_string(&logical).unwrap().contains("private"));
|
|
let before = raw.clone();
|
|
let _ = c::outbound(&raw, None);
|
|
assert_eq!(raw, before);
|
|
}
|
|
|
|
#[test]
|
|
fn mechanical_state_does_not_claim_failed_or_denied_effects_succeeded() {
|
|
let raw = vec![
|
|
json!({"type":"function_call","call_id":"c1","name":"write_file","arguments":"{\"path\":\"never-created\"}"}),
|
|
json!({"type":"function_call_output","call_id":"c1","output":"{\"error\":\"permission denied\"}"}),
|
|
json!({"type":"function_call","call_id":"c2","name":"write_file","arguments":"{\"path\":\"denied\"}"}),
|
|
json!({"type":"function_call_output","call_id":"c2","output":"{\"denied\":true}"}),
|
|
];
|
|
let state = c::working_state(&raw);
|
|
assert!(state.contains("tool reported failure"));
|
|
assert!(state.contains("denied, not executed"));
|
|
assert_eq!(
|
|
state.contains("Files written"),
|
|
c::DEVIATIONS["rust"]["failed_write_described_as_written"]
|
|
.as_bool()
|
|
.unwrap()
|
|
);
|
|
}
|