Sample
Scalabrio182
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 71.4Δ 36.4 |
| Scalabrino | 0.269 | 0–1; higher is more readable | 23.6Δ 11.3 |
| Dorn | 0.351 | 0–1; higher is more readable | 40.7Δ 5.8 |
| Mi | 0.017 | 0–1; higher is more readable | 9.0Δ 25.9 |
| LLOC | 6 | Logical lines; fewer is more readable | 86.9Δ 52.0 |
| DeepSeek V4 Pro | 12 | 0–20; mean of three runs | 31.4Δ 3.5 |
| GPT-6.1 Sol | 16.33 | 0–20; mean of three runs | 42.5Δ 7.5 |
| BTTF | 0.607 | 0–1; higher is more readable | 71.4Δ 36.4 |
| 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. | 544.962 | −17.984 |
| Source linesThe number of non-empty source lines. | 19 | +7.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.66 | −6.99 |
Intercept 8.87 + feature contributions = -8.504 (log-odds).
Score = sigmoid(-8.504) = 0.
| Score | 0.269 |
|---|
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. | 113 | −1.121 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 1 | +1.001 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 0 | −0.804 |
| 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. | 17.825 | −0.161 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.088 | +0.084 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 19 | −0.08 |
Intercept 0.07 + feature contributions = -0.613 (log-odds).
Score = sigmoid(-0.613) = 0.351.
| Score | 0.017 |
|---|
| Score | 6 |
|---|
Run 1
The code has clear structure and single-purpose method, with reasonable action granularity. However, the nesting is quite deep due to multiple chained getter calls, making it harder to read. The intent is understandable but could be improved by extracting the deep getter chains into local variables. The variable names are descriptive but the deeply chained method calls reduce clarity. The overall flow follows a logical order, but the excessive chaining creates visual clutter and requires careful line wrapping, affecting the natural reading flow. This is a typical Hibernate-style codebase pattern that works but could benefit from refactoring for readability.
Run 2
The code is moderately readable but suffers from verbose method chaining and deep nesting within arguments. The structure is logical, separating entity and many-to-many cases, and the flow from one operation to the next is clear. However, lines are excessively long due to multiple chained getter calls inside method arguments, reducing clarity of intent. Action granularity is mixed: although each top-level statement occupies its own line, each line contains multiple embedded operations, making it harder to parse. Nesting is mostly flat at the top level but deep within individual expressions. The method does not explain the purpose of each fragment clearly, and the repeated access to 'getQueryableCollection()' adds unnecessary length. Overall, it follows a familiar pattern but could be improved with extracted variables and better formatting to enhance readability.
Run 3
The code has a clear purpose but suffers from readability issues. The method name is descriptive, and the overall structure is logical, with a simple if-branch for many-to-many collections. However, the nested method calls are extremely long, making each line hard to parse. Multiple actions are chained in single lines, violating the 'one action per line' principle. The deep nesting of accessor calls (e.g., getQueryableCollection().getElementPersister()) obscures intent and requires significant mental effort to follow. While the code is concise, it sacrifices clarity. Breaking intermediate results into well-named local variables and extracting the select fragment construction would greatly improve readability.
Run 1
Code Structure: Logically organized into collection selection, optional many-to-many element selection, and superclass delegation. Nesting: Only one conditional level, though nested method calls add visual complexity. Clarity of intent: Descriptive method and variable names communicate the purpose well; ORM-specific terminology requires domain knowledge. Code length: Appropriately concise, but repeated accessor chains could be shortened with local variables. Action granularity: Each statement performs one main action, with arguments spread across lines for readability. Reading flow: Execution proceeds naturally, and whitespace separates the conditional behavior clearly. Inconsistent indentation and spacing slightly detract from an otherwise readable implementation.
Run 2
Code Structure: Logically organized into collection selection, optional many-to-many element selection, and superclass delegation. Nesting: Control-flow nesting is shallow, although nested method calls and chained getters add visual complexity. Clarity of intent: Descriptive method and variable names communicate the purpose, but ORM-specific terminology requires domain knowledge. Code length: Appropriately concise, though repeated alias lookups could be assigned to local variables for easier scanning. Action granularity: Each statement performs one primary action; multiline expressions avoid cramming operations onto a single line. Reading flow: The execution order is natural and easy to follow, but inconsistent indentation and spacing slightly disrupt readability.
Run 3
Code Structure: Logically organized into collection selection, conditional many-to-many element selection, and superclass delegation. Nesting: Control flow is shallow, with only one conditional, although nested method calls add visual complexity. Clarity of intent: Descriptive method and variable names communicate the purpose, but understanding the alias chains requires domain knowledge. Code length: Appropriately concise, though repeated accessor chains make expressions verbose. Action granularity: Each statement performs one primary action, and multiline arguments help distinguish inputs. Reading flow: Execution proceeds naturally from general collection handling to special-case handling and delegation; inconsistent indentation and spacing slightly disrupt scanning.