Sample
Scalabrio186
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 49.2Δ 3.8 |
| Scalabrino | 0.264 | 0–1; higher is more readable | 23.1Δ 22.4 |
| Dorn | 0.285 | 0–1; higher is more readable | 36.7Δ 8.8 |
| Mi | 0.516 | 0–1; higher is more readable | 76.9Δ 31.4 |
| LLOC | 12 | Logical lines; fewer is more readable | 57.3Δ 11.8 |
| DeepSeek V4 Pro | 14 | 0–20; mean of three runs | 49.2Δ 3.8 |
| GPT-6.1 Sol | 16.67 | 0–20; mean of three runs | 45.2Δ 0.3 |
| BTTF | 0.499 | 0–1; higher is more readable | 38.2Δ 7.3 |
| Human | 3.56 | 1–5; original rating | 45.5 |
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. | 956.443 | −31.563 |
| Source linesThe number of non-empty source lines. | 38 | +15.2 |
| 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.956 | −7.434 |
Intercept 8.87 + feature contributions = -14.927 (log-odds).
Score = sigmoid(-14.927) = 0.
| Score | 0.264 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| 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. | 38 | +0.577 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 38 | −0.451 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 38 | −0.309 |
| 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. | 88.974 | −0.103 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 36.478 | +0.1 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.097 | +0.001 |
Intercept 0.07 + feature contributions = -0.92 (log-odds).
Score = sigmoid(-0.92) = 0.285.
| Score | 0.516 |
|---|
| Score | 12 |
|---|
Run 1
The code is logically organized and follows a consistent pattern, but has several readability issues. It is moderately flat with no deep nesting, and each action is on its own line, which is good. However, the extremely long class and variable names make the code visually heavy and hard to scan. The test method name 'testHistoryOfIng2' is somewhat ambiguous about what specific behavior it verifies. While the sequence of assertions clearly shows the expected history for the entity, the repetitive nature of the retrieval calls and the verbose naming reduce overall readability. The reading flow is natural—retrieve entities, then assert—but the code could benefit from extracting reusable retrieval logic or using more concise naming. Overall, it is readable in structure but suffers from verbosity and naming complexity.
Run 2
The code has a clear, linear structure with good intent - it retrieves an entity and four historical revisions, then asserts expected reference counts. However, readability is reduced by several factors: the long class names create visual noise and force awkward line wrapping, making the method signature and entity lookups harder to scan. While nesting is essentially flat (a positive), the repeated entity retrieval blocks could be consolidated into a loop or helper method to reduce duplication. The assertions are clear but could benefit from explanatory comments about why certain revisions have specific reference counts. Action granularity is generally good, with one logical operation per line, but the multi-line method calls break visual flow. The overall reading experience is mechanical and repetitive rather than naturally flowing, though the logical organization prevents it from being genuinely confusing.
Run 3
The code is generally readable with a clear, linear structure and natural flow. It retrieves an entity and four audit revisions, then asserts on each revision's references. Nesting is flat, and each line contains a single action, improving clarity. However, readability is hindered by extremely long class names, repeated identical method calls, and verbose line breaks that make visual scanning slower. The intent is clear but could be improved with extraction of repeated retrieval logic or local variables for assertions. Some minor inconsistencies exist, such as unusual spacing in assertions (e.g., 'assertEquals( rev1.getReferences().size(), 0 )'), and missing newlines between logical blocks. Overall, it is test code that is understandable but somewhat verbose.
Run 1
Code Structure: Logically separates entity retrieval, revision retrieval, and assertions, with whitespace grouping related checks. Nesting: Flat execution with no nested control flow makes it easy to follow. Clarity of intent: Clearly tests reference history across four revisions, though abbreviated names such as ing2 and ed2 and very long entity class names obscure domain meaning. Code length: Repeated revision lookups add verbosity, but explicit assertions keep each revision's expected state visible. Action granularity: Each statement performs one main action; multiline lookup arguments are consistently formatted. Reading flow: Proceeds naturally from setup to chronological verification. However, assertEquals places actual values before expected values, contrary to common JUnit conventions, which can confuse interpretation and failure messages.
Run 2
Code Structure: Retrieval and assertions are logically separated, with assertions grouped by revision. Nesting: The method is flat, with no nested control flow. Clarity of intent: The test clearly checks reference history across four revisions, although abbreviated names such as ing2 and ed2 and very long entity class names make the domain harder to understand. Code length: Repeated revision lookups add verbosity, but keeping each explicit makes the test easy to inspect. Action granularity: Each statement performs one lookup or assertion; multiline arguments remain consistently formatted. Reading flow: The sequence progresses naturally from setup through chronological revision checks, with blank lines reinforcing the grouping. Overall, the code is readable, with minor friction from lengthy types and abbreviated identifiers.
Run 3
Code Structure: Clearly separates entity retrieval, revision loading, and assertions, with whitespace grouping related checks. Nesting: Flat method body with no nested control flow. Clarity of intent: Revision variables and assertions clearly describe historical reference changes, although abbreviated names such as ing2 and ed2 and very long entity type names make the domain harder to understand. Code length: Reasonably short, but four nearly identical audit lookups add repetition and visual bulk. Action granularity: Each statement performs one main action; multiline calls keep arguments distinct. Reading flow: Revisions are loaded and checked chronologically, making the test easy to follow. However, assertEquals places actual values before expected values, contrary to common JUnit conventions, which slightly reduces clarity.