Sample
Scalabrio57
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 34.7Δ 10.8 |
| Scalabrino | 0.377 | 0–1; higher is more readable | 32.7Δ 12.8 |
| Dorn | 0.542 | 0–1; higher is more readable | 62.8Δ 17.3 |
| Mi | 0.188 | 0–1; higher is more readable | 45.2Δ 0.3 |
| LLOC | 15 | Logical lines; fewer is more readable | 44.5Δ 1.0 |
| DeepSeek V4 Pro | 17 | 0–20; mean of three runs | 90.2Δ 44.7 |
| GPT-6.1 Sol | 17 | 0–20; mean of three runs | 58.5Δ 13.1 |
| BTTF | 0.609 | 0–1; higher is more readable | 72.4Δ 26.9 |
| Human | 3.56 | 1–5; original rating | 45.5 |
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. | 972.514 | −32.093 |
| Source linesThe number of non-empty source lines. | 26 | +10.4 |
| 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.94 | −7.41 |
Intercept 8.87 + feature contributions = -20.233 (log-odds).
Score = sigmoid(-20.233) = 0.
| Score | 0.377 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 103 | +0.857 |
| 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. | 102.962 | −0.696 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 13 | −0.287 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.075 | +0.209 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 26 | +0.116 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 24.75 | −0.064 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 20 | −0.038 |
Intercept 0.07 + feature contributions = 0.167 (log-odds).
Score = sigmoid(0.167) = 0.542.
| Score | 0.188 |
|---|
| Score | 15 |
|---|
Run 1
The code is well-structured with clear sections separated by comments, flat nesting, and one action per line. Intent is evident from the method name and inline comments. Variable names are descriptive, and the test logic is straightforward. Minor room for improvement could be extracting repeated setup into a helper method, but overall readability is high.
Run 2
The code is well structured with a clear test method divided into two logical sections via comments. It has low nesting depth, making it easy to follow. Each action—setting properties, creating objects, configuring generators, and running assertions—is placed on its own line, improving granularity and readability. The intent is explicit: it verifies default optimizer selection for sequence-backed generators in two dialect scenarios. Variable names are descriptive, and the repeated setup is minimal, so the code is not unnecessarily long. The reading flow is natural: setup, first scenario, assertions, then second scenario. Minor deductions are due to slight repetition and the fact that a reader must understand Hibernate internals to fully grasp the assertions.
Run 3
The code is well-structured and readable. It has a clear purpose stated in the Javadoc, and the method name accurately reflects its function. It uses flat nesting with no conditional blocks, making the flow straightforward. Each assertion is on its own line, showing good action granularity. The comments clearly separate the two test scenarios, improving reading flow. Minor deductions: some repeated setup code could be extracted, and assertion method names are slightly verbose. Overall, the code is concise, intentional, and easy to follow.
Run 1
Code Structure: Two logically grouped scenarios clearly separate dialect behavior, though separate test methods could improve isolation. Nesting: The method is flat, with no nested control flow. Clarity of intent: Descriptive names, comments, and explicit assertions communicate the test purpose well; however, the Javadoc mentions hilo while the implementation expects pooled optimization with a table, creating confusion. Code length: The method is reasonably concise, although configuration and assertion patterns are repeated. Action granularity: Each statement performs one clear action on its own line. Reading flow: Setup followed by configuration and assertions reads naturally in both scenarios; reassigning dialect and generator slightly weakens scenario independence.
Run 2
Code Structure: Two logically separated test scenarios share a clear setup, though separate tests could improve isolation. Nesting: The method is flat, with no nested control flow. Clarity of intent: Descriptive names, scenario comments, and explicit assertions make the purpose clear; however, the Javadoc mentions hilo while the implementation expects pooled optimization in both cases. Code length: Compact overall, with some reasonable repetition between scenarios. Action granularity: Each statement performs one primary action on its own line. Reading flow: Setup, configuration, and assertions follow a natural order, although reassigning dialect and generator requires tracking their changed roles.
Run 3
Code Structure: Two logically grouped test scenarios share a clear setup, though separate tests could improve isolation. Nesting: The method is flat, with no nested control flow. Clarity of intent: Descriptive names and assertions communicate expected behavior, but the Javadoc incorrectly describes the unsupported-dialect case as hilo rather than pooled+table. Code length: Reasonably concise, with minor duplication between scenarios. Action granularity: Each statement performs one principal action, making individual steps easy to follow. Reading flow: Setup, configuration, and assertions follow a natural order; blank lines and scenario comments help navigation, although reusing dialect and generator variables slightly weakens scenario separation.