Sample
Scalabrio66
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 57.8Δ 17.8 |
| Scalabrino | 0.519 | 0–1; higher is more readable | 51.3Δ 11.3 |
| Dorn | 0.513 | 0–1; higher is more readable | 58.8Δ 18.8 |
| Mi | 0.093 | 0–1; higher is more readable | 33.7Δ 6.3 |
| LLOC | 13 | Logical lines; fewer is more readable | 53.0Δ 13.1 |
| DeepSeek V4 Pro | 14 | 0–20; mean of three runs | 49.2Δ 9.3 |
| GPT-6.1 Sol | 16.67 | 0–20; mean of three runs | 45.2Δ 5.3 |
| BTTF | 0.588 | 0–1; higher is more readable | 66.8Δ 26.9 |
| Human | 3.44 | 1–5; original rating | 39.9 |
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. | 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.
| Score | 0.519 |
|---|
Feature contributions
| Feature | Value | Contribution (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.
| Score | 0.093 |
|---|
| Score | 13 |
|---|
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.