Sample
Scalabrio77
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 37.2Δ 54.3 |
| Scalabrino | 0.491 | 0–1; higher is more readable | 48.7Δ 42.7 |
| Dorn | 0.121 | 0–1; higher is more readable | 19.1Δ 72.4 |
| Mi | 0.65 | 0–1; higher is more readable | 86.4Δ 5.0 |
| LLOC | 20 | Logical lines; fewer is more readable | 25.9Δ 65.6 |
| DeepSeek V4 Pro | 15.33 | 0–20; mean of three runs | 66.6Δ 24.9 |
| GPT-6.1 Sol | 17.67 | 0–20; mean of three runs | 74.1Δ 17.3 |
| BTTF | 0.609 | 0–1; higher is more readable | 71.9Δ 19.6 |
| Human | 4.44 | 1–5; original rating | 91.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. | 955.582 | −31.534 |
| 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.806 | −7.208 |
Intercept 8.87 + feature contributions = -19.473 (log-odds).
Score = sigmoid(-19.473) = 0.
| Score | 0.491 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 0 | −0.804 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 1 | −0.703 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.148 | −0.499 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 25 | −0.153 |
| 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.279 | −0.07 |
| 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. | 85 | +0.065 |
Intercept 0.07 + feature contributions = -1.979 (log-odds).
Score = sigmoid(-1.979) = 0.121.
| Score | 0.65 |
|---|
| Score | 20 |
|---|
Run 1
The test method is logically structured into three clear phases: save, query, and delete. Each phase follows a consistent pattern of opening a session, beginning a transaction, performing an action, committing, and closing. Nesting is minimal and indentation is proper. Intent is clear—the test verifies that an empty IN list returns no results. Code length is reasonable for the three-phase test but could be shortened with a helper method. Action granularity is mostly one action per line, though some lines combine object creation with method calls. Reading flow is natural and sequential. Deductions come from minor redundancy in session handling and a few multi-action lines.
Run 2
The test method follows a logical, sequential structure and each action is clearly separated per line. However, the code mixes multiple phases of setup, execution, and cleanup within a single method with no helper methods, increasing cognitive load. The repeated openSession/beginTransaction/commit/close blocks create some duplication. Variable naming like 'results' is acceptable but could be more descriptive. Indentation is slightly inconsistent on the first annotation line, and the use of raw List type is discouraged in modern Java. Overall, the intent is clear but readability could be improved with smaller methods or setup/teardown extraction.
Run 3
The code demonstrates clear structure with three logical blocks: insert, query, and cleanup. The flat nesting and one-action-per-line style support readability. Intentions are evident through method names and inline comments via annotations. However, some repetitions (openSession, beginTransaction, commit, close) inflate length slightly, and variable reuse for 'session' slightly reduces clarity. Overall, it is concise for a test method, with a natural reading flow.
Run 1
Code Structure: Clearly organized into setup, query/assertion, and cleanup phases, separated by blank lines. Nesting: Flat execution with no nested control flow makes it easy to follow. Clarity of intent: The method name, annotations, query, and assertion clearly communicate the empty-IN-list test; the generic variable name 'results' and raw List slightly reduce clarity. Code length: Reasonably concise, though repeated session and transaction management adds boilerplate. Action granularity: Each statement performs one primary action, with straightforward method chaining. Reading flow: The sequence is natural and chronological, but reassigning the same session variable and manually repeating lifecycle operations introduce minor friction.
Run 2
Code Structure: Clearly organized into setup, query/assertion, and cleanup phases, separated by blank lines. Nesting: Flat execution with no nested control flow. Clarity of intent: The test name, annotations, empty IN query, and assertion make the purpose clear; the raw List type slightly reduces precision. Code length: Short and focused, although repeated session and transaction management adds boilerplate. Action granularity: Each statement performs one primary action, making execution easy to follow. Reading flow: Natural chronological progression from creating test data to checking results and deleting the data. Reusing the session variable slightly weakens phase separation, but overall readability is high.
Run 3
Code Structure: Clearly organized into setup, query/assertion, and cleanup phases, separated by blank lines. Nesting: Flat execution with no nested control flow. Clarity of intent: The test name, issue annotation, query, and assertion clearly communicate the empty-IN-list behavior being tested; the generic results variable and raw List slightly reduce precision. Code length: Compact overall, though repeated session and transaction lifecycle operations add boilerplate. Action granularity: Each statement performs one primary action; chained query execution remains straightforward. Reading flow: Natural chronological progression from creating test data to verifying behavior and deleting it. Explicit phase labels or lifecycle helpers could make the structure even clearer.