Sample

Scalabrio66

Human rating uses the original dataset scale.

DatasetScalabrino
Human3.44
Lines37

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
57.8Δ 17.8
Scalabrino0.5190–1; higher is more readable
51.3Δ 11.3
Dorn0.5130–1; higher is more readable
58.8Δ 18.8
Mi0.0930–1; higher is more readable
33.7Δ 6.3
LLOC13Logical lines; fewer is more readable
53.0Δ 13.1
DeepSeek V4 Pro140–20; mean of three runs
49.2Δ 9.3
GPT-6.1 Sol16.670–20; mean of three runs
45.2Δ 5.3
BTTF0.5880–1; higher is more readable
66.8Δ 26.9
Human3.441–5; original rating
39.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.889.269−29.346
Source linesThe number of non-empty source lines.37+14.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.716−7.074

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

Score0.519

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.140−2.265
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.140+1.454
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.1+0.398
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.061+0.346
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.37−0.274
Indentation frequencyHow rapidly indentation changes from line to line.28+0.231
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.35.887+0.092

Intercept 0.07 + feature contributions = 0.053 (log-odds).
Score = sigmoid(0.053) = 0.513.

Score0.093
Score13
Run 1

The code has good structure with clear sections marked by comments and a logical flow. It uses flat nesting with only one level of indentation in the loop. However, there are several readability issues: multiple actions occur in some lines (e.g., entry removal and map rebuilding), variable names are long but the intent is clear, and the method length is moderate but could be shorter. The inline comments are helpful but some are verbose. The code reads naturally from top to bottom but the conditional logic inside the loop requires careful reading. Action granularity is inconsistent - some statements combine getters with operations. Overall, it's readable but could benefit from extracting the loop body into a helper method and simplifying the conditional branches.

Run 2

The code has clear documentation and logical structure, but suffers from moderate readability issues. The method name and comments clearly convey intent, and actions are mostly one per line. However, there are problems: the loop body contains deeply nested conditional logic, making the flow harder to follow. The comment about 'iter.remove()' is confusing without additional context. The if/else branches contain multiple operations that could be extracted into helper methods for better action granularity. The nested method calls (e.g., 'persistenceContext.getCollectionEntries().remove()') reduce clarity. While the overall structure is organized with good separation between setup and loop logic, the conditional branches create cognitive overhead. The code would benefit from extracting the collection dereferencing and remapping logic into separate, well-named methods.

Run 3

The code is relatively clear but has several readability issues. The structure is logical, with a top-down flow and helpful comments, but the method is somewhat long and packs multiple operations into one block. Nesting is shallow, which is good. Clarity of intent is mostly acceptable due to comments, though some names like 'concurrentEntries' and 'getLoadedPersister' add cognitive load. Code length is moderate but could be shortened with helper methods. Action granularity is mixed: most lines handle one action, but the collection key rebuild and map insertion share a single block, reducing clarity. Reading flow is natural overall, but the inline comment about 'iter.remove()' feels like leftover development noise and disrupts rhythm. Minor formatting inconsistencies (spacing, comment styling) also slightly hurt readability.

Run 1

Code Structure: Logically separates cache clearing from collection-entry processing. Nesting: A single loop with an if/else keeps nesting shallow. Clarity of intent: Descriptive names and comments explain invalidation and mapping reconstruction, but the header promises an Interceptor.postFlush() call that is absent, and 'me' is vague. Code length: Mostly concise, though the obsolete commented-out removal code adds noise. Action granularity: Each statement performs one clear operation, with sensible wrapping for constructor arguments. Reading flow: Processing follows a natural sequence, but inconsistent spacing, a long loop declaration, and awkward wrapping of remove() slightly interrupt readability.

Run 2

Code Structure: Logically organized into cache clearing, collection processing, and mapping reconstruction. Nesting: Only a loop with an if/else, keeping depth manageable. Clarity of intent: Descriptive variable names and explanatory comments make the operations understandable, although the method documentation promises an Interceptor.postFlush() call that is absent, and 'me' is vague. Code length: Mostly concise, but the obsolete commented-out removal and redundant comments add clutter. Action granularity: Each statement performs a distinct action; line wrapping generally preserves clarity. Reading flow: Execution proceeds naturally from invalidation to rebuilding, though inconsistent spacing and a long loop declaration slightly impede scanning.

Run 3

Code Structure: Logically organized into cache clearing and collection-entry rebuilding, with related operations grouped together. Nesting: Only a loop and one if/else create modest, easily followed nesting. Clarity of intent: Descriptive variable names and explanatory comments clarify the cache maintenance, but the documentation promises Interceptor.postFlush(), which is absent, and 'me' is vague. Code length: Appropriately concise overall, though the commented-out removal attempt adds clutter. Action granularity: Each statement performs one primary action; multiline calls remain readable. Reading flow: Execution proceeds naturally from invalidating stale state to processing entries and restoring mappings. Minor formatting inconsistencies, long lines, and an unnecessary blank line slightly interrupt the flow.