ベンチマーク · coding
Commit-0
Commit-0 は、仕様だけを与えられたコーディングエージェントが Python ライブラリ全体をゼロから実装できるかを測る。仕様とは docstring 付きの関数・クラスのシグネチャと、隠された単体テスト一式である。主要指標は合格した単体テストの割合。
詳しく見る
- 例
- 実在する Python ライブラリの骨組みが与えられる。各モジュール・クラス・関数は docstring 付きの型付きスタブとして存在するが本体は空で、それらをすべて実装してライブラリ自身のテスト一式を全通過させる(例:小さなライブラリのパース・シリアライズ・ユーティリティ関数を docstring から埋める)。
- 採点方法
- スコアは単体テストの合格率。各ライブラリの pytest 一式を隔離環境で実行し、ライブラリの得点は合格テストの割合で、ベンチマークの 54 ライブラリにわたって集計される。構成によってはコードが lint と型チェックも通す必要がある。
- 検証方法
- 結果は、再現可能な Docker コンテナ内で隠しテスト一式を実行して認定される。pytest が判定基準であり、テストは実際に合格したときだけ計上され、参照出力との照合は行わない。エージェント実行はテストや lint のフィードバックで反復できるが、最終採点はクリーンな checkout から一式を再実行する。
- 重要な理由
- 単一関数や単一ファイルの生成(HumanEval、SWE-bench)を超え、仕様からライブラリ全体を合成する段階へ進み、長期的な計画、モジュール間の整合性、実際の API 契約を満たす能力を試す——本物のソフトウェア出荷にはるかに近い。
解説付きの例
課題
ライブラリの骨組みの中にある一つの関数スタブ。隠しテストが通るように実装する:
```python
def parse_version(text: str) -> tuple[int, int, int]:
"""Parse a semantic version 'MAJOR.MINOR.PATCH' into a tuple of ints.
Raises ValueError if text is not three dot-separated integers.
"""
raise NotImplementedError
```
解答
```python
def parse_version(text: str) -> tuple[int, int, int]:
parts = text.split(".")
if len(parts) != 3:
raise ValueError(f"invalid version: {text!r}")
major, minor, patch = (int(p) for p in parts)
return (major, minor, patch)
```
解説
本体は docstring の契約を守る:「.」で分割し、ちょうど三つの部分でないものは ValueError で拒否し、各部分を int に変換する。採点はサンドボックスでライブラリの隠し pytest 一式を実行し、この項目は parse_version に関するすべてのアサーションが成り立つときにのみ合格する。
このベンチマークの検証済みスコアはまだありません。