Files
BrowserOS/packages/browseros-agent/apps/eval/tests/grading/python-script-layout.test.ts
Nikhil 84a79ba0a1 feat: refactor eval pipeline workflow (#875)
* feat(eval): add suite variant config bridge

* feat(eval): add stable run artifacts

* refactor(eval): add shared grader contract

* feat(eval): persist grader artifacts

* refactor(eval): rename runner layers

* refactor(eval): add executor backend boundary

* refactor(eval): split clado backend

* feat(eval): add workflow compatible cli

* feat(eval): add r2 publisher module

* ci(eval): migrate weekly workflow to eval cli

* docs(eval): document suite pipeline

* chore(eval): verify pipeline refactor

* fix: address review feedback for PR #875

* docs(eval): add env example

* docs(eval): explain suites and variants

* chore(eval): organize config layouts

* chore(eval): colocate grader python evaluators
2026-04-29 17:21:02 -07:00

22 lines
850 B
TypeScript
Vendored

import { describe, expect, it } from 'bun:test'
import { stat } from 'node:fs/promises'
import { resolve } from 'node:path'
async function exists(path: string): Promise<boolean> {
return !!(await stat(path).catch(() => null))
}
describe('grader python script layout', () => {
it('keeps runtime evaluator scripts next to the grader implementation', async () => {
const pythonDir = resolve(import.meta.dir, '../../src/graders/python')
const scriptsDir = resolve(import.meta.dir, '../../scripts')
expect(await exists(resolve(pythonDir, 'agisdk-evaluate.py'))).toBe(true)
expect(await exists(resolve(pythonDir, 'infinity-evaluate.py'))).toBe(true)
expect(await exists(resolve(scriptsDir, 'agisdk-evaluate.py'))).toBe(false)
expect(await exists(resolve(scriptsDir, 'infinity-evaluate.py'))).toBe(
false,
)
})
})