Benchmark · coding

Commit-0

0 résultats 0 modèles

Commit-0 mesure si un agent de programmation peut implémenter une bibliothèque Python entière depuis zéro, à partir de sa seule spécification — les signatures de fonctions et de classes avec docstrings, plus une suite de tests unitaires cachée. La métrique principale est la fraction de tests unitaires réussis.

En savoir plus
Exemple
On fournit le squelette d'une vraie bibliothèque Python : chaque module, classe et fonction est présent sous forme de stub typé avec docstring mais au corps vide ; il faut tous les implémenter pour que la propre suite de tests de la bibliothèque passe au vert (par exemple, compléter les fonctions d'analyse, de sérialisation et utilitaires d'une petite bibliothèque à partir de leurs docstrings).
Notation
Le score est le taux de tests unitaires réussis : la suite pytest de chaque bibliothèque s'exécute dans un environnement isolé et la bibliothèque obtient la fraction de tests réussis, agrégée sur les 54 bibliothèques du benchmark. Certaines configurations exigent aussi que le code passe les vérifications de lint et de types.
Vérification
Un résultat est accepté en exécutant la suite de tests cachée dans un conteneur Docker reproductible — pytest fait office d'oracle, donc un test ne compte que lorsqu'il réussit réellement, sans comparaison à une sortie de référence. Les exécutions avec agent peuvent itérer sur le retour des tests et du lint, mais la notation finale relance la suite depuis un checkout propre.
Pourquoi c'est important
Il dépasse la génération d'une fonction ou d'un seul fichier (HumanEval, SWE-bench) pour aller vers la synthèse d'une bibliothèque entière à partir d'une spécification, sondant la planification à long terme, la cohérence entre modules et la capacité à honorer un vrai contrat d'API — bien plus proche de la livraison de logiciels réels.
Exemple résolu
Tâche
Le stub d'une fonction au sein du squelette d'une bibliothèque, à implémenter pour que ses tests cachés passent : ```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 ```
Solution
```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)
```
Explication
Le corps respecte le contrat du docstring : il découpe sur «.», rejette avec une ValueError tout ce qui n'a pas exactement trois parties, et convertit chaque partie en int. La notation exécute la suite pytest cachée de la bibliothèque dans le bac à sable, et cet item ne passe que lorsque toutes les assertions concernant parse_version tiennent.

Aucun score vérifié pour ce benchmark à ce jour.