# Original Python unit-test fixture

## Origin and license

Original code drafted in this Pareto coding-agent session on 2026-10-27.
No external dataset or copied third-party source was used. Code, seeded bug
patches and labels are released under MIT; the complete grant is LICENSE.txt.
The modules were unpublished before scoring. Familiar algorithms may resemble
training examples; novelty is not a contamination guarantee.

## Labels and generator

Generator: Pareto coding agent (underlying selected models are not exposed).
Bug intentions and clean behavior contracts were authored together before any
test-generation API call. Each module has four single-location seeded patches.
The page disclosure is "labels set by the generator, spot-checked by us";
"us" means automated checks by this build session, not human annotation.
Human spot-check and independent semantic review are still pending.
No second human labeler or human agreement statistic is claimed.

## Splits and execution unit

Fifteen test modules, four bugs per module: sixty test items.
Five separate dev modules, four bugs per module: twenty dev items.
Each module is 51 to 71 lines including documentation and whitespace.
Modules cover intervals, ledgers, sequences, escaped fields, calendar arithmetic,
inventory, ranks, paths, run lengths, quotas, binary searches, rolling numbers,
graphs, versions and sparse vectors. Dev topics are separate.
Each bug receives a fresh test-generation call showing only the clean module.
Bug patches, labels and mutmut sources are never sent in the prompt.
Thus each run has sixty generated suites, not fifteen shared suites. This
avoids assigning independent receipt IDs or duplicated token counts to one call.
Per-bug binary scores use median over three repeats, exactly equivalent to
majority for an odd number of binary outcomes, then sum as bugs caught.
Bugs within a module are correlated; the later per-bug comparison interval
must not be read as evidence of generalization to independent repositories.

## Frozen secondary set

mutmut 3.8.0 generated mutations through create_mutations and LibCST deep_replace.
A deterministic evenly spaced subset of twelve mutations per module was frozen
before inference: 180 test mutants and 60 dev mutants. The subset includes
possibly equivalent mutants; mutation score is not an exhaustive mutmut run.
Tests execute with stdlib unittest inside macOS sandbox-exec, not the mutmut
CLI. No network, child processes or host writes are permitted by the sandbox.
Line and branch-destination coverage use the published stdlib trace checker,
not coverage.py; branch destinations omit terminal exits. These are bounded
secondary diagnostics, not conventional full branch-coverage claims.
Empty, invalid, skipped or clean-failing suites catch no seeded bugs or mutants.
No tests are deleted or repaired after generation. The AST admissibility filter
is an additional restriction, not the security boundary; sandbox-exec is.

## Pre-freeze checks

Known-good interval suite tested repeatedly and inside the sandbox. Empty,
syntax-invalid, clean-failing and file-writing suites tested as negative controls.
All module and mutant sources compile and differ from their clean counterparts.
Before the final prompt freeze, twelve Pareto dev responses covered the first
four dev_strings items across three repeats. Wrong expected strings, incorrect
argument counts and incompatible test guards remained failures. Only the prompt
was revised from those dev observations; no test-suite repair or fixture change
followed. The final prompt was committed before any scored test request.
Exact freeze hashes live in eval.json; scored output lives in the receipt.

An earlier scored attempt stopped after a process timeout and an interrupted
continuation, leaving 59 responses. Its manifest named a freeze commit whose
published eval.json did not match the run, so that incomplete attempt is not
used as evidence. The current complete inputs were already committed before the
replacement run. All scored requests were rerun cleanly from that commit,
without changing the prompt, fixture or checker after seeing test outputs.
Earlier dev and abandoned test usage is excluded from the published run totals;
in-flight requests killed by the harness may add unrecorded usage.
A later receipt command accidentally omitted --rescore and began another
Pareto generation. It was stopped after 29 saved responses (176114 recorded
tokens); none of those responses enter this receipt. The complete replacement
run was then published using --rescore with --write-receipt --pending.

The scored response usage sometimes exceeds the requested max_tokens ceiling.
The receipt preserves the API-reported usage and finish reasons unchanged;
empty tool objects count as failed suites, even when finish_reason is tool_calls.
The provider-reported truncation count is not an assertion that every other
response was complete.

The scored transport is Python urllib, not the OpenAI SDK. MODEL and BASE_URL
in recipe.py document defaults; the shared runner selects the transport identity
for each arm. No SDK-specific execution evidence is claimed.
