Sample

Scalabrio186

Human rating uses the original dataset scale.

DatasetScalabrino
Human3.56
Lines38

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
49.2Δ 3.8
Scalabrino0.2640–1; higher is more readable
23.1Δ 22.4
Dorn0.2850–1; higher is more readable
36.7Δ 8.8
Mi0.5160–1; higher is more readable
76.9Δ 31.4
LLOC12Logical lines; fewer is more readable
57.3Δ 11.8
DeepSeek V4 Pro140–20; mean of three runs
49.2Δ 3.8
GPT-6.1 Sol16.670–20; mean of three runs
45.2Δ 0.3
BTTF0.4990–1; higher is more readable
38.2Δ 7.3
Human3.561–5; original rating
45.5

Views

Download official ZIP ↗

Select the downloaded ZIP or its extracted folder. Files stay in your browser.

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(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.

Score0.264

Feature contributions

FeatureValueContribution
(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.

Score0.516
Score12
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.