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

Roman numeral conversion both ways

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-0004
Domain
Programming
Difficulty
easy

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 two Python functions that convert between integers and Roman numerals, using canonical (subtractive) notation. - `int_to_roman(n)`: convert an integer in the range 1..3999 inclusive to its canonical Roman numeral string. Use subtractive forms: 4 is "IV", 9 is "IX", 40 is "XL", 90 is "XC", 400 is "CD", 900 is "CM". Raise `ValueError` for any integer outside 1..3999. - `roman_to_int(s)`: convert a canonical Roman numeral string back to its integer value. Raise `ValueError` for an empty string or a malformed or non-canonical numeral (for example "IIII", "VX", or "ABC"). The two functions are inverses on 1..3999: `roman_to_int(int_to_roman(n)) == n`. 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-opus-4-8
Max 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-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 ↗