Sample
Scalabrio34
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 9.5Δ 6.3 |
| Scalabrino | 0.411 | 0–1; higher is more readable | 37.7Δ 34.4 |
| Dorn | 0.385 | 0–1; higher is more readable | 44.2Δ 41.0 |
| Mi | 0.02 | 0–1; higher is more readable | 10.6Δ 7.3 |
| LLOC | 21 | Logical lines; fewer is more readable | 23.1Δ 19.8 |
| DeepSeek V4 Pro | 8.67 | 0–20; mean of three runs | 12.8Δ 9.5 |
| GPT-6.1 Sol | 14 | 0–20; mean of three runs | 9.5Δ 6.3 |
| BTTF | 0.374 | 0–1; higher is more readable | 10.6Δ 7.3 |
| Human | 2.56 | 1–5; original rating | 3.3 |
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. | 1795.88 | −59.264 |
| Source linesThe number of non-empty source lines. | 42 | +16.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.894 | −7.342 |
Intercept 8.87 + feature contributions = -40.936 (log-odds).
Score = sigmoid(-40.936) = 0.
| Score | 0.411 |
|---|
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. | 119 | −1.375 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 119 | +1.116 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 40 | +0.646 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 40 | −0.497 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 42 | −0.451 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 40.842 | +0.161 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.111 | −0.137 |
Intercept 0.07 + feature contributions = -0.467 (log-odds).
Score = sigmoid(-0.467) = 0.385.
| Score | 0.02 |
|---|
| Score | 21 |
|---|
Run 1
The code has a clear purpose and follows a sequential flow, but readability is hindered by several factors. The method is moderately long with multiple responsibilities: building a select string while tracking entity and collection aliases. Nesting is shallow, which is good, but the conditional logic for suffixes is dense and repeated. Action granularity is mixed—some lines contain multiple actions (e.g., alias counters incrementing). Variable names are descriptive, but raw type usage (List, OuterJoinableAssociation) reduces clarity. The ternary expressions for next, entitySuffix, and collectionSuffix add cognitive load. Reading flow is mostly natural, but the method could benefit from extraction of helper logic (e.g., suffix resolution, alias counting) and breaking the loop body into smaller pieces.
Run 2
The code has a clear overall purpose and some logical organization, but suffers from several readability issues. The if-else structure adds unnecessary nesting; an early return for the empty case would be flatter. There is heavy conditional logic compressed into ternary expressions for entitySuffix and collectionSuffix, reducing clarity. Multiple actions occur within single lines, especially inside the for loop, and the method has many responsibilities: building select fragments, managing alias counters, and checking join types. The method name is somewhat clear but the parameter type is raw (List), reducing type safety and intent. Formatting and indentation are inconsistent, interrupting natural reading flow. While not unreadable, it requires significant effort to parse the nested ternaries and dense logic.
Run 3
The code is functionally structured but readability suffers from several issues. The method has a clear purpose, but the logic is dense and mixes concerns—string building, alias counting, and conditionals—within a single loop. Nesting is moderate, but long ternary expressions significantly hinder readability. Action granularity is inconsistent: some lines contain multiple operations (e.g., alias counters on the same line as conditionals). The reading flow is interrupted by verbose casts and line breaks. Variable names are somewhat descriptive, but the repeated null-check ternaries reduce clarity. On the positive side, the code is not deeply nested and the overall structure follows a logical sequence. However, it would benefit from extracting helper methods, simplifying conditionals, and adding clearer comments explaining the relationship between aliases and suffixes.
Run 1
Code Structure: Logically organized around an empty-input check, association iteration, and fragment accumulation, though the else after an early return adds unnecessary structure. Nesting: Moderate nesting from the else, loop, and conditional append; manageable but could be flatter. Clarity of intent: The method comment and descriptive local names explain its purpose, while alias counters, suffix selection, and positional selectFragment arguments require domain knowledge. Code length: Reasonably concise, although repeated null checks and index-based lookahead add verbosity. Action granularity: Most statements perform one action; inline conditional increments and chained appends slightly compress operations. Reading flow: Processing follows a natural sequence from association lookup to suffix selection and fragment generation, but inconsistent spacing, indentation, raw List casts, and long conditions interrupt scanning.
Run 2
Code Structure: Logically organized around an empty-input check, association iteration, and result construction, though the else after an early return is unnecessary. Nesting: Moderate; the loop and conditional logic remain manageable but could be flatter. Clarity of intent: The comment and descriptive variable names explain the overall purpose, while alias-counter coordination, nullable suffixes, and the multi-argument selectFragment call require careful reading. Code length: Reasonably concise, although repeated bounds checks and next-association handling add verbosity. Action granularity: Most lines perform one action, but inline conditional increments and chained appends compress operations. Reading flow: Generally follows a natural setup-process-return sequence; inconsistent spacing and indentation, raw List usage, explicit casts, and long conditions interrupt readability.
Run 3
Code Structure: The method logically handles empty input, iterates over associations, builds select fragments, and returns the result, but the else after an early return is unnecessary. Nesting: Moderate nesting is manageable; removing that else would flatten the main logic. Clarity of intent: The comment and descriptive variable names convey the purpose, though alias-counter coordination and the multi-argument selectFragment call require careful reading. Code length: Reasonably concise, with some repetitive null and bounds checks. Action granularity: Most statements perform one action, but inline conditional increments and chained appends slightly reduce scanability. Reading flow: Processing follows a natural sequence, but inconsistent spacing and indentation, raw-list casts, and long conditional expressions interrupt the flow.