Sample
Scalabrio148
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.006 | 0–1; higher is more readable | 80.9Δ 64.1 |
| Scalabrino | 0.156 | 0–1; higher is more readable | 10.6Δ 6.3 |
| Dorn | 0.078 | 0–1; higher is more readable | 13.6Δ 3.3 |
| Mi | 0.004 | 0–1; higher is more readable | 1.5Δ 15.3 |
| LLOC | 3 | Logical lines; fewer is more readable | 96.5Δ 79.6 |
| DeepSeek V4 Pro | 14.67 | 0–20; mean of three runs | 57.8Δ 41.0 |
| GPT-6.1 Sol | 18 | 0–20; mean of three runs | 83.7Δ 66.8 |
| BTTF | 0.542 | 0–1; higher is more readable | 54.3Δ 37.4 |
| Human | 3 | 1–5; original rating | 16.8 |
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. | 346.794 | −11.444 |
| 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.634 | −6.951 |
| Source linesThe number of non-empty source lines. | 11 | +4.4 |
Intercept 8.87 + feature contributions = -5.125 (log-odds).
Score = sigmoid(-5.125) = 0.006.
| Score | 0.156 |
|---|
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. | 152 | −2.773 |
| 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 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 11 | −0.357 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 9.778 | −0.273 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.07 | +0.263 |
Intercept 0.07 + feature contributions = -2.475 (log-odds).
Score = sigmoid(-2.475) = 0.078.
| Score | 0.004 |
|---|
| Score | 3 |
|---|
Run 1
The code is fairly readable and organized, with a clear single responsibility. It uses consistent naming and a logical flow: retrieve a persister, cast/convert it, and delegate to a helper method. However, readability suffers from several issues. The method name is extremely long and somewhat ambiguous, making intent unclear at first glance. The lines are dense with casts and nested method calls, which slightly hurts reading flow and action granularity. The method could be broken into intermediate variables to clarify each step. Nesting is not a major issue, but the single line with multiple casts and method invocations feels tangled. Overall, it is understandable but could be improved with more descriptive variable names and less compression of logic.
Run 2
The code is generally well-structured with a clear purpose: resolving composite collection index sub-attributes. Naming is descriptive and consistent with domain terminology. The method performs a single logical operation by delegating to a helper method, keeping action granularity reasonable. However, readability is slightly hindered by heavy inline casting (QueryableCollection, OuterJoinLoadable, CompositeType) and long line lengths, which add visual noise. The nesting is minimal and the flow is natural, but the method signature and parameter list are verbose. Overall, it is readable for developers familiar with the persistence framework, though could benefit from line wrapping and intermediate variables to reduce clutter.
Run 3
The code is relatively concise and each line performs a single logical action, contributing to decent readability. The method name is descriptive, and the structure is clear. However, readability suffers from significant line-length issues, forcing horizontal scrolling. The initial variable assignment separates the cast and method call from the return statement, which is acceptable but adds minor noise. The nested method call chain in the return statement is somewhat deep but still understandable. Overall, the code is readable but could benefit from reformatting and possibly extracting intermediate variables for clarity.
Run 1
Code Structure: Logically organized into retrieving the collection persister and delegating subattribute construction. Nesting: Flat, with no conditional or loop nesting. Clarity of intent: Descriptive method and variable names communicate the purpose, although framework-specific types and explicit casts require domain knowledge. Code length: Concise, with no unnecessary statements; the long method signature slightly reduces scanability. Action granularity: Each statement has a distinct responsibility, and each argument is placed on its own line. Reading flow: Natural progression from obtaining the dependency to returning the result, supported by consistent indentation.
Run 2
Code Structure: Logically organized into obtaining the collection persister and delegating subattribute retrieval. Nesting: Flat, with no nested control flow. Clarity of intent: Descriptive method and variable names communicate the purpose, though domain-specific types and explicit casts require background knowledge. Code length: Concise, with no unnecessary statements. Action granularity: The assignment and return are separate, and each delegated argument occupies its own line. Reading flow: Natural top-to-bottom progression with readable argument formatting; long identifiers and the chained accessor slightly increase reading effort.
Run 3
Code Structure: Logically organized into retrieving the collection persister and delegating attribute construction. Nesting: Flat, with no conditional or loop nesting. Clarity of intent: Descriptive method and variable names communicate the purpose, though long names and explicit casts add cognitive load. Code length: Concise, with no unnecessary statements. Action granularity: Each statement performs a focused operation, and placing each argument on its own line improves scanning. Reading flow: Natural progression from obtaining the dependency to returning the result; slightly cramped signature formatting and the chained accessor call modestly reduce readability.