Sample
Scalabrio147
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 68.8Δ 28.9 |
| Scalabrino | 0.573 | 0–1; higher is more readable | 56.8Δ 16.8 |
| Dorn | 0.198 | 0–1; higher is more readable | 25.1Δ 14.8 |
| Mi | 0.082 | 0–1; higher is more readable | 31.2Δ 8.8 |
| LLOC | 11 | Logical lines; fewer is more readable | 63.1Δ 23.1 |
| DeepSeek V4 Pro | 16.33 | 0–20; mean of three runs | 80.9Δ 41.0 |
| GPT-6.1 Sol | 16.33 | 0–20; mean of three runs | 42.5Δ 2.5 |
| BTTF | 0.508 | 0–1; higher is more readable | 41.7Δ 1.8 |
| Human | 3.44 | 1–5; original rating | 39.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. | 718.46 | −23.709 |
| Source linesThe number of non-empty source lines. | 32 | +12.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.808 | −7.213 |
Intercept 8.87 + feature contributions = -9.252 (log-odds).
Score = sigmoid(-9.252) = 0.
| Score | 0.573 |
|---|
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. | 124 | −1.587 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 30 | +0.301 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 30 | −0.268 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.075 | +0.21 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 32 | −0.097 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 46.75 | −0.05 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 30.792 | +0.021 |
Intercept 0.07 + feature contributions = -1.4 (log-odds).
Score = sigmoid(-1.4) = 0.198.
| Score | 0.082 |
|---|
| Score | 11 |
|---|
Run 1
The code is generally well-structured with good readability. It has a clear purpose, reasonable nesting depth, and mostly single-action lines. Early return pattern reduces nesting. The main method body is split into logical sections (resolved type mapping, java type name, simple value handling) with a helpful comment. The one deeply nested block for SimpleValue handling is acceptable but could be extracted. The todo comment provides context about limitations. Indentation is inconsistent (tabs/spaces mixing), and some lines are quite long like the Datatype constructor call. Overall, readable but could benefit from a minor extraction method for the SimpleValue block and consistent formatting. The method name is descriptive, and the parameter names clearly indicate their roles.
Run 2
The code is clear and well-structured, with a logical flow and one action per line. Nesting is minimal, and the early return reduces complexity. The method name and comments clarify intent. The conditional blocks are simple and readable. The inline comment about limitations is helpful. The only minor deductions come from slight verbosity (could use helper methods and null checks could be simplified) and a small formatting inconsistency. Overall, it is highly readable.
Run 3
The code is generally readable with a flat structure (only two levels of nesting) and clear intent. Each logical step is separated by blank lines, and the early return for null resolvedHibernateType prevents unnecessary nesting. Variable names are descriptive, and the method name clearly communicates its purpose. However, readability is slightly reduced by the long comment line with tildes, an inline TODO comment that interrupts flow, and the multi-line Datatype constructor call which packs several arguments across multiple lines. The cast from Value to SimpleValue could be simplified with pattern matching, but the explicit type check and cast are clear. Overall, the code is well-organized and easy to follow, with minor style inconsistencies preventing a higher score.
Run 1
Code Structure: Logically groups Hibernate mapping, Java type metadata, and simple-value datatype updates. Nesting: An early return keeps the method mostly flat, with only two nested conditionals in the final block. Clarity of intent: Descriptive names and null checks clearly communicate that missing type information is populated; however, the metadata dependency and first SQL type selection require context. Code length: Reasonably concise, though the decorative separator and verbose TODO add visual noise. Action granularity: Each statement performs one main action, and the multiline Datatype constructor makes its arguments easy to distinguish. Reading flow: Updates proceed naturally from general metadata to specific value handling, but inconsistent indentation and the lengthy method name slightly hinder scanning.
Run 2
Code Structure: Logically separates resolved mapping, Java type information, and datatype propagation, though inconsistent indentation weakens presentation. Nesting: An early return keeps most logic flat; the final two-level conditional is manageable. Clarity of intent: Descriptive names and null checks clearly communicate filling missing type information, but the long method name and unexplained sqlTypes(metadata)[0] assumption add friction. Code length: Mostly concise, although the decorative comment and verbose formatting of the constructor call add visual bulk. Action granularity: Each statement performs a single clear action, with constructor arguments separated for readability. Reading flow: Progresses naturally from validation to general metadata updates and then specialized SimpleValue handling; uneven spacing and the lengthy TODO slightly interrupt that flow.
Run 3
Code Structure: Logically groups resolved mapping, Java type information, and datatype propagation, though indentation is inconsistent. Nesting: An early null return keeps most logic flat; the final block has only two conditional levels. Clarity of intent: Descriptive names and null checks clearly communicate filling missing type information, but the first SQL type selection and single-value limitation require domain knowledge. Code length: Appropriately concise, although the long separator comment and verbose instance check add visual noise. Action granularity: Each statement performs one clear action; the multiline Datatype construction remains easy to follow. Reading flow: Progresses naturally from validation to general metadata and then specialized handling, with minor disruption from uneven formatting and the informal TODO.