Step 224: evaluation harness tests

This commit is contained in:
Bill
2026-02-10 08:06:04 -07:00
parent 3e02f004f0
commit 82bc20b5c8
4 changed files with 46 additions and 1 deletions

View File

@@ -739,6 +739,7 @@ vcpkg's imgui 1.91.9 removed the `sdl2-binding` feature (only `sdl3-binding` exi
| 2026-02-10 | Codex | Step 221: Evaluation basic task suite (30 tasks across core tool flows). 1/1 tests pass (step221_test). | | 2026-02-10 | Codex | Step 221: Evaluation basic task suite (30 tasks across core tool flows). 1/1 tests pass (step221_test). |
| 2026-02-10 | Codex | Step 222: Evaluation workflow task suite (20 multi-step tasks). 1/1 tests pass (step222_test). | | 2026-02-10 | Codex | Step 222: Evaluation workflow task suite (20 multi-step tasks). 1/1 tests pass (step222_test). |
| 2026-02-10 | Codex | Step 223: Evaluation runner CLI (whetstone_eval, task/trace/report pipeline). 1/1 tests pass (step223_test). | | 2026-02-10 | Codex | Step 223: Evaluation runner CLI (whetstone_eval, task/trace/report pipeline). 1/1 tests pass (step223_test). |
| 2026-02-10 | Codex | Step 224: Evaluation harness tests (good/bad/partial scoring). 1/1 tests pass (step224_test). |
| 2026-02-10 | Codex | Step 166: Extract main.cpp into panel headers marked complete (already implemented). step166_test passes; file_limits_test 4/4 passes. | | 2026-02-10 | Codex | Step 166: Extract main.cpp into panel headers marked complete (already implemented). step166_test passes; file_limits_test 4/4 passes. |
| 2026-02-10 | Claude Opus 4.6 | Sprint 7 Phase 7a (Steps 202206): API docs (AGENT_API.md, 23 methods), JSON schemas (20 files), exposed ContextAPI/BatchMutationAPI/Pipeline via RPC, permission policy updates. 51/51 tests pass. | | 2026-02-10 | Claude Opus 4.6 | Sprint 7 Phase 7a (Steps 202206): API docs (AGENT_API.md, 23 methods), JSON schemas (20 files), exposed ContextAPI/BatchMutationAPI/Pipeline via RPC, permission policy updates. 51/51 tests pass. |
| 2026-02-10 | Claude Opus 4.6 | Sprint 7 Phase 7b (Steps 207213): MCPServer.h (10 tools, 5 resources, 4 prompts, JSON-RPC 2.0 initialize handshake), MCPBridge.h (stdio transport). 90/90 tests pass. | | 2026-02-10 | Claude Opus 4.6 | Sprint 7 Phase 7b (Steps 207213): MCPServer.h (10 tools, 5 resources, 4 prompts, JSON-RPC 2.0 initialize handshake), MCPBridge.h (stdio transport). 90/90 tests pass. |

View File

@@ -1154,6 +1154,10 @@ target_include_directories(step222_test PRIVATE src)
add_executable(step223_test tests/step223_test.cpp) add_executable(step223_test tests/step223_test.cpp)
target_include_directories(step223_test PRIVATE src) target_include_directories(step223_test PRIVATE src)
add_executable(step224_test tests/step224_test.cpp)
target_include_directories(step224_test PRIVATE src)
target_link_libraries(step224_test PRIVATE nlohmann_json::nlohmann_json)
add_executable(step213_test tests/step213_test.cpp) add_executable(step213_test tests/step213_test.cpp)
target_include_directories(step213_test PRIVATE src) target_include_directories(step213_test PRIVATE src)
target_link_libraries(step213_test PRIVATE nlohmann_json::nlohmann_json) target_link_libraries(step213_test PRIVATE nlohmann_json::nlohmann_json)

View File

@@ -0,0 +1,40 @@
// Step 224: Evaluation harness tests.
#include <cassert>
#include <string>
#include "EvalHarness.h"
int main() {
EvalTask task;
task.id = "t1";
task.expectedOutcome = {{"toolCalls", {"whetstone_get_ast"}}};
Trace good;
good.id = "t1";
good.steps.push_back({"tool_call", "", "whetstone_get_ast", {}, {}});
good.toolCallCount = 1;
EvalResult r1 = EvalRunner::evaluateTraceForTask(task, good);
assert(r1.score == 1.0);
assert(r1.passed);
Trace bad;
bad.id = "t1";
EvalResult r2 = EvalRunner::evaluateTraceForTask(task, bad);
assert(r2.score == 0.0);
assert(!r2.passed);
EvalTask partial;
partial.id = "t2";
partial.allowPartial = true;
partial.expectedOutcome = {{"toolCalls", {"a", "b"}}};
Trace partialTrace;
partialTrace.id = "t2";
partialTrace.steps.push_back({"tool_call", "", "a", {}, {}});
EvalResult r3 = EvalRunner::evaluateTraceForTask(partial, partialTrace);
assert(r3.score > 0.0 && r3.score < 1.0);
assert(r3.passed);
printf("step224_test: all assertions passed\n");
return 0;
}

View File

@@ -331,7 +331,7 @@ Test suites that measure how accurately an LLM can use Whetstone tools.
- Leaderboard output: rank agents by accuracy, efficiency (fewer tool calls = better) - Leaderboard output: rank agents by accuracy, efficiency (fewer tool calls = better)
*New:* `editor/src/eval_main.cpp` *New:* `editor/src/eval_main.cpp`
- [ ] **Step 224: Evaluation harness tests** - [x] **Step 224: Evaluation harness tests**
Tests for the evaluation framework itself: Tests for the evaluation framework itself:
1. Known-good traces score 100% on basic tasks 1. Known-good traces score 100% on basic tasks
2. Known-bad traces (wrong mutations) score 0% 2. Known-bad traces (wrong mutations) score 0%