{"base_url":"https://eschaton.theeducode.com","binary_cache":{"languages":"C (50, 201, 221), C++ (54, 202, 222), Java (205, 215), Kotlin (214), Scala (218), SpecialJudge custom checkers","mechanism":"SHA-256 cryptographic hash of (language_id + suite + source_code/source_files). Deterministically sorts and hashes multi-file source maps.","speedup":"Compilation drops from ~200ms (C++) / ~600ms (Java) down to 0.0001s (0.1ms). Concurrency throughput scales up to 33x under live classroom exam bursts.","status":"Enabled by default (RAM-backed in /dev/shm)","ttl":"15-minute sliding window LRU in tmpfs RAM disk (/dev/shm). Zero SSD wear, zero disk I/O."},"compatibility_endpoints":{"GET  /api":"This documentation endpoint (full schema, supported languages, status codes, examples).","GET  /health":"Basic liveness probe (brain status + alive workers count).","GET  /selfcheck":"Last scheduled self-test battery report.","GET  /status":"Quick cluster status and worker count."},"data_science":{"available_on":"Python 3.11 (language_id 204) only; Python 3.8 has NO DS libraries","chart_marker":"print('__CHART__{...}') on its own line; worker strips it from stdout and returns it as the 'chart' field","image_mechanic":"write plot.png in the box (matplotlib savefig); worker returns it base64 as the 'image' field","libraries":["numpy 2.4.6","pandas 3.0.5","matplotlib 3.11.1","seaborn 0.13.2","sympy 1.14.0","openpyxl 3.1.5","PyYAML 6.0.3"],"memory_limit":"DS workloads need \u003e= 256 MB. Send memory_limit: 512 (or 1024) in the request. Default fallback is 512 MB.","reserved_prefix":"The __CHART__ prefix is reserved for engine use. Learner output lines starting with it are consumed as chart payloads, not graded."},"data_science_usage":{"capacity_note":"matplotlib+numpy+pandas pulls in a few hundred MB of RAM per run; leave memory_limit unset (per-language default) or set \u003e= 512 and pace DS submissions on the single-worker test VM.","chart_example_curl":"curl -X POST http://localhost:8080/execute -H 'Content-Type: application/json' -d '{\"source_code\":\"import numpy as np, matplotlib\\nmatplotlib.use('Agg')\\nimport matplotlib.pyplot as plt\\nx=np.linspace(0,10,50)\\nplt.plot(x,np.sin(x))\\nplt.savefig('plot.png')\\nprint('__CHART__{\\\"type\\\":\\\"line\\\",\\\"title\\\":\\\"sin\\\"}') \",\"language_id\":204,\"suite\":\"Omni\",\"memory_limit\":512,\"test_cases\":[{\"id\":1,\"stdin\":\"\",\"expected_output\":\"\"}]}'","how_to_use":["1) write a normal Python program that imports numpy/pandas/matplotlib — matplotlib must use the non-GUI backend (matplotlib.use('Agg'))","2) to return a chart: print('__CHART__{...}') on its own line, where {...} is a JSON object describing the chart (type, title, x, y, labels...) — the worker strips the line from stdout and surfaces it as the 'chart' field in the response","3) to return an image: save the figure to plot.png (plt.savefig('plot.png')) — the worker base64-encodes it as the 'image' field","4) the __CHART__ line is consumed by the engine and is NOT graded; grade against plain stdout normally (expected_output)","5) recommend memory_limit \u003e= 512 (MB) for matplotlib workloads so the pandas/matplotlib import has headroom"],"json_response_shape":"{\"job_id\":...,\"Results\":[{\"test_case_id\":1,\"stdout\":\"\u003cplain stdout, __CHART__ stripped\u003e\",\"stderr\":\"\",\"chart\":{...},\"image\":\"\u003cbase64 plot.png\u003e\",\"time\":...,\"memory\":...,\"passed\":true,\"status_id\":3}]}","languages":"Python only: language_id 71 (Py3.8, numpy 1.24.4 / pandas 2.0.3 / matplotlib 3.7.5) or 204 (Py3.11, numpy 2.4.6 / pandas 3.0.5 / matplotlib 3.11.1). DS libraries are baked into the engine image; no pip install needed at runtime.","suite":"Omni"},"dbms_usage":{"backends":["sqlite","postgres","mysql","oracle"],"capacity_note":"The server backends (postgres/mysql/oracle) share one DB server. On the single-2-CPU test worker, the Omni box pool is small: keep DBMS requests sequential or lightly-paced; heavy parallel DBMS floods saturate the pool and yield status 5 ('timed out waiting for an Omni box'). Re-verify on a multi-worker/prod fleet before classroom load.","env_vars_injected":["ESCHATON_DB_HOST","ESCHATON_DB_PORT","ESCHATON_DB_USER","ESCHATON_DB_PASS","ESCHATON_DB_NAME","ESCHATON_DB_SERVICE (oracle only)"],"how_to_use":["1) suite='DBMS', database=\u003cbackend\u003e, language_id=204, plus test_cases with schema_sql (DDL+DML seed) and expected_output","2) sqlite  -\u003e learner code uses sqlite3.connect('app.db'); the seed is applied to app.db before grading","3) postgres-\u003e learner code connects via env vars ESCHATON_DB_HOST/PORT/USER/PASS/NAME with psycopg2","4) mysql   -\u003e learner code connects via the same env vars with pymysql (note Decimal() in SUM output)","5) oracle  -\u003e learner code connects via env vars ESCHATON_DB_HOST/PORT/SERVICE/USER/PASS with oracledb","6) per-test-case schema_sql is applied to a uniquely-named DB per (box, test case, nonce); the DB is dropped after grading"],"languages":"Python only: language_id 71 (Py3.8) or 204 (Py3.11)","suite":"DBMS"},"description":"High-performance code execution engine API. Supports 3 primary endpoints (/execute, /healthz, /system) alongside dedicated /metrics for autoscaling.","http":{"auth":"Public for class use; backpressure backlog handles peak burst concurrency.","content_type":"application/json","healthz_gate":"GET /healthz -\u003e strict readiness gate (workers + DBMS backends); HTTP 200 / 503","method":"POST /execute","metrics_signal":"GET /metrics -\u003e standalone queue depth, in-flight, capacity \u0026 utilization for autoscalers","response_shape":"{ \"job_id\": ..., \"Results\": [ { test_case_id, stdout, stderr, time, memory, chart, image, passed, status_id } ] }","system_status":"GET /system -\u003e unified cluster telemetry, active workers, queue depth, metrics \u0026 selfcheck"},"metrics_endpoint":{"GET  /metrics":"Dedicated autoscaling \u0026 Prometheus metrics. Returns nullifier/annihilator in-flight, queue_depth, backlog_waiting, fleet capacity, and utilization."},"output_evaluation_rules":{"crlf_normalization":"Windows CRLF ('\\r\\n') and lone CR ('\\r') are normalized to standard UNIX newlines ('\\n') across all platforms before comparison.","no_intermediate_trim":"Intermediate whitespace, tabs, column alignments, internal newlines, and leading indentation INSIDE the test case output are strictly preserved and NEVER stripped or collapsed.","terminal_trim_only":"Output comparison ONLY trims trailing whitespace (' ', '\\t') and newlines ('\\n', '\\r\\n') at the VERY END of the entire test case output string.","testcase_isolation":"In multi-test execution, test cases are isolated: trailing whitespace is stripped only from the end of each test case answer, never bleeding across test case boundaries."},"output_fields":{"chart":"Data-Science: structured JSON payload emitted via __CHART__{...} marker","compile_output":"Compiler diagnostic warnings emitted during compilation (e.g. GCC -Wall)","image":"Data-Science: base64-encoded plot.png produced in the box","memory":"KB","passed":"bool","status_id":"Full Judge0-parity set (1-18) plus Eschaton extensions (100-105). See status_codes for every code.","stderr":"Program stderr (valgrind == lines stripped under Complexity)","stdout":"Graded stdout for the test case (chart marker lines stripped)","time":"seconds"},"primary_endpoints":{"GET  /healthz":"Strict cluster readiness gate. Checks: brain alive + \u003e=1 nullifier + \u003e=1 annihilator + postgres/mysql/oracle responsive. Returns HTTP 200 (healthy) or 503 (degraded).","GET  /system":"Unified cluster overview. Consolidated telemetry, queue depths, worker capacities, database health, Prometheus metrics, and selfcheck status in a single JSON payload.","GET  /v1/submissions/{token}":"Retrieve async Judge0 submission results by UUID token.","POST /execute":"Alias for /v1/execute.","POST /submissions":"Alias for /v1/submissions.","POST /v1/execute":"Main native execution endpoint. Submit code with test cases. Supports Void, Omni, Apex, Complexity, DBMS, DataScience. Returns job_id + Results array.","POST /v1/submissions":"Drop-in Judge0 API compatibility route (STRICTLY ENFORCED APEX ROUTING ONLY). Evaluates code per testcase via isolated parallel fan-out. Returns standard Judge0 response schema.","POST /v1/submissions/batch":"Judge0 batch submission endpoint (STRICTLY APEX ROUTING)."},"quickstart":["# run a C++ program (Omni suite, one test case)","curl -X POST http://localhost:8080/execute -H 'Content-Type: application/json' -d '{","  \"source_code\": \"#include \u003ciostream\u003e\\nint main(){int n;std::cin\u003e\u003en;std::cout\u003c\u003cn*2;}\",","  \"language_id\": 202, \"suite\": \"Omni\",","  \"test_cases\": [{\"id\": 1, \"stdin\": \"5\", \"expected_output\": \"10\"}]","}","","# run ultra-high-speed Void suite (C++20, in-memory micro-kernel, 400+ req/s)","curl -X POST http://localhost:8080/execute -H 'Content-Type: application/json' -d '{","  \"source_code\": \"int solve(int a, int b) { return a + b; }\",","  \"language_id\": 202, \"suite\": \"Void\", \"verbose\": 0,","  \"test_cases\": [{\"id\": 1, \"stdin\": \"2 3\", \"expected_output\": \"5\"}, {\"id\": 2, \"stdin\": \"10 20\", \"expected_output\": \"30\"}]","}'","","# chart + JSON: real matplotlib plot (Python 3.11, DS stack built into the image)","curl -X POST http://localhost:8080/execute -H 'Content-Type: application/json' -d '{","  \"source_code\": \"import numpy as np, matplotlib\\nmatplotlib.use('Agg')\\nimport matplotlib.pyplot as plt\\nx=np.linspace(0,10,50)\\nplt.plot(x,np.sin(x))\\nplt.savefig('plot.png')\\nprint('__CHART__{\\\"type\\\":\\\"line\\\",\\\"title\\\":\\\"sin\\\",\\\"x\\\":[0,1,2],\\\"y\\\":[0,1,0]}')\",","  \"language_id\": 204, \"suite\": \"Omni\",","  \"test_cases\": [{\"id\": 1, \"stdin\": \"\", \"expected_output\": \"\"}],","  \"memory_limit\": 512","}","# -\u003e JSON response Results[0] has 'chart' (parsed JSON object, NOT graded) and","#    'image' (base64 plot.png) plus 'stdout' with the __CHART__ line stripped","","# run a multi-file project (C, C++, or Java with headers, helper units, or bundles)","curl -X POST http://localhost:8080/execute -H 'Content-Type: application/json' -d '{","  \"source_files\": {","    \"calc.h\": \"int add(int a, int b);\",","    \"calc.c\": \"#include \\\"calc.h\\\"\\nint add(int a, int b) { return a + b; }\",","    \"main.c\": \"#include \u003cstdio.h\u003e\\n#include \\\"calc.h\\\"\\nint main() { printf(\\\"%d\\\\n\\\", add(15, 27)); return 0; }\"","  },","  \"language_id\": 201, \"suite\": \"Omni\",","  \"test_cases\": [{\"id\": 1, \"stdin\": \"\", \"expected_output\": \"42\"}]","}'","","# check the fleet (is a worker up?)","curl http://localhost:8080/system","","# strict readiness (workers + databases)","curl -i http://localhost:8080/healthz","","# load / autoscaling signal","curl http://localhost:8080/metrics"],"request_fields":{"checker_code":"SpecialJudge only: custom C++ or Python source code evaluating the participant's output against expected answer","checker_language_id":"SpecialJudge only: language of checker_code (optional: 202 for C++ GCC 14, 204 for Python 3.11; auto-detected if omitted)","cpu_time_limit":"CPU seconds (int, optional; overrides per-language default)","database":"DBMS only: sqlite (embedded, live) | postgres | mysql | oracle (shared server containers)","enable_network":"true to allow network inside the sandbox (bool, optional, default false — network is BLOCKED unless set)","language_id":"Language identifier (int, required) — see supported_languages","memory_limit_mb":"Memory cap in MB (int, optional; default per language)","source_code":"Learner program source (string, required unless source_files is provided)","source_files":"Multi-file project bundle: map of filename -\u003e content (object, optional; e.g. {\"calc.h\": \"...\", \"calc.c\": \"...\", \"main.c\": \"...\"}). When provided, all files are seeded into the sandbox and compiled/linked together across C, C++, and Java (Omni, Apex, Void, FileIO). Alternatively, files can be bundled inside source_code using comment delimiters (// --- filename.ext --- or /* [filename.ext] */).","suite":"Execution engine: Omni | Apex | Void | Complexity | MemoryProfile | FileIO | DBMS | SpecialJudge (string, required; not every language supports every suite — see the 'suites' map)","test_cases":"Array of { id, stdin, expected_output, files, output_file, schema_sql } (required, \u003e=1)","verbose":"Void suite only (int, optional, default 0): 0 = Early-Exit submission mode (halts on first failure and returns ONLY the 1 failed test case with status_id: 4, or returns all test cases if all pass with status_id: 3); 1 = Full Diagnostic practice mode (evaluates every test case regardless of failures and returns the complete Results array for all test cases).","wall_time_limit":"Wall-clock seconds (int, optional; overrides per-language default)"},"status_codes":{"1":"IN QUEUE — submitted, waiting for a worker","10":"RUNTIME ERROR (SIGABRT)","100":"OUTPUT LIMIT EXCEEDED — Eschaton extension (Judge0 stops at 18)","101":"KILLED BY SIGKILL — often cgroup OOM reaper","102":"BOX INIT ERROR — isolate --init failed","103":"COMPILE TIMEOUT","104":"COMPILE MEMORY EXCEEDED","105":"SANDBOX INTERNAL ERROR — isolate --run itself failed; also 'DBMS seed failed' when schema_sql provisioning errors","11":"RUNTIME ERROR (NZEC) — non-zero exit","12":"RUNTIME ERROR (other signal / unhandled)","13":"INTERNAL ERROR","14":"EXEC FORMAT ERROR","15":"MEMORY LIMIT EXCEEDED","16":"IDLENESS LIMIT EXCEEDED","17":"TIME LIMIT EXCEEDED (wall clock)","18":"SEGMENTATION FAULT","2":"PROCESSING — currently executing","3":"ACCEPTED — stdout matched expected_output","4":"WRONG ANSWER — stdout ran but did not match","5":"TIME LIMIT EXCEEDED — cpu/wall cap hit (also: 'timed out waiting for an Omni box' when the worker's box pool is saturated)","6":"COMPILATION ERROR — source did not build","7":"RUNTIME ERROR (SIGSEGV)","8":"RUNTIME ERROR (SIGXFSZ)","9":"RUNTIME ERROR (SIGFPE)"},"suites":{"Apex":{"description":"Isolated process PER test case, run in parallel. Real per-test time/memory; a crash on one test cannot affect others.","fields_used":["source_code","language_id","suite=Apex","test_cases[].stdin","test_cases[].expected_output"],"gotchas":["N process boots instead of 1 → heavier","403/gate: Apex+DBMS not supported"],"works_for":"All languages"},"Complexity":{"description":"Runs under Valgrind (tool=lackey); grade by INSTRUCTION COUNT instead of stdout. Limits multiplied x50 internally because Valgrind is slow.","fields_used":["source_code","language_id","suite=Complexity","test_cases[].stdin","test_cases[].expected_output"],"gotchas":["results.time = guest instruction count, not wall time","Any other language → HTTP 400 (gate)"],"works_for":"C (201), C++ (202) only"},"DBMS":{"description":"Database teaching. Python only. Each test case seeds a database via schema_sql, learner connects and queries, stdout is graded.","env_vars":["ESCHATON_DB_HOST","ESCHATON_DB_PORT","ESCHATON_DB_USER","ESCHATON_DB_PASS","ESCHATON_DB_NAME","ESCHATON_DB_SERVICE (oracle)"],"fields_used":["source_code","language_id","suite=DBMS","database","test_cases[].schema_sql","test_cases[].stdin","test_cases[].expected_output"],"gotchas":["SQLite is embedded (app.db); postgres/mysql/oracle are shared server containers","MySQL SUM() prints Decimal('...') — expected_output must include it","DB is uniquely named per (box, test case, nonce) and dropped after grading","Single-worker VM: keep DBMS requests sequential / lightly paced; parallel floods → status 5 box-pool wait"],"works_for":"Python 3.8 (71), Python 3.11 (204) only"},"FileIO":{"description":"File-based problems: seed files into the box, grade a file the program writes.","fields_used":["source_code","language_id","suite=FileIO","test_cases[].files","test_cases[].output_file","test_cases[].expected_output"],"gotchas":["output_file replaces stdout as the graded answer","files map is per-test-case"],"works_for":"C (201), C++ (202), Python 3.11 (204), Java 21 (205)"},"MemoryProfile":{"description":"Alias for Sanitizer: sub-20ms AddressSanitizer memory leak and safety analysis.","fields_used":["source_code","language_id","suite=MemoryProfile","test_cases[].stdin","test_cases[].expected_output"],"works_for":"C (201), C++ (202)"},"Omni":{"description":"Single-process stream execution (ALL test cases streamed through one process via stdin buffer). The undisputed speed king for single-line outputs (evaluated 5,000 C test cases in 67ms / 13.4µs per case). Best for competitive programming problems with single-line outputs per test case.","fields_used":["source_code","language_id","suite=Omni","test_cases[].stdin","test_cases[].expected_output"],"gotchas":["Outputs must be single-line per testcase to avoid newline desynchronization","Student debug prints (e.g. cout \u003c\u003c debug) can offset line counting","Per-test time = total elapsed / N (shared)","A crash on input 1 fails every test in the batch"],"recommended_for":"Standard main() I/O with single-line answers per testcase. Fastest possible bulk execution.","works_for":"All languages"},"Sanitizer":{"description":"Sub-20ms instant memory safety and undefined-behavior grading via AddressSanitizer (ASan) + UBSan.","fields_used":["source_code","language_id","suite=Sanitizer","test_cases[].stdin","test_cases[].expected_output"],"works_for":"C (201), C++ (202)"},"SpecialJudge":{"description":"Custom checker suite for floating-point tolerance, multiple valid solutions, and constructive algorithms. Author provides checker_code (C++ or Python) which is invoked as 'checker in.txt out.txt ans.txt' to evaluate each test case.","fields_used":["source_code","language_id","suite=SpecialJudge","checker_code","checker_language_id (optional)","test_cases"],"gotchas":["Checker returns exit code 0 for Accepted, non-zero for Wrong Answer","Checker stdout/stderr is returned in results[].stderr prefixed with [Checker]"],"works_for":"Nullifier languages: C (201), C++ (202), Python 3.11 (204), etc."},"Void":{"description":"In-memory micro-kernel execution engine for LeetCode-style pure algorithmic functions (solve(...)). Immune to student debug prints and newline desynchronization; handles multi-line outputs and complex types (vectors/arrays) natively. Emits exactly 1 JSON line to stdout.","fields_used":["source_code","language_id","suite=Void","verbose (0 or 1)","test_cases[].stdin","test_cases[].expected_output"],"gotchas":["In verbose=0 on failure, Results contains ONLY the single failed test case (no skipped or synthetic tests)","In verbose=0 on success, Results contains all test cases marked Passed with status_id: 3","In verbose=1, all test cases are executed and returned in the Results array"],"recommended_for":"LeetCode style problems without main(), multi-line outputs, array returns, and instant short-circuiting on failure (verbose=0).","verbose_modes":{"0 (default)":"Early-Exit submission mode: Stops immediately on the first failure. When a test case fails, Results returns ONLY that 1 failed test case (status_id: 4) with exact output. When all pass, Results returns all test cases (status_id: 3).","1":"Full diagnostic mode: Executes every test case to completion and returns the complete Results array for all test cases."},"works_for":"C (50, 201, 221), C++ (54, 202, 222), Python (71, 204), Java (62, 205)"}},"supported_languages":[{"cpu_time_limit_sec":2,"language":"C (GCC 9)","language_id":50,"memory_limit_mb":null,"suites":["Omni","Apex","Void"],"wall_time_limit_sec":4,"worker_type":"nullifier"},{"cpu_time_limit_sec":2,"language":"C (GCC 14)","language_id":201,"memory_limit_mb":null,"suites":["Omni","Apex","Void","Complexity","MemoryProfile","FileIO"],"wall_time_limit_sec":4,"worker_type":"nullifier"},{"cpu_time_limit_sec":2,"language":"C (Modern C23)","language_id":221,"memory_limit_mb":null,"suites":["Omni","Apex","Void"],"wall_time_limit_sec":4,"worker_type":"nullifier"},{"cpu_time_limit_sec":2,"language":"C++ (GCC 9)","language_id":54,"memory_limit_mb":null,"suites":["Omni","Apex","Void"],"wall_time_limit_sec":4,"worker_type":"nullifier"},{"cpu_time_limit_sec":2,"language":"C++ (GCC 14)","language_id":202,"memory_limit_mb":null,"suites":["Omni","Apex","Void","Complexity","MemoryProfile","FileIO"],"wall_time_limit_sec":4,"worker_type":"nullifier"},{"cpu_time_limit_sec":2,"language":"C++ (Modern C++23)","language_id":222,"memory_limit_mb":null,"suites":["Omni","Apex","Void"],"wall_time_limit_sec":4,"worker_type":"nullifier"},{"cpu_time_limit_sec":4,"language":"Python 3.8","language_id":71,"memory_limit_mb":null,"suites":["Omni","Apex","Void","DBMS"],"wall_time_limit_sec":8,"worker_type":"nullifier"},{"cpu_time_limit_sec":4,"language":"Python 3.11","language_id":204,"memory_limit_mb":null,"suites":["Omni","Apex","Void","DBMS"],"wall_time_limit_sec":8,"worker_type":"nullifier"},{"cpu_time_limit_sec":4,"language":"Java 21","language_id":205,"memory_limit_mb":null,"suites":["Omni","Apex","Void","FileIO"],"wall_time_limit_sec":8,"worker_type":"annihilator"},{"cpu_time_limit_sec":4,"language":"JavaScript (Node 22)","language_id":206,"memory_limit_mb":null,"suites":["Omni","Apex","Void"],"wall_time_limit_sec":8,"worker_type":"annihilator"},{"cpu_time_limit_sec":4,"language":"TypeScript (Node 22)","language_id":207,"memory_limit_mb":null,"suites":["Omni","Apex","Void"],"wall_time_limit_sec":8,"worker_type":"annihilator"},{"cpu_time_limit_sec":4,"language":"C#","language_id":208,"memory_limit_mb":null,"suites":["Omni","Apex"],"wall_time_limit_sec":8,"worker_type":"annihilator"},{"cpu_time_limit_sec":2,"language":"Go","language_id":209,"memory_limit_mb":null,"suites":["Omni","Apex"],"wall_time_limit_sec":4,"worker_type":"nullifier"},{"cpu_time_limit_sec":2,"language":"Rust","language_id":210,"memory_limit_mb":null,"suites":["Omni","Apex"],"wall_time_limit_sec":4,"worker_type":"nullifier"},{"cpu_time_limit_sec":4,"language":"PHP","language_id":211,"memory_limit_mb":null,"suites":["Omni","Apex"],"wall_time_limit_sec":8,"worker_type":"annihilator"},{"cpu_time_limit_sec":2,"language":"Bash","language_id":212,"memory_limit_mb":null,"suites":["Omni","Apex"],"wall_time_limit_sec":4,"worker_type":"nullifier"},{"cpu_time_limit_sec":4,"language":"SQL","language_id":213,"memory_limit_mb":null,"suites":["Omni","Apex"],"wall_time_limit_sec":8,"worker_type":"annihilator"},{"cpu_time_limit_sec":4,"language":"SQL (Direct Query)","language_id":250,"memory_limit_mb":null,"suites":["Omni","Apex"],"wall_time_limit_sec":8,"worker_type":"annihilator"},{"cpu_time_limit_sec":4,"language":"Kotlin","language_id":214,"memory_limit_mb":null,"suites":["Omni","Apex"],"wall_time_limit_sec":8,"worker_type":"annihilator"},{"cpu_time_limit_sec":4,"language":"Java (Oracle DBMS)","language_id":215,"memory_limit_mb":null,"suites":["Omni","Apex"],"wall_time_limit_sec":8,"worker_type":"annihilator"},{"cpu_time_limit_sec":4,"language":"Ruby","language_id":216,"memory_limit_mb":null,"suites":["Omni","Apex"],"wall_time_limit_sec":8,"worker_type":"nullifier"},{"cpu_time_limit_sec":2,"language":"Dart","language_id":217,"memory_limit_mb":null,"suites":["Omni","Apex"],"wall_time_limit_sec":4,"worker_type":"nullifier"},{"cpu_time_limit_sec":4,"language":"Scala","language_id":218,"memory_limit_mb":null,"suites":["Omni","Apex"],"wall_time_limit_sec":8,"worker_type":"annihilator"},{"cpu_time_limit_sec":4,"language":"Elixir","language_id":219,"memory_limit_mb":null,"suites":["Omni","Apex"],"wall_time_limit_sec":8,"worker_type":"nullifier"},{"cpu_time_limit_sec":4,"language":"R","language_id":220,"memory_limit_mb":null,"suites":["Omni","Apex"],"wall_time_limit_sec":8,"worker_type":"nullifier"},{"cpu_time_limit_sec":2,"language":"Swift","language_id":223,"memory_limit_mb":null,"suites":["Omni","Apex"],"wall_time_limit_sec":4,"worker_type":"nullifier"},{"cpu_time_limit_sec":4,"language":"Java (Judge0 ID 62)","language_id":62,"memory_limit_mb":null,"suites":["Omni","Apex","Void"],"wall_time_limit_sec":8,"worker_type":"annihilator"},{"cpu_time_limit_sec":4,"language":"JavaScript Node.js (Judge0 ID 63)","language_id":63,"memory_limit_mb":null,"suites":["Omni","Apex"],"wall_time_limit_sec":8,"worker_type":"annihilator"},{"cpu_time_limit_sec":4,"language":"TypeScript (Judge0 ID 74)","language_id":74,"memory_limit_mb":null,"suites":["Omni","Apex"],"wall_time_limit_sec":8,"worker_type":"annihilator"}],"test_case_fields":{"expected_output":"Graded expectation (string) — compared against stdout under strict terminal-trim semantics (see output_evaluation_rules)","files":"FileIO suite: map filename -\u003e content seeded into the sandbox box before run (object)","id":"Test case identifier (int)","output_file":"FileIO suite: file the program writes as its answer; graded in place of stdout (string)","schema_sql":"DBMS suite: DDL+DML used to seed the per-test database for the chosen backend (sqlite app.db, postgres/mysql/oracle server containers). Each test case may carry its own schema_sql.","stdin":"Standard input fed to the program (string, default '')"},"usage_examples":[{"language":"C++ (Void: in-memory 400+ req/s micro-kernel)","payload":{"language_id":202,"source_code":"int solve(int a, int b) { return a + b; }","suite":"Void","test_cases":[{"expected_output":"5","id":1,"stdin":"2 3"},{"expected_output":"30","id":2,"stdin":"10 20"}],"verbose":0}},{"language":"C++","payload":{"language_id":202,"source_code":"#include \u003ciostream\u003e\nusing namespace std;\nint main() { int n; cin \u003e\u003e n; cout \u003c\u003c n*2; }","suite":"Omni","test_cases":[{"expected_output":"10","id":1,"stdin":"5"}]}},{"language":"Python 3.11 (DBMS / SQLite)","payload":{"cpu_time_limit":4,"database":"sqlite","language_id":204,"source_code":"import sqlite3\nc=sqlite3.connect('app.db')\nprint(c.execute(\"SELECT COUNT(*), SUM(amount) FROM orders\").fetchone())","suite":"DBMS","test_cases":[{"expected_output":"(2, 350)","id":1,"schema_sql":"CREATE TABLE orders(id INT, amount INT); INSERT INTO orders VALUES(1,100); INSERT INTO orders VALUES(2,250);","stdin":""}],"wall_time_limit":8}},{"language":"Python 3.11 (DBMS / PostgreSQL)","payload":{"cpu_time_limit":4,"database":"postgres","language_id":204,"source_code":"import os,psycopg2\nc=psycopg2.connect(host=os.environ['ESCHATON_DB_HOST'],port=int(os.environ['ESCHATON_DB_PORT']),user=os.environ['ESCHATON_DB_USER'],password=os.environ['ESCHATON_DB_PASS'],dbname=os.environ['ESCHATON_DB_NAME'])\ncur=c.cursor();cur.execute('SELECT COUNT(*), SUM(amount) FROM orders');print(cur.fetchone());cur.close();c.close()","suite":"DBMS","test_cases":[{"expected_output":"(2, 350)","id":1,"schema_sql":"CREATE TABLE orders(id INT, amount INT); INSERT INTO orders VALUES(1,100); INSERT INTO orders VALUES(2,250);","stdin":""}],"wall_time_limit":10}},{"language":"Python 3.11 (DBMS / MySQL)","payload":{"cpu_time_limit":4,"database":"mysql","language_id":204,"source_code":"import os,pymysql\nc=pymysql.connect(host=os.environ['ESCHATON_DB_HOST'],port=int(os.environ['ESCHATON_DB_PORT']),user=os.environ['ESCHATON_DB_USER'],password=os.environ['ESCHATON_DB_PASS'],database=os.environ['ESCHATON_DB_NAME'])\ncur=c.cursor();cur.execute('SELECT COUNT(*), SUM(amount) FROM orders');print(cur.fetchone());cur.close();c.close()","suite":"DBMS","test_cases":[{"expected_output":"(2, Decimal('350'))","id":1,"schema_sql":"CREATE TABLE orders(id INT, amount INT); INSERT INTO orders VALUES(1,100); INSERT INTO orders VALUES(2,250);","stdin":""}],"wall_time_limit":10}},{"language":"Python 3.11 (DBMS / Oracle)","payload":{"cpu_time_limit":4,"database":"oracle","language_id":204,"source_code":"import os,oracledb\nc=oracledb.connect(user=os.environ['ESCHATON_DB_USER'],password=os.environ['ESCHATON_DB_PASS'],dsn=os.environ['ESCHATON_DB_HOST']+':'+os.environ['ESCHATON_DB_PORT']+'/'+os.environ['ESCHATON_DB_SERVICE'])\ncur=c.cursor();cur.execute('SELECT COUNT(*), SUM(amount) FROM orders');print(cur.fetchone());cur.close();c.close()","suite":"DBMS","test_cases":[{"expected_output":"(2, 350)","id":1,"schema_sql":"CREATE TABLE orders(id INT, amount INT); INSERT INTO orders VALUES(1,100); INSERT INTO orders VALUES(2,250);","stdin":""}],"wall_time_limit":10}},{"language":"Python 3.11 (Data-Science chart + plot, real matplotlib)","payload":{"language_id":204,"memory_limit":512,"source_code":"import numpy as np, matplotlib\nmatplotlib.use('Agg')\nimport matplotlib.pyplot as plt\nx=np.linspace(0,10,50)\nplt.plot(x,np.sin(x))\nplt.savefig('plot.png')\nprint('__CHART__{\"type\":\"line\",\"title\":\"sin\",\"x\":[0,1,2],\"y\":[0,1,0]}')\nprint('ANSWER_42')","suite":"Omni","test_cases":[{"expected_output":"ANSWER_42","id":1,"stdin":""}]}},{"language":"C (Apex: isolated per-test run, 3 tests)","payload":{"language_id":201,"source_code":"#include \u003cstdio.h\u003e\nint main(){int a,b;scanf(\"%d%d\",\u0026a,\u0026b);printf(\"%d\",a+b);}","suite":"Apex","test_cases":[{"expected_output":"3","id":1,"stdin":"1 2"},{"expected_output":"30","id":2,"stdin":"10 20"},{"expected_output":"101","id":3,"stdin":"100 1"}]}},{"language":"C (Complexity: valgrind instruction-count grading)","payload":{"language_id":201,"source_code":"#include \u003cstdio.h\u003e\nint main(){int n;scanf(\"%d\",\u0026n);printf(\"%d\",n*2);}","suite":"Complexity","test_cases":[{"expected_output":"10","id":1,"stdin":"5"}]}},{"language":"C++ (MemoryProfile: use-after-free detection)","payload":{"language_id":202,"source_code":"#include \u003ciostream\u003e\nint main(){int* a=new int[10];a[0]=7;delete[] a;std::cout\u003c\u003ca[0];}","suite":"MemoryProfile","test_cases":[{"expected_output":"7","id":1,"stdin":""}]}},{"language":"C (FileIO: seed in.txt, grade out.txt)","payload":{"language_id":201,"source_code":"#include \u003cstdio.h\u003e\nint main(){FILE*f=fopen(\"in.txt\",\"r\");int n;fscanf(f,\"%d\",\u0026n);fclose(f);FILE*o=fopen(\"out.txt\",\"w\");fprintf(o,\"%d\",n*2);fclose(o);}","suite":"FileIO","test_cases":[{"expected_output":"42","files":{"in.txt":"21"},"id":1,"output_file":"out.txt"}]}},{"language":"C Multi-File Project (Header + Implementation + Main)","payload":{"language_id":201,"source_files":{"calc.c":"#include \"calc.h\"\nint add(int a, int b) { return a + b; }","calc.h":"#ifndef CALC_H\n#define CALC_H\nint add(int a, int b);\n#endif","main.c":"#include \u003cstdio.h\u003e\n#include \"calc.h\"\nint main() { printf(\"%d\\n\", add(15, 27)); return 0; }"},"suite":"Omni","test_cases":[{"expected_output":"42","id":1,"stdin":""}]}},{"language":"Java Multi-File Project (Separate Classes)","payload":{"language_id":205,"source_files":{"Helper.java":"public class Helper {\n    public static String greet() {\n        return \"Hello from Helper\";\n    }\n}","Main.java":"public class Main {\n    public static void main(String[] args) {\n        System.out.println(Helper.greet());\n    }\n}"},"suite":"Omni","test_cases":[{"expected_output":"Hello from Helper","id":1,"stdin":""}]}},{"language":"Java Single-File with Out-of-Order Imports and Secondary Classes","payload":{"language_id":205,"source_code":"public class Main {\n    public static void main(String[] args) {\n        System.out.println(Helper.calc());\n    }\n}\nimport java.util.ArrayList;\npublic class Helper {\n    public static int calc() { return 42; }\n}","suite":"Omni","test_cases":[{"expected_output":"42","id":1,"stdin":""}]}},{"language":"Python 3.11 (Void: high-speed in-memory algorithmic evaluation, 180k+ tc/s)","payload":{"language_id":204,"source_code":"def solve(*args):\n    if len(args) == 2:\n        return args[0] + args[1]\n    return sum(args)","suite":"Void","test_cases":[{"expected_output":"30","id":1,"stdin":"10 20"},{"expected_output":"20","id":2,"stdin":"5 15"}],"verbose":0}},{"language":"Java 21 (Void: high-speed in-memory algorithmic evaluation, 35k+ tc/s)","payload":{"language_id":205,"source_code":"public class Solution {\n    public static int solve(int a, int b) {\n        return a + b;\n    }\n}","suite":"Void","test_cases":[{"expected_output":"300","id":1,"stdin":"100 200"},{"expected_output":"42","id":2,"stdin":"40 2"}],"verbose":0}},{"language":"C++ Multi-File Project (Header + Implementation + Main)","payload":{"language_id":202,"source_files":{"calc.cpp":"#include \"calc.hpp\"\nnamespace Math { int multiply(int a, int b) { return a * b; } }","calc.hpp":"#pragma once\nnamespace Math { int multiply(int a, int b); }","main.cpp":"#include \u003ciostream\u003e\n#include \"calc.hpp\"\nint main() { std::cout \u003c\u003c Math::multiply(6, 7) \u003c\u003c std::endl; return 0; }"},"suite":"Omni","test_cases":[{"expected_output":"42","id":1,"stdin":""}]}},{"language":"Python Multi-File Project (Module Import)","payload":{"language_id":204,"source_files":{"helper.py":"def get_answer():\n    return 42","main.py":"from helper import get_answer\nprint(get_answer())"},"suite":"Omni","test_cases":[{"expected_output":"42","id":1,"stdin":""}]}},{"language":"SpecialJudge (Custom C++ Checker with Floating-Point Tolerance)","payload":{"checker_code":"#include \u003ciostream\u003e\n#include \u003cfstream\u003e\n#include \u003ccmath\u003e\nint main(int argc, char* argv[]) {\n    std::ifstream out(argv[2]);\n    std::ifstream ans(argv[3]);\n    double o, a;\n    if (!(out \u003e\u003e o) || !(ans \u003e\u003e a)) return 1;\n    if (std::abs(o - a) \u003c 1e-4) return 0; // Accepted\n    return 1; // Wrong Answer\n}","checker_language_id":202,"language_id":202,"source_code":"#include \u003ciostream\u003e\nint main() { std::cout \u003c\u003c 3.1415926535 \u003c\u003c std::endl; return 0; }","suite":"SpecialJudge","test_cases":[{"expected_output":"3.14159","id":1,"stdin":""}]}},{"language":"Standard Judge0 ID Parity (Java 62 / Node.js 63 / TypeScript 74)","payload":{"language_id":62,"source_code":"public class Main { public static void main(String[] args) { System.out.println(\"Judge0 Parity\"); } }","suite":"Omni","test_cases":[{"expected_output":"Judge0 Parity","id":1,"stdin":""}]}}]}
