Sample
Scalabrio177
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 0.5Δ 11.3 |
| Scalabrino | 0.017 | 0–1; higher is more readable | 0.0Δ 11.8 |
| Dorn | 0.244 | 0–1; higher is more readable | 30.7Δ 18.8 |
| Mi | 0.304 | 0–1; higher is more readable | 57.8Δ 46.0 |
| LLOC | 37 | Logical lines; fewer is more readable | 0.0Δ 11.8 |
| DeepSeek V4 Pro | 14 | 0–20; mean of three runs | 49.2Δ 37.4 |
| GPT-6.1 Sol | 17 | 0–20; mean of three runs | 58.5Δ 46.7 |
| BTTF | 0.35 | 0–1; higher is more readable | 6.0Δ 5.8 |
| Human | 2.89 | 1–5; original rating | 11.8 |
Views
Select the downloaded ZIP or its extracted folder. Files stay in your browser.
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 2959.236 | −97.655 |
| Source linesThe number of non-empty source lines. | 40 | +16 |
| Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value. | 4.889 | −7.334 |
Intercept 8.87 + feature contributions = -80.118 (log-odds).
Score = sigmoid(-80.118) = 0.
| Score | 0.017 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 1 | +1.001 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 0 | −0.804 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 1 | −0.703 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.158 | −0.592 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 40 | −0.497 |
| Identifier layout (horizontal)How rapidly the visual pattern of identifier characters changes from left to right. It measures spatial frequency, not the meaning of the names. | 79.9 | +0.281 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 37.358 | +0.112 |
Intercept 0.07 + feature contributions = -1.132 (log-odds).
Score = sigmoid(-1.132) = 0.244.
| Score | 0.304 |
|---|
| Score | 37 |
|---|
Run 1
The code is structured logically with a clear test flow: setup, annotation assertions, then detailed attribute verification. It is flat with no nesting, which aids readability. Intent is clear—testing ORM mapping overrides—and each assertion typically occupies one line, aligning with action granularity. However, the method is lengthy due to numerous repetitive assertions, which reduces conciseness. The reading flow is natural but somewhat monotonous. Variable names like 'overridesAnno' and 'overrides' are descriptive, but the sheer volume of similar assertions makes scanning harder. Overall, readable but would benefit from helper methods or data-driven testing to reduce repetition.
Run 2
The code has a clear, linear structure and each assertion is on its own line, which aids readability. It is not deeply nested and the intent is straightforward: verifying annotation overrides. However, it is unnecessarily long due to repetitive assertions that could be grouped or refactored. The repeated `overrides[0].column()` and `overrides[1].column()` calls create visual noise and reduce clarity. The reading flow is natural but becomes monotonous. Overall, it is readable but verbose, with room for improvement in conciseness and abstraction.
Run 3
The code is a straightforward unit test with clear intent and logical structure, following a setup-assert-verify pattern. Nesting is minimal, and each line generally contains one assertion. However, readability is impacted by repetitive, verbose assertions on deeply nested properties (e.g., overrides[0].column().name()), which lengthens the code and reduces scanning efficiency. While the sequence is predictable, the granularity of assertions makes it harder to see the test's overall purpose at a glance. Some minor inconsistencies in spacing and line breaks (e.g., the reader assignment and annotation retrieval) slightly disrupt the reading flow.
Run 1
Code Structure: Logically ordered into setup, annotation checks, and verification of two overrides, though blank lines would better separate these phases. Nesting: Completely flat, making execution easy to follow. Clarity of intent: The descriptive test name and explicit assertions clearly communicate the expected behavior; numeric array indices slightly weaken identification of each override. Code length: Reasonable for comprehensive verification, but repeated column access and parallel assertion blocks add verbosity. Action granularity: Each statement performs one clear action, with one assertion per line. Reading flow: Consistent assertion ordering makes the two override configurations easy to compare, although the uninterrupted block and split annotation lookup mildly hinder scanning.
Run 2
Code Structure: Logically organized into setup, annotation checks, and validation of two overrides, though blank lines would better separate these phases. Nesting: Completely flat, making execution easy to follow. Clarity of intent: The descriptive test name and explicit assertions clearly communicate the expected behavior; indexed overrides and repeated column access add minor cognitive overhead. Code length: Somewhat lengthy and repetitive, but most assertions serve distinct validation purposes. Action granularity: Each statement performs one clear action, with no compressed multi-action lines. Reading flow: Assertions proceed naturally from annotation presence to override count and individual properties, using the same property order for both overrides. Repeated expressions and the awkwardly wrapped annotation retrieval slightly interrupt an otherwise straightforward flow.
Run 3
Code Structure: Logically organized into setup, annotation checks, and assertions for each override, though blank lines would better distinguish these sections. Nesting: Completely flat, making execution easy to follow. Clarity of intent: The descriptive test name and explicit assertions clearly communicate the behavior being verified; repeated indexed access is slightly less expressive than named local variables. Code length: Reasonable for thorough validation, but repeated column access and similar assertion sequences add verbosity. Action granularity: Each statement performs one clear action, with no compressed multi-action lines. Reading flow: Follows a natural setup-to-verification progression, and both overrides are checked in a consistent order. The dense assertion block and awkwardly wrapped annotation retrieval slightly reduce scanability.