Sample
Scalabrio25
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 42.2Δ 40.7 |
| Scalabrino | 0.942 | 0–1; higher is more readable | 97.0Δ 14.1 |
| Dorn | 0.668 | 0–1; higher is more readable | 76.4Δ 6.5 |
| Mi | 0.538 | 0–1; higher is more readable | 78.4Δ 4.5 |
| LLOC | 17 | Logical lines; fewer is more readable | 35.7Δ 47.2 |
| DeepSeek V4 Pro | 17.67 | 0–20; mean of three runs | 96.0Δ 13.1 |
| GPT-6.1 Sol | 19 | 0–20; mean of three runs | 98.0Δ 15.1 |
| BTTF | 0.673 | 0–1; higher is more readable | 87.9Δ 5.0 |
| Human | 4.22 | 1–5; original rating | 82.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. | 840.752 | −27.745 |
| Source linesThe number of non-empty source lines. | 23 | +9.2 |
| Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value. | 5.091 | −7.636 |
Intercept 8.87 + feature contributions = -17.311 (log-odds).
Score = sigmoid(-17.311) = 0.
| Score | 0.942 |
|---|
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. | 58.957 | +1.168 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 1 | −0.703 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 23 | +0.222 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 59 | +0.148 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 21.967 | −0.103 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 21 | −0.061 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.101 | −0.04 |
Intercept 0.07 + feature contributions = 0.701 (log-odds).
Score = sigmoid(0.701) = 0.668.
| Score | 0.538 |
|---|
| Score | 17 |
|---|
Run 1
The code is highly readable. It has a clear, single-purpose constructor with a flat structure and no complex nesting. Each line performs one action—registering a column type—making the intent explicit and the flow natural. The mapping of Java Types to database-specific type strings is straightforward and easy to scan. Although somewhat repetitive, the repetition is appropriate for this kind of configuration and does not harm readability. The only minor issues are a slight lengthiness and the Javadoc comment being minimal, but these do not significantly detract from overall clarity.
Run 2
The code is highly readable. It has a clear, linear structure with no nesting, and each line performs a single, explicit action—registering a SQL type mapping. The method name and parameter pairs clearly convey intent, making the purpose unambiguous. The formatting is consistent and followable, with only negligible repetition inherent to the domain. Minor deductions are for the slightly verbose nature of repeating 'registerColumnType' and the lack of grouping or comments for related type families, which could marginally improve scanning.
Run 3
The code is highly readable: the constructor clearly initializes a dialect by registering type mappings, with one action per line. The structure is flat, simply a sequence of related registrations. The intent is obvious to anyone familiar with ORM dialects, and the pattern of aligning arguments reads naturally. Length is appropriate—not unnecessarily long. Minor limitations: no additional structure or grouping (though none is needed), and the code relies on implicit knowledge of Types constants; however, this is typical for such configuration code.
Run 1
Code Structure: The constructor logically groups column-type registrations after superclass initialization. Nesting: Completely flat, with no conditional branches or loops. Clarity of intent: Descriptive method names and explicit type mappings clearly communicate dialect initialization; the constructor comment is redundant but harmless. Code length: Concise for an explicit mapping list, with necessary repetition rather than unnecessary verbosity. Action granularity: Each line performs exactly one registration. Reading flow: Consistent formatting and a straightforward top-to-bottom sequence make scanning easy, although grouping related numeric, text, temporal, and binary types would improve navigation slightly.
Run 2
Code Structure: A single constructor logically groups database column-type registrations. Nesting: The body is flat, with no nested control flow. Clarity of intent: Descriptive method names and explicit type mappings make the purpose immediately clear; the constructor comment adds little information. Code length: Concise for the number of mappings, with necessary rather than excessive repetition. Action granularity: Each line performs exactly one registration. Reading flow: Consistent indentation, spacing, and repeated call patterns make the code easy to scan, although grouping related types more consistently could slightly improve navigation.
Run 3
Code Structure: A single constructor logically groups SQL type registrations. Nesting: Completely flat, with no conditional or loop complexity. Clarity of intent: The constructor name and registerColumnType calls clearly communicate dialect initialization, though placeholder meanings rely on framework knowledge. Code length: Concise for an explicit mapping list; repetition is purposeful rather than unnecessary. Action granularity: Each line performs exactly one registration. Reading flow: Consistent formatting and sequential mappings make the code easy to scan, although explicit grouping by type category could slightly improve navigation.