Sample

Scalabrio121

Human rating uses the original dataset scale.

DatasetScalabrino
Human3.33
Lines42

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
15.1Δ 19.8
Scalabrino0.7590–1; higher is more readable
79.9Δ 45.0
Dorn0.6570–1; higher is more readable
73.4Δ 38.4
Mi0.2560–1; higher is more readable
53.3Δ 18.3
LLOC28Logical lines; fewer is more readable
7.8Δ 27.1
DeepSeek V4 Pro12.330–20; mean of three runs
33.4Δ 1.5
GPT-6.1 Sol15.670–20; mean of three runs
27.1Δ 7.8
BTTF0.4740–1; higher is more readable
31.2Δ 3.8
Human3.331–5; original rating
34.9

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.1561.92−51.543
Source linesThe number of non-empty source lines.42+16.8
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.211−6.317

Intercept 8.87 + feature contributions = -32.19 (log-odds).
Score = sigmoid(-32.19) = 0.

Score0.759

Feature contributions

FeatureValueContribution
(log-odds)
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.72.952+0.575
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.42−0.451
Indentation frequencyHow rapidly indentation changes from line to line.33+0.404
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.34−0.359
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.66.143+0.263
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.40.581+0.157
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.098−0.008

Intercept 0.07 + feature contributions = 0.651 (log-odds).
Score = sigmoid(0.651) = 0.657.

Score0.256
Score28
Run 1

The code is moderately readable but has notable issues. The structure is logical, with a clear Javadoc and two sequential loops, but duplication between the loops adds unnecessary length. Nesting is shallow, which is good, but the repeated `if` checks and casts slightly reduce clarity. The intent is partially clear—painting clarifiers for different offender sources—but the distinction between `getOwner()` and `this` is not explained in comments, leaving the purpose ambiguous. Action granularity is mostly one action per line, aiding readability. However, the reading flow is disrupted by duplicated logic and the redundant `icon != null` check placed after `instanceof` processing. Overall, the code is understandable but could be improved by extracting a helper method for the common loop body, clarifying the two offender lists, and removing or restructuring the null checks.

Run 2

The code has a clear top-level purpose and decent comments, but it suffers from significant duplication: two nearly identical loops over different offender lists. This makes the method unnecessarily long and harder to maintain. The repeated type checks, casts, and null checks inside both loops obscure the core intent. Nesting is relatively flat, which is good, and reading flow is natural, but action granularity is inconsistent—multiple related actions (setting fig, setting todo item, painting) are grouped inside a single conditional. The duplication could be extracted into a helper method to improve structure and reduce length. Variable names are reasonable, but the use of raw Vector and manual index loops adds noise. Overall, the logic is understandable for someone familiar with the domain, but the redundant structure and verbose casting lower readability.

Run 3

The code has a clear purpose and helpful documentation, but readability suffers from several issues. Structure is moderately organized, though the method performs dual responsibilities: retrieving items from two different sources and painting icons. The duplicate loops could be extracted into a helper method to reduce code length. Nesting is shallow, which is good. Intent is clear, but action granularity is mixed—some lines perform multiple actions (e.g., casting and method calls). Reading flow is interrupted by magic numbers like -10 and inconsistent null checks. Type safety could improve with generics. Overall, functional but verbose and repetitive.

Run 1

Code Structure: Logically organized into setup and two rendering passes, but the nearly identical loops should share a helper. Nesting: Shallow loop-and-conditional nesting is easy to follow. Clarity of intent: The method name, documentation, and descriptive variables clearly convey the rendering purpose, though the distinction between owner-related and figure-related items could be explained more directly. Code length: Reasonable overall, but duplicated rendering logic adds unnecessary length. Action granularity: Each statement performs a single clear action; repeated casts introduce minor visual clutter. Reading flow: Execution proceeds naturally from retrieving items to configuring and painting icons, with straightforward null handling. Reassigning items and size between passes slightly weakens the separation of the two groups.

Run 2

Code Structure: Logically organized into initialization and two rendering passes, but duplicated loop bodies would benefit from a shared helper. Nesting: Shallow and manageable, with conditionals inside each loop. Clarity of intent: The method name, documentation, and descriptive variables clearly convey its purpose; the distinction between owner-related and figure-related items could be explained more directly. Code length: Reasonable overall, though repetition unnecessarily increases length. Action granularity: Each statement performs a single clear action, making updates and rendering easy to follow. Reading flow: Initialization, clarifier configuration, rendering, and position updates follow a natural sequence. Reassigned collection variables, raw Vector usage, and repeated casts introduce minor reading friction.

Run 3

Code Structure: Logically organized into setup and two rendering loops, but duplicated loop bodies would be clearer as a shared helper. Nesting: Shallow, with simple conditionals inside each loop. Clarity of intent: The method name, documentation, and variable names clearly convey icon rendering, though the distinction between owner-related and figure-related items could be explained better. Code length: Reasonably short, but duplication adds unnecessary length. Action granularity: Each statement performs a single action; repeated casts slightly clutter the operations. Reading flow: Initialization, item lookup, clarifier configuration, and painting follow a natural sequence. Reusing items and size for the second loop introduces a minor tracking burden. Raw Vector usage and explicit casts reduce readability compared with typed collections.