Sample
Scalabrio82
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 15.6Δ 43.5 |
| Scalabrino | 0.672 | 0–1; higher is more readable | 66.8Δ 7.8 |
| Dorn | 0.154 | 0–1; higher is more readable | 21.1Δ 37.9 |
| Mi | 0.235 | 0–1; higher is more readable | 51.3Δ 7.8 |
| LLOC | 31 | Logical lines; fewer is more readable | 3.3Δ 55.8 |
| DeepSeek V4 Pro | 15.33 | 0–20; mean of three runs | 66.6Δ 7.5 |
| GPT-6.1 Sol | 17 | 0–20; mean of three runs | 58.5Δ 0.5 |
| BTTF | 0.513 | 0–1; higher is more readable | 43.2Δ 15.8 |
| Human | 3.78 | 1–5; original rating | 59.0 |
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. | 1454.892 | −48.011 |
| Source linesThe number of non-empty source lines. | 38 | +15.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. | 4.973 | −7.459 |
Intercept 8.87 + feature contributions = -31.4 (log-odds).
Score = sigmoid(-31.4) = 0.
| Score | 0.672 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 108 | +0.938 |
| 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. | 107.947 | −0.907 |
| 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.147 | −0.491 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 36 | −0.405 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 38 | −0.309 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 36.523 | +0.101 |
Intercept 0.07 + feature contributions = -1.706 (log-odds).
Score = sigmoid(-1.706) = 0.154.
| Score | 0.235 |
|---|
| Score | 31 |
|---|
Run 1
The code is moderately readable. The method name and JIRA annotation clearly state intent. Steps are logically grouped into setup, query, assertions, and cleanup, and each action is on its own line. However, nesting is minimal and structure is okay. Main issues: raw types (Session, List, HashMap) obscure intent and type safety, multiple actions per line are absent but variable reuse and repeated session handling add noise. The query is a long string but understandable. Overall, clear but could benefit from modern generics and helper methods to reduce duplication.
Run 2
The code is generally readable with a clear flow: setup, query, assertion, and cleanup. Each action is on its own line, and naming is descriptive (tiger, mother, zoo). The transaction/session lifecycle is explicit. However, readability is slightly reduced by the inline suppression annotation, the raw List and HashMap types, and the lack of blank lines separating logical phases. The query string is long but necessary. Overall structure is logical, nesting is flat, and intent is clear despite minor legacy-style blemishes.
Run 3
The code is generally readable with clear structure, separating setup, query testing, and cleanup into logical blocks. It maintains a flat structure with minimal nesting and each line performs a single action. Variable names are meaningful and the intent is clear. However, readability is slightly reduced by the use of raw types (HashMap, List) without generics, the @SuppressWarnings annotation suggesting type safety concerns, and some repetition in session management. The method is somewhat long for a test but remains coherent due to its linear flow. Overall, the code is easy to follow and understand despite minor issues with modern Java practices.
Run 1
Code Structure: The test is logically divided into setup, query/assertion, and cleanup, with blank lines separating phases. Nesting: The method is flat, with no nested control flow. Clarity of intent: The descriptive test name, issue annotation, and explicit query make the purpose clear, although the comment understates the assertion and the session variable 's' is terse. Code length: Reasonably concise, but repeated session and transaction management adds boilerplate. Action granularity: Each statement performs a distinct action; chained query execution remains easy to understand. Reading flow: Execution follows a natural chronological sequence. Raw collections and unchecked-warning suppression slightly reduce clarity, while the lack of explicit phase labels makes readers infer the three stages.
Run 2
Code Structure: The test follows a logical setup, query/assertion, and cleanup sequence, separated by blank lines. Nesting: The method is flat, with no nested control flow. Clarity of intent: The descriptive method name, issue annotation, and explicit query communicate the scenario well, although the syntax-checking comment understates the result assertion and the session variable 's' is terse. Code length: The code is reasonably concise, but repeated session and transaction management adds boilerplate. Action granularity: Each statement performs one clear action on its own line. Reading flow: Execution proceeds naturally from creating test data to verifying behavior and deleting it; clearer phase labels or helper methods could improve scanning.
Run 3
Code Structure: Setup, query/assertion, and cleanup are logically organized and separated by blank lines. Nesting: The method is flat, with no nested control flow. Clarity of intent: The descriptive test name, syntax-checking comment, and explicit query make the purpose clear, though the session variable 's' and raw collection types reduce clarity slightly. Code length: Reasonably concise, but repeated session and transaction management adds boilerplate. Action granularity: Each statement performs one primary action on its own line. Reading flow: Execution follows a natural setup-test-cleanup sequence, although visual separation within the entity setup would make it easier to scan.