E15 · Schnappinger/junit4/junit.framework.TestCase

Full sample results

Scores

MethodScoreScaleDataset rank
(0–100)
GPT-6.1 Sol160–20; mean of three runs
38.9Δ 41.4
DeepSeek V4 Pro160–20; mean of three runs
47.4Δ 33.0
BTTF0.7020–1; higher is more readable
81.8Δ 1.5
Human3.961–4; original rating
80.4

Loading feature diagnosis…

Source code

GPT-6.1 Sol explanations

Run 1 · 16/20

Code Structure: Methods are logically grouped, with execution logic separated from assertion wrappers, though fixture hooks and accessors are distant from the core lifecycle.

Nesting: Most methods are flat; runBare has moderately nested exception handling that requires careful reading.

Clarity of intent: Descriptive method names and extensive documentation make the purpose clear, but reflection, the legacy fName convention, and implicit control flow through fail slightly obscure details.

Code length: Individual methods are concise, but numerous repetitive assertion wrappers and comments substantially inflate the class.

Action granularity: Statements generally perform one action per line; inline unbraced conditionals in runBare reduce consistency.

Reading flow: Formatting and predictable overload patterns support scanning, but the large assertion block interrupts the lifecycle narrative and increases navigation effort.

Run 2 · 16/20

Code Structure: Methods are logically grouped into construction, execution, assertions, and fixture utilities, with consistent formatting.

Nesting: Most methods are flat; runBare has moderately nested exception handling that requires closer attention.

Clarity of intent: Descriptive method names and extensive documentation explain the test lifecycle, though reflection, legacy naming such as fName, and reliance on fail throwing exceptions add cognitive overhead.

Code length: Individual methods are concise, but numerous assertion wrappers and repetitive comments substantially inflate the class.

Action granularity: Statements generally perform one action per line; a few inline conditionals compress control flow.

Reading flow: Execution methods follow a natural sequence, but the large assertion block separates lifecycle execution from setup and teardown hooks, making navigation less convenient.

Run 3 · 16/20

Code Structure: Methods are logically grouped into construction, execution, assertions, and fixture utilities, with well-defined responsibilities.

Nesting: Mostly flat; runBare introduces moderate nested exception handling that requires careful reading.

Clarity of intent: Descriptive method names and extensive documentation explain behavior, although fName and reflective invocation are less immediately clear.

Code length: Individual methods are concise, but numerous repetitive assertion wrappers and comments make the class lengthy and obscure its core lifecycle logic.

Action granularity: Almost every statement occupies its own line; inline conditional assignments and throws slightly reduce consistency.

Reading flow: Execution methods follow a natural sequence, and formatting is consistent, but the large assertion block separates execution from setup and teardown hooks. Some documentation examples are incomplete, further weakening clarity.

BTTF feature contributions

Score 0.702 / 1