Sample

Scalabrio27

Human rating uses the original dataset scale.

DatasetScalabrino
Human3.78
Lines38

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
56.8Δ 2.3
Scalabrino0.8650–1; higher is more readable
91.0Δ 31.9
Dorn0.7080–1; higher is more readable
79.9Δ 20.9
Mi0.0420–1; higher is more readable
20.6Δ 38.4
LLOC17Logical lines; fewer is more readable
35.7Δ 23.4
DeepSeek V4 Pro110–20; mean of three runs
25.6Δ 33.4
GPT-6.1 Sol150–20; mean of three runs
19.6Δ 39.4
BTTF0.5460–1; higher is more readable
55.3Δ 3.8
Human3.781–5; original rating
59.0

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.903.804−29.826
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.781−7.171

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

Score0.865

Feature contributions

FeatureValueContribution
(log-odds)
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.108.947+0.953
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.108.947−0.949
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.1+0.398
Indentation frequencyHow rapidly indentation changes from line to line.31+0.335
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.37−0.274
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.071+0.256
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.36.345+0.098

Intercept 0.07 + feature contributions = 0.887 (log-odds).
Score = sigmoid(0.887) = 0.708.

Score0.042
Score17
Run 1

The code has some redeeming qualities: two clearly separated loops that mirror each other, with comments explaining the JPA spec rationale and a low nesting depth. However, it suffers from a significant structural problem: the field/property access maps appear to be populated in a crossed or counterintuitive manner. In the first loop, when processing fieldAccessMap, it populates propertyAccessMap; in the second, when processing propertyAccessMap, it populates fieldAccessMap. This inverted logic makes the intent ambiguous and requires careful study to understand. Additionally, the code is repetitive—both loops perform nearly identical operations with only type and log message differences—suggesting the logic could be consolidated into a helper method. Inconsistent indentation further detracts from readability. While each line performs a single action and the flow is reasonably natural, the confused access-map semantics and duplicated code lower the overall clarity significantly.

Run 2

The method has a logical two-loop structure, but the intent is muddled by naming inconsistencies and misleading comments. The first loop iterates fieldAccessMap, placing matching entries into propertyAccessMap, but the comment says access is 'explicitly set to AccessType.FIELD' rather than clarifying the mapping direction. The second loop does the reverse, with a comment that says 'return use method access' — an unclear phrase. Nesting is low, which is good, and action granularity is mostly one action per line. However, the code is repetitive and unnecessarily long; both loops could be unified or extracted into a helper. The debug messages mention 'on a field' even when the second loop handles properties, reducing clarity. Overall, the structure is simple, but the ambiguous naming, inconsistent comments, and duplication harm readability.

Run 3

The code has a clear, repetitive structure with two loops that handle field and property access separately. Nesting is flat, and each line mostly performs one action, aiding readability. However, there are issues: inconsistent indentation (mix of tabs/spaces), duplicated logic with only variable names and comments changed, and misleading comments—the second loop's comment says 'return use method access' but the code modifies fieldAccessMap. The intent is understandable but the duplication could be refactored into a helper method. Variable names like 'XProperty' and 'AccessType' are domain-appropriate. Overall, the structure and flow are decent but the duplication and comment/code mismatch reduce clarity.

Run 1

Code Structure: Two parallel loops logically separate field and property access handling, though their duplicated logic could be simplified. Nesting: Shallow nesting and early continue statements keep control flow manageable. Clarity of intent: Descriptive names and specification references help, but inserting field-access properties into propertyAccessMap and vice versa is counterintuitive without further explanation. The debug messages also appear inconsistent with their branches, and one comment contains a typo. Code length: Reasonably concise, although repeated annotation handling and lengthy comments add bulk. Action granularity: Each statement performs a single clear action. Reading flow: The mirrored loops are easy to follow, but inconsistent indentation and spacing interrupt visual consistency.

Run 2

Code Structure: Two parallel loops logically separate field and property access handling, though duplicated logic and cross-map updates complicate understanding. Nesting: Shallow nesting and early continue statements keep control flow straightforward. Clarity of intent: Descriptive names and specification references explain the purpose, but inserting field-access properties into propertyAccessMap and vice versa is counterintuitive without further explanation. The second log message refers to a field despite processing property access, and comments contain awkward wording. Code length: Reasonably concise, although repeated annotation handling and lengthy comments add redundancy. Action granularity: Each statement performs one clear action. Reading flow: Both loops follow a predictable sequence, but inconsistent indentation and spacing interrupt visual consistency.

Run 3

Code Structure: Two parallel loops logically separate field and property handling, but duplicate much of their logic. Nesting: Shallow nesting and early continue statements keep control flow simple. Clarity of intent: Descriptive names and specification references explain the purpose, although inserting field-access properties into propertyAccessMap and vice versa is counterintuitive without further explanation. The second log message refers to a field despite processing property access, and a comment contains awkward wording. Code length: Reasonably concise, though repeated logic and lengthy comments add overhead. Action granularity: Each statement performs a single action, making operations easy to follow. Reading flow: The consistent processing sequence is natural, but inconsistent indentation and spacing interrupt visual continuity.