Sample
Scalabrio46
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 33.7Δ 1.3 |
| Scalabrino | 0.23 | 0–1; higher is more readable | 19.6Δ 15.3 |
| Dorn | 0.727 | 0–1; higher is more readable | 81.9Δ 47.0 |
| Mi | 0.529 | 0–1; higher is more readable | 77.4Δ 42.5 |
| LLOC | 22 | Logical lines; fewer is more readable | 19.3Δ 15.6 |
| DeepSeek V4 Pro | 7 | 0–20; mean of three runs | 7.8Δ 27.1 |
| GPT-6.1 Sol | 13.67 | 0–20; mean of three runs | 7.5Δ 27.4 |
| BTTF | 0.442 | 0–1; higher is more readable | 21.1Δ 13.8 |
| Human | 3.33 | 1–5; original rating | 34.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. | 1107.481 | −36.547 |
| Source linesThe number of non-empty source lines. | 29 | +11.6 |
| 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.328 | −6.492 |
Intercept 8.87 + feature contributions = -22.569 (log-odds).
Score = sigmoid(-22.569) = 0.
| Score | 0.23 |
|---|
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. | 63.931 | +0.957 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.125 | −0.273 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 28 | +0.231 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 64 | +0.228 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 28 | −0.222 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 27.846 | −0.021 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 29 | +0.01 |
Intercept 0.07 + feature contributions = 0.982 (log-odds).
Score = sigmoid(0.982) = 0.727.
| Score | 0.529 |
|---|
| Score | 22 |
|---|
Run 1
The code has several readability issues. Structure is weak: unused variables (vector 'items' is redundantly stored), inconsistent indentation, and an unclear comment with a question mark. Nesting is moderately deep with three levels inside the while loop. Clarity of intent is low—variable names like 'tde', 'nItems', and 'elems' are cryptic, and the purpose of 'path' is not immediately obvious. Code length is verbose for what it does: comparing each item's poster against each poster in a list could be simplified. Action granularity is mostly reasonable but some lines contain multiple operations. Reading flow is disrupted by the unnecessary 'continue' and the lack of logical separation between the search loop and the tree update. Overall, the method is functional but hard to follow; improving naming, extracting the 'anyInPoster' logic, and clarifying the purpose of path would significantly enhance readability.
Run 2
The code has clarity issues and inconsistent structure. It begins with a vague debug message, and the variable naming (e.g., 'items', 'nItems', 'p') lacks descriptiveness. There is also dead code: the 'path[0]' assignment is repeated and never used meaningfully with 'path[1]' as intended. The nesting is moderate but the overall flow is disjointed—comments like '//source?' indicate uncertainty. Action granularity is uneven; several lines pack multiple concerns. The reading flow is disrupted by mixed indentation styles and unnecessary variables. While the method is short, its purpose and logic require significant effort to understand. Better naming, removal of dead code, and clearer structure would improve readability substantially.
Run 3
The code has some structure but suffers from readability issues. The main method contains multiple actions with unclear variable naming (e.g., 'path', 'anyInPoster') and inconsistent indentation. The nesting level is moderate (loop inside loop inside if) but the logic flow is not immediately obvious. The 'path[0]' assignment is duplicated, and the comment '//source?' indicates uncertainty. Action granularity is partially violated with dense condition checks. The enum-to-vector mixing (Vector, Enumeration) adds legacy complexity. The flow jumps from retrieving items to building path to iterating posters, with the connection between 'items' and 'posters' requiring careful reading. Minor improvements: extract nested loops into helper methods, use clearer variable names, consistent formatting, and avoid redundant assignments.
Run 1
Code Structure: Logically organized into initialization, poster iteration, item matching, and tree updates, but inconsistent indentation obscures the organization. Nesting: A while loop containing a for loop and conditional creates moderate nesting; break and continue limit additional complexity. Clarity of intent: The event handler and tree-update call suggest the purpose, but vague names, identity comparison, and the unresolved '//source?' comment reduce clarity. Code length: Reasonably concise, although the repeated to-do-list lookup is unnecessary. Action granularity: Most lines perform one action, making individual operations easy to follow. Reading flow: The sequence is generally natural, but mixed whitespace, uneven blank lines, raw collections, and explicit casts interrupt readability.
Run 2
Code Structure: Logically organized into initialization, poster iteration, matching, and notification, though repeated list retrieval and inconsistent indentation weaken organization. Nesting: Moderate nesting from a while loop, for loop, and conditional; break and continue keep control flow manageable. Clarity of intent: The matching logic and tree update are understandable, but abbreviated names, raw collections, and the unresolved '//source?' comment reduce clarity. Code length: Reasonably concise, with minor redundancy in retrieving the same list twice. Action granularity: Generally one action per line, making operations easy to distinguish. Reading flow: Processing follows a natural sequence, but mixed indentation, uneven whitespace, and the singular debug message in a plural-named method introduce distractions.
Run 3
Code Structure: Logically separates initialization, poster traversal, item matching, and tree updates, but inconsistent indentation weakens organization. Nesting: A loop containing another loop and a conditional creates moderate nesting; break and continue limit further complexity. Clarity of intent: The method name and update call convey the purpose, but abbreviated names, raw collections, identity comparison, and the unclear '//source?' comment require interpretation. Code length: Reasonably concise, though repeated retrieval of the same ToDoList is unnecessary. Action granularity: Statements generally perform one action per line, making individual operations easy to follow. Reading flow: The sequence from removed items to affected posters to notifications is natural, but mixed whitespace and the indirect search interrupt smooth reading.