Sample

Scalabrio91

Human rating uses the original dataset scale.

DatasetScalabrino
Human4.22
Lines34

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
17.1Δ 65.8
Scalabrino0.3310–1; higher is more readable
29.1Δ 53.8
Dorn0.4340–1; higher is more readable
47.7Δ 35.2
Mi0.4150–1; higher is more readable
68.8Δ 14.1
LLOC20Logical lines; fewer is more readable
25.9Δ 57.0
DeepSeek V4 Pro15.330–20; mean of three runs
66.6Δ 16.3
GPT-6.1 Sol17.330–20; mean of three runs
71.9Δ 11.1
BTTF0.5660–1; higher is more readable
63.3Δ 19.6
Human4.221–5; original rating
82.9

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.1406.761−46.423
Source linesThe number of non-empty source lines.34+13.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.821−7.232

Intercept 8.87 + feature contributions = -31.185 (log-odds).
Score = sigmoid(-31.185) = 0.

Score0.331

Feature contributions

FeatureValueContribution
(log-odds)
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.103.971+0.873
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.103.882−0.735
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.30−0.268
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.34−0.167
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.112−0.145
Indentation frequencyHow rapidly indentation changes from line to line.23+0.058
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.32.6+0.046

Intercept 0.07 + feature contributions = -0.267 (log-odds).
Score = sigmoid(-0.267) = 0.434.

Score0.415
Score20
Run 1

The test method is logically structured, with clear sections separated by comments (control group, enabling filters, validation). Nesting is minimal and flat. Intent is mostly clear, though some comments (e.g., 'silly one') are informal. Code length is moderate but somewhat repetitive; repeated 'session.createQuery(queryString).setParameter(0, "steve").list()' could be extracted. Action granularity is generally one main action per line, but chained method calls combine query creation, parameter setting, and execution in a single line, reducing clarity. Reading flow is natural and sequential. Overall, the test is readable and maintainable despite minor verbosity and chains.

Run 2

The code is reasonably structured with a clear test sequence and explanatory comments that aid readability. Nesting is minimal, and the flow is mostly linear. However, readability suffers due to several factors: the method name is extremely long, there are repeated calls to create the same query and set the same parameter without extracting them into a helper or variable, and the lines involving query creation, parameter setting, and list fetching are overly long. This reduces clarity of intent and inflates code length. Action granularity is mixed—some lines combine multiple operations, while others are concise. The comments help, but the repeated long call chains disrupt natural reading flow.

Run 3

The test method is logically structured with clear phases: setup, control query, filter variations, and teardown. Nesting is minimal, and intent is generally clear through descriptive variable names and comments. The action granularity is mostly one action per line, aiding readability. However, there is some repetition in the query execution lines, and the method could be shortened slightly by assigning the query to a variable. The reading flow is natural, with comments guiding the logical progression. Overall, the code is quite readable but could be slightly more concise.

Run 1

Code Structure: Clearly organized into setup, baseline query, progressively applied filters, assertions, and cleanup. Nesting: Entirely flat, making execution easy to follow. Clarity of intent: The descriptive test name, query string, and comments explain the behavior being tested; generic names such as 'result' and informal comments slightly reduce precision. Code length: Appropriately short, although repeated query execution adds minor duplication. Action granularity: Statements generally occupy separate lines; fluent method chains combine closely related query and filter operations without obscuring their purpose. Reading flow: Natural chronological progression and consistent spacing make the changing expected result counts easy to track.

Run 2

Code Structure: Clearly organized into setup, baseline query, progressively applied filters, and cleanup, with whitespace separating stages. Nesting: Entirely flat, making execution easy to follow. Clarity of intent: The descriptive test name, query, comments, and assertions communicate the purpose well, although generic names such as result and informal comments slightly reduce precision. Code length: Reasonably concise, but repeated query execution and parameter binding add minor duplication. Action granularity: Each statement occupies its own line; fluent method chains combine closely related operations without obscuring intent. Reading flow: The chronological progression from an unfiltered control to increasingly restrictive filters is natural and coherent. Long lines and the lengthy method name create minor scanning friction.

Run 3

Code Structure: Clearly organized into setup, baseline query, successive filter scenarios, and cleanup. Nesting: Flat execution with no nested control flow makes it easy to follow. Clarity of intent: The descriptive test name, query constant, comments, and assertions communicate the purpose well, although informal comments and unexplained expected counts slightly weaken clarity. Code length: Reasonably concise, but repeated query execution could be extracted into a small helper. Action granularity: Each statement performs a coherent operation; fluent method chains remain short and readable. Reading flow: Scenarios progress naturally from unfiltered results to increasingly restrictive filters. Minor readability issues include the raw List type, generic result variable, and somewhat unwieldy test name.