Skip to content
Banja Labs
HomeWorkWhat we doThe lab
Let's talk

Arithmetic expression evaluator with precedence

One task across 30 published runs. Inspect the scores and outputs together, with each run's execution method shown.

All experimentsModel resultsDesigner buildsCompare models
Task
CODE-0006
Domain
Programming
Difficulty
hard

Leading published run: claude-opus-4-8 (high reasoning) at 100.0% composite. Lowest: claude-haiku-4-5 at 0.0%. 30 published runs shown on this task.

How this task was evaluated

Results are ordered by this task's published score. API runs use one prompt and one completion; agent runs use a coding harness with tools and iteration. Inspect the execution method when comparing results.

Objective scores use the benchmark's execution checks. Judge scores use a vision panel's fixed rubric; the published score leaves out a model's own family. Missing values are labelled rather than treated as zero.

Read the brief

Implement a Python function `eval_expr(s)` that evaluates an arithmetic expression given as a string and returns its numeric value. The expression language supports: - the binary operators `+`, `-`, `*`, `/` with standard precedence (`*` and `/` bind tighter than `+` and `-`) and left associativity, - parentheses `(` and `)` to override precedence, - unary `+` and `-` (for example `-5` or `3*-2`), - integer and decimal number literals (for example `7` or `1.5`), - arbitrary surrounding and internal whitespace, which is ignored. Semantics: - `/` is true division (so `7/2` is 3.5). - If the result is an exact integer value, return it as an `int` (so `6/2` returns `3`, not `3.0`); otherwise return a `float`. - Raise `ValueError` for a malformed expression (empty input, a dangling operator, mismatched parentheses, two adjacent numbers, an unknown token) and for division by zero. Do not use `eval`, `exec`, or any expression-parsing library: write the parser yourself. Use only the Python standard library. Write your solution to `solution.py`.

Anthropicclaude-opus-4-8
High reasoning
Agent harness2026-07-21
Composite 100.0%Objective 100.0%
Open outputFull run
Anthropicclaude-opus-4-8
Extra-high reasoning
Agent harness2026-07-21
Composite 100.0%Objective 100.0%
Open outputFull run
Anthropicclaude-sonnet-4-6
High reasoning
Agent harness2026-07-21
Composite 100.0%Objective 100.0%
Open outputFull run
Anthropicclaude-sonnet-5
High reasoning
Agent harness2026-07-21
Composite 100.0%Objective 100.0%
Open outputFull run
Anthropicclaude-fable-5
High reasoning
Agent harness2026-07-09
Composite 100.0%Objective 100.0%
Open outputFull run
Zhipuglm-5.2
default reasoning
API single-shot2026-07-17
Composite 100.0%Objective 100.0%
Open outputFull run
Moonshotkimi-k2.7-code
default reasoning
API single-shot2026-07-17
Composite 100.0%Objective 100.0%
Open outputFull run
Moonshotkimi-k3
default reasoning
API single-shot2026-07-17
Composite 100.0%Objective 100.0%
Open outputFull run
OpenAIgpt-5.5
High reasoning
API single-shot2026-07-17
Composite 100.0%Objective 100.0%
Open outputFull run
OpenAIgpt-5.4-mini
High reasoning
API single-shot2026-06-23
Composite 100.0%Objective 100.0%
Open outputFull run
OpenAIgpt-5.6-sol
High reasoning
API single-shot2026-07-09
Composite 100.0%Objective 100.0%
Open outputFull run
OpenAIgpt-5.6-sol
Max reasoning
API single-shot2026-07-09
Composite 100.0%Objective 100.0%
Open outputFull run
OpenAIgpt-5.6-terra
High reasoning
API single-shot2026-07-09
Composite 100.0%Objective 100.0%
Open outputFull run
OpenAIgpt-5.6-luna
High reasoning
API single-shot2026-07-09
Composite 100.0%Objective 100.0%
Open outputFull run
Googlegemini-3.1-pro-preview
High reasoning
API single-shot2026-06-23
Composite 100.0%Objective 100.0%
Open outputFull run
Googlegemini-3.5-flash
default reasoning
API single-shot2026-06-23
Composite 100.0%Objective 100.0%
Open outputFull run
Googlegemini-3.1-flash-lite
default reasoning
API single-shot2026-06-23
Composite 100.0%Objective 100.0%
Open outputFull run
xAIgrok-4.5
High reasoning
API single-shot2026-07-09
Composite 100.0%Objective 100.0%
Open outputFull run
xAIgrok-4.5
Medium reasoning
API single-shot2026-07-09
Composite 100.0%Objective 100.0%
Open outputFull run
xAIgrok-4.5
Low reasoning
API single-shot2026-07-09
Composite 100.0%Objective 100.0%
Open outputFull run
xAIgrok-4.3
default reasoning
API single-shot2026-07-03
Composite 100.0%Objective 100.0%
Open outputFull run
xAIgrok-4.20-reasoning
default reasoning
API single-shot2026-06-25
Composite 100.0%Objective 100.0%
Open outputFull run
xAIgrok-build-0.1
default reasoning
API single-shot2026-06-25
Composite 100.0%Objective 100.0%
Open outputFull run
xAIgrok-composer-2.5-fast
default reasoning
Agent harness2026-06-25
Composite 100.0%Objective 100.0%
Open outputFull run
DeepSeekdeepseek-v4-pro
default reasoning
API single-shot2026-06-25
Composite 100.0%Objective 100.0%
Open outputFull run
DeepSeekdeepseek-v4-flash
default reasoning
API single-shot2026-06-25
Composite 100.0%Objective 100.0%
Open outputFull run
Anthropicclaude-opus-4-8
Low reasoning
Agent harness2026-07-21
Composite 0.0%Objective 0.0%
Open outputFull run
Anthropicclaude-opus-4-8
Medium reasoning
Agent harness2026-07-21
Composite 0.0%Objective 0.0%
Open outputFull run
Anthropicclaude-opus-4-8
Max reasoning
Agent harness2026-07-21
Composite 0.0%Objective 0.0%
Open outputFull run
Anthropicclaude-haiku-4-5
High reasoning
Agent harness2026-07-09
Composite 0.0%Objective 0.0%
Open outputFull run

Product thinking,
design and engineering

An independent product lab, building in Australia.

hello@banja.au
HomeWorkWhat we doThe labStart a conversation
About the labProductsExperimentsJournalWebsites & brand? Norex
© 2026 Banja LabsBuilt together in Australia
PrivacyTermsLinkedIn ↗