mirror of
https://github.com/browseros-ai/BrowserOS.git
synced 2026-05-19 11:31:03 +00:00
* 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
22 lines
850 B
TypeScript
Vendored
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,
|
|
)
|
|
})
|
|
})
|