Sample
Scalabrio123
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 44.2Δ 53.5 |
| Scalabrino | 0.491 | 0–1; higher is more readable | 48.2Δ 49.5 |
| Dorn | 0.507 | 0–1; higher is more readable | 57.8Δ 39.9 |
| Mi | 0.339 | 0–1; higher is more readable | 61.8Δ 35.9 |
| LLOC | 13 | Logical lines; fewer is more readable | 53.0Δ 44.7 |
| DeepSeek V4 Pro | 8.67 | 0–20; mean of three runs | 12.8Δ 84.9 |
| GPT-6.1 Sol | 17 | 0–20; mean of three runs | 58.5Δ 39.2 |
| BTTF | 0.597 | 0–1; higher is more readable | 69.8Δ 27.9 |
| Human | 4.67 | 1–5; original rating | 97.7 |
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. | 770.382 | −25.423 |
| 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.521 | −6.781 |
| Source linesThe number of non-empty source lines. | 16 | +6.4 |
Intercept 8.87 + feature contributions = -16.934 (log-odds).
Score = sigmoid(-16.934) = 0.
| Score | 0.491 |
|---|
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. | 66.812 | +0.835 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 0 | −0.804 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.154 | −0.555 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 16 | +0.47 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 14.926 | −0.201 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 16 | −0.184 |
Intercept 0.07 + feature contributions = 0.028 (log-odds).
Score = sigmoid(0.028) = 0.507.
| Score | 0.339 |
|---|
| Score | 13 |
|---|
Run 1
The code has some readable aspects but multiple issues. The structure is somewhat logical, but the method begins with an early return inside an if-block, and the main logic is deeply nested. Clarity of intent is limited: the method name is generic, and returning null instead of an empty set is ambiguous. Action granularity is mostly one action per line, which is good, but repetitive addAll calls make the code unnecessarily long. Reading flow is disrupted by inconsistent indentation and the null return. The code would benefit from a guard clause to reduce nesting and an empty set return for consistency.
Run 2
The method is short and reasonably flat, but suffers from multiple readability issues. The indentation is inconsistent (mixing tabs and spaces). The method name 'getDependencies' is somewhat generic, and returning null instead of an empty set creates ambiguity for callers. There is a single large if block handling all logic rather than early exit. The sequence of addAll calls is repetitive and tightly coupled to many facade methods with similar names, which obscures intent and makes the code harder to scan. Action granularity is acceptable (one addAll per line), but the overall structure lacks separation of concerns or explanatory comments. The reading flow is linear yet mechanical, with no clear grouping of related dependency types.
Run 3
The code has a clear intent: collect dependencies for a class-like element. The structure is straightforward, with minimal nesting and one action per line, which aids readability. However, several issues reduce clarity. The method name 'getDependencies' and the parameter 'parent' are vague. The repeated calls to Model.getFacade() add visual noise and length; extracting a local variable would improve conciseness and reading flow. The indentation is inconsistent (tabs/spaces), and returning null for non-class inputs creates ambiguity for callers—perhaps an empty set or exception would be clearer. Adding a type to the Set (e.g., Set<Object>) would improve clarity. Overall, the logic is understandable but suffers from minor style and naming weaknesses.
Run 1
Code Structure: A single method logically groups dependency collection behind a class-type check. Nesting: Only one conditional level, making control flow easy to follow. Clarity of intent: The method name and collection calls communicate the purpose, though the generic variable name 'set', raw Set types, and inclusion of the parent itself leave some semantics unclear. Code length: Short and focused; repeated facade access is slightly verbose but straightforward. Action granularity: Each statement performs one clear action. Reading flow: The check, collection construction, additions, and return follow a natural sequence. Mixed indentation reduces visual consistency, and returning null rather than an empty set makes the non-class outcome less intuitive.
Run 2
Code Structure: Logically organized around a class check followed by dependency collection. Nesting: Only one conditional level, making control flow easy to follow. Clarity of intent: The method name and collection calls communicate its purpose, though the generic variable name 'set', raw Set type, and unexplained null return reduce clarity. Code length: Concise, with some repetitive facade access that could be simplified. Action granularity: Each statement performs one clear action. Reading flow: Collection steps proceed naturally to the return, but inconsistent indentation slightly disrupts visual consistency.
Run 3
Code Structure: Logically organized around a class check, dependency collection, and return. Nesting: Only one conditional level, making control flow easy to follow. Clarity of intent: The method name and explicit collection calls communicate its purpose, though the generic variable name 'set', raw Set type, and unexplained null return reduce clarity. Code length: Short and appropriate; repeated facade access adds minor verbosity. Action granularity: Each statement performs one clear action on its own line. Reading flow: Collection steps follow a natural, linear sequence, but inconsistent indentation slightly disrupts visual consistency.