Sample
Scalabrio75
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.021 | 0–1; higher is more readable | 83.4Δ 17.3 |
| Scalabrino | 0.639 | 0–1; higher is more readable | 64.3Δ 1.8 |
| Dorn | 0.653 | 0–1; higher is more readable | 72.4Δ 6.3 |
| Mi | 0.047 | 0–1; higher is more readable | 21.6Δ 44.5 |
| LLOC | 17 | Logical lines; fewer is more readable | 35.7Δ 30.4 |
| DeepSeek V4 Pro | 15.67 | 0–20; mean of three runs | 72.9Δ 6.8 |
| GPT-6.1 Sol | 17 | 0–20; mean of three runs | 58.5Δ 7.5 |
| BTTF | 0.614 | 0–1; higher is more readable | 74.9Δ 8.8 |
| Human | 3.89 | 1–5; original rating | 66.1 |
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. | 642.906 | −21.216 |
| Source linesThe number of non-empty source lines. | 39 | +15.6 |
| 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.736 | −7.104 |
Intercept 8.87 + feature contributions = -3.85 (log-odds).
Score = sigmoid(-3.85) = 0.021.
| Score | 0.639 |
|---|
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. | 118.846 | −1.369 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 118.974 | +1.115 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 39 | −0.345 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.062 | +0.342 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 30 | +0.301 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 37.808 | +0.119 |
Intercept 0.07 + feature contributions = 0.631 (log-odds).
Score = sigmoid(0.631) = 0.653.
| Score | 0.047 |
|---|
| Score | 17 |
|---|
Run 1
The code is generally readable with clear intent and logical structure. It uses a straightforward test setup, executes actions in sequence, and includes helpful comments explaining non-obvious behavior. Nesting is minimal, limited to a single try-catch block. Action granularity is mostly one action per line. However, readability is slightly reduced by the long method name and the need for a try-catch that interrupts the flow. The comments, while informative, could be more concise. Overall, the code is well-organized and easy to follow for a developer familiar with the framework.
Run 2
The code is well-structured and readable. It follows a clear test setup—prepare, act, assert, cleanup—with logical grouping and meaningful variable names. Comments explain non-obvious behavior (e.g., why scroll/iterate hold resources, why sr.next() is needed), which improves clarity without being excessive. Nesting is minimal: only a try-catch block for expected behavior. Each line performs a single action, and the reading flow is natural. The method is moderately long, but the length is justified by the test scenario. Minor area for improvement: the inline comment about SybaseASE15Dialect could be extracted or shortened, but it is informative. Overall, the code demonstrates high readability.
Run 3
The test method is logically structured with clear setup (prepare, save, flush), action (scroll, serialize attempt), and teardown (delete, flush, release, done) phases. The comments explain the intent behind aggressive release and resource holding, which aids clarity. However, several issues reduce readability: the method name is excessively long, there is procedural repetition (s.flush(), s.delete(), s.flush()), and the try/catch block adds nesting that could be flattened. The action granularity is mostly one statement per line, but some lines are dense (e.g., combined query creation and scrolling). The reading flow is natural in some parts but interrupted by comments explaining workarounds and dialect-specific behavior. The serialization failure assertion is clear, but the use of fail() and catch is wordy. Overall, the test is understandable but verbose.
Run 1
Code Structure: The test is logically organized into setup, resource opening, expected serialization failure, resource closing, successful serialization, and cleanup. Nesting: Only a single try/catch adds nesting, keeping the code mostly flat. Clarity of intent: The descriptive test name and explanatory comments make the expected behavior clear, although abbreviations such as s, sr, and CM reduce immediate clarity. Code length: The implementation is appropriately concise; lengthy comments explain important connection-management behavior and a database-specific workaround. Action granularity: Each statement performs one primary action, with a short query-building chain that remains easy to follow. Reading flow: Execution follows a natural chronological sequence, supported by whitespace separating phases. Cleanup is not protected by finally, making the resource lifecycle less explicit on unexpected failure paths.
Run 2
Code Structure: Logically organized into setup, resource creation, expected serialization failure, resource closure, successful serialization, and cleanup. Nesting: Minimal, with only one straightforward try/catch. Clarity of intent: The descriptive test name and explanatory comments clearly communicate the expected behavior, though abbreviations such as s, sr, and CM reduce clarity. Code length: Appropriately concise for the scenario; the long test name and failure message are justified but slightly cumbersome. Action granularity: Generally one action per line, with a query-creation chain that remains easy to follow. Reading flow: Sequential execution and whitespace make the test natural to read. Manual cleanup rather than a finally block slightly weakens the structural clarity of resource management.
Run 3
Code Structure: The test logically progresses through setup, resource creation, expected serialization failure, resource closure, successful serialization, and cleanup. Nesting: Only a shallow try/catch interrupts an otherwise flat method. Clarity of intent: The descriptive test name and explanatory comments make the expected behavior clear, though abbreviations such as s, sr, and CM require interpretation. Code length: The method is reasonably concise for the scenario; the long name and failure message add some visual weight. Action granularity: Each statement performs one principal action, with no compressed multi-statement lines. Reading flow: Execution follows a natural chronological sequence, and comments explain the connection-release behavior and database-specific workaround. Manual cleanup rather than a finally block makes the lifecycle slightly less explicit when unexpected failures occur.