Sample

Scalabrio82

Human rating uses the original dataset scale.

DatasetScalabrino
Human3.78
Lines38

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
15.6Δ 43.5
Scalabrino0.6720–1; higher is more readable
66.8Δ 7.8
Dorn0.1540–1; higher is more readable
21.1Δ 37.9
Mi0.2350–1; higher is more readable
51.3Δ 7.8
LLOC31Logical lines; fewer is more readable
3.3Δ 55.8
DeepSeek V4 Pro15.330–20; mean of three runs
66.6Δ 7.5
GPT-6.1 Sol170–20; mean of three runs
58.5Δ 0.5
BTTF0.5130–1; higher is more readable
43.2Δ 15.8
Human3.781–5; original rating
59.0

Views

Download official ZIP ↗

Select the downloaded ZIP or its extracted folder. Files stay in your browser.

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(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.

Score0.672

Feature contributions

FeatureValueContribution
(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.

Score0.235
Score31
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.