Repository navigation
Behavioral coverage in reports, lint/format/3.13 in CI, second runs in the paper - #22
Merged
Merged
Conversation
Each configuration (inflection and TinyDB, MiniMax Flash and M3) was run a second time. The paper now reports both runs (new Section 5.5 and Table 3) instead of one run per configuration; all second runs met the three MVP targets again. In the second run of inflection with M3, Code2Test kept one test as an expected failure, and it exposes a real defect: inflection 0.5.1 singularizes "campuses" to "campuse" (and viruses, bonuses, censuses the same way). The paper describes it, Listing 1 now shows this real test instead of an illustrative one, and the abstract, RQ1, threats and conclusion are updated. The paper no longer claims both libraries are correct. - research/data/second-runs/: the four runs (tests, intents, metrics, benchmark output, verify logs), with a README on how they were made. - collect_results.py takes an optional second runs directory; macros for second runs carry a "Second" tag; results.csv gains a `run` column. The first runs' data regenerates byte-identically. - run_experiments.sh runs every configuration twice. - README results mention the second runs and the defect. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VGBhCd3VqGRk2KLZg1Tqu2
`code2test report coverage` (until now "not implemented") and the `code2test test --report html|json` output report test quality per component: - behaviors tested: the distinct behaviors that the component's passing tests check, as stated for each generated test, next to its intent; - mutants killed: the share of injected bugs in the component that the generated suite catches; - diagnostic accuracy, overall and per expected cause. The last two come from the most recent `code2test benchmark` run, which now records mutants run and caught per component and when it ran. The report says when that run predates the current tests, and how to get the numbers when no benchmark has run. `--format html|json` writes to tests/reports/coverage.*; text prints a table. is_xfail/passing_count move from the generator to core/models so the report can use them without importing the agents. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VGBhCd3VqGRk2KLZg1Tqu2
pyproject selects ruff's error rules explicitly (E4, E7, E9, F) so CI does not change with ruff releases, pins ruff to 0.17.x, and drops black, which ruff format replaces. Fixes: unused imports and f-strings without placeholders (ruff --fix), unused variables (display labels that were never shown, counters never read, an unused path), bare `except:` -> `except Exception:`, an ambiguous variable name, a lambda assignment, and CLI command imports moved to the top of cli/main.py. No behavior changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VGBhCd3VqGRk2KLZg1Tqu2
Mechanical: `ruff format code2test tests research/scripts`. Checked before committing: every file's AST is unchanged apart from docstrings, and every command's --help output is identical. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VGBhCd3VqGRk2KLZg1Tqu2
A lint job runs `ruff check` and `ruff format --check` on code2test, tests and research/scripts with the pinned ruff 0.17.x; the test job runs on Python 3.12 and 3.13 (fail-fast off). README and docs/task.md describe the checks; pyproject lists Python 3.13. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VGBhCd3VqGRk2KLZg1Tqu2
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
This was referenced Oct 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #13 and #15, and adds the second experiment runs to the paper.
#15: behavioral coverage and diagnostic accuracy in reports
code2test report coverage(previously "not implemented") and thecode2test test --report html|jsonoutput now report test quality per component:benchmark.jsonnow records mutants per component and when the benchmark ran.code2test benchmark.The report says when that benchmark predates the current tests, and how to get the numbers when none has run.
--format html|jsonwritestests/reports/coverage.*. The Intent Alignment Score from the proposal is not implemented; it needs semantic similarity, and is listed indocs/task.md.#13: CI matrix, lint, format check
ruff checkandruff format --check.ruff format.ruff format(separate commit). Each reformatted file's AST is unchanged apart from docstrings, and every command's--helpoutput is identical.Paper: second runs and the campus defect
research/data/second-runs/.Test plan
pytest: 117 passed with pydantic-ai 2.31.1 and with 1.0.6 (Python 3.13 locally; CI adds 3.12).ruff checkandruff format --checkclean.code2test report coveragechecked on a real generated suite (text, JSON, HTML) and after a fresh benchmark (per-component mutants).🤖 Generated with Claude Code
https://claude.ai/code/session_01VGBhCd3VqGRk2KLZg1Tqu2
Generated by Claude Code