Sample

Buse/28

Human rating uses the original dataset scale.

DatasetBuse
Human2.87
Lines7

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett0.0020–1; higher is more readable
12.1Δ 17.2
Scalabrino0.480–1; higher is more readable
13.6Δ 15.7
Dorn0.4220–1; higher is more readable
28.3Δ 1.0
Mi0.4840–1; higher is more readable
37.4Δ 8.1
LLOC7Logical lines; fewer is more readable
4.0Δ 25.3
DeepSeek V4 Pro13.670–20; mean of three runs
44.4Δ 15.2
GPT-6.1 Sol14.330–20; mean of three runs
26.3Δ 3.0
BTTF0.430–1; higher is more readable
32.3Δ 3.0
Human2.871–5; original rating
29.3

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.330.343−10.901
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.634−6.952
Source linesThe number of non-empty source lines.7+2.8

Intercept 8.87 + feature contributions = -6.183 (log-odds).
Score = sigmoid(-6.183) = 0.002.

Score0.48

Feature contributions

FeatureValueContribution
(log-odds)
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.0−0.804
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.8+0.753
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.69+0.743
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.144−0.457
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.1+0.398
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.6.814−0.315

Intercept 0.07 + feature contributions = -0.315 (log-odds).
Score = sigmoid(-0.315) = 0.422.

Score0.484
Score7
Run 1

The code is fairly readable but has several issues. The method is short and its purpose is clear: iterate through runners, filter them, and remove those that shouldn't run. However, the structure could be improved — the loop uses a traditional Iterator pattern which is more verbose than a modern for-each with a collection.removeIf() approach. Nesting is shallow (one if-else inside a for loop), which is good. The action granularity is mostly one action per line, though the for-loop header packs initialization, condition, and increment together. The reading flow is natural: check filter condition, apply filter or remove. The main readability concern is the missing closing braces in the provided snippet, though this may be a truncation artifact. Variable naming (fRunners, iter, runner) is acceptable but could be more descriptive. Overall, the code is understandable but uses outdated iteration patterns that add unnecessary complexity.

Run 2

The code is moderately readable with clear intent (filtering runners based on a condition) and a flat structure with minimal nesting. However, there are notable issues: the for-loop declaration is cluttered and uses an archaic iterator style rather than a for-each loop, which slightly hampers readability. The action granularity is inconsistent—some lines have multiple operations (e.g., the for-loop header). Variable naming like `iter` and `fRunners` is somewhat cryptic. The code length is acceptable but could be more concise with a modern loop construct. Missing braces on the else block could invite future errors despite the indentation suggesting intent. Overall, the purpose is clear, but stylistic choices reduce readability and modern best practices are not followed.

Run 3

The code is fairly readable but has minor issues. The loop structure is straightforward, iterating over runners and applying a filter or removing the runner. However, the for-loop declaration is slightly compressed by placing the iterator declaration and condition on one line, reducing clarity. The action granularity is good, with each action on its own line inside the if-else. The purpose is clear: filter runners based on the shouldRun condition. The main readability issues are the missing closing brace (which may be a snippet issue) and the slightly dense for-loop header. Overall, the code is understandable but could be improved with a more conventional for-each loop or cleaner iterator declaration.

Run 1

Code Structure: The loop and conditional are logically organized, but missing closing braces leave the snippet incomplete. Nesting: Shallow nesting makes the control flow easy to follow. Clarity of intent: It clearly applies a filter to matching runners and removes nonmatching runners. Code length: Concise, without unnecessary statements. Action granularity: Each body statement performs one action; the loop header combines standard initialization and iteration checks. Reading flow: Sequential and natural, although inconsistent spacing, omitted conditional braces, and the abrupt ending reduce readability.

Run 2

Code Structure: A logical loop filters runners, but missing closing braces make the snippet incomplete. Nesting: Shallow loop and conditional nesting are easy to follow. Clarity of intent: Descriptive method and variable names clearly convey filtering, applying a filter to matching runners and removing others. Code length: Concise, with no unnecessary statements. Action granularity: Each body statement performs one action; the loop header conventionally combines initialization and iteration checks. Reading flow: The sequence is natural, though inconsistent assignment spacing and omitted conditional braces slightly reduce readability.

Run 3

Code Structure: The loop and conditional are logically organized, but missing closing braces make the snippet incomplete. Nesting: Shallow nesting keeps the control flow easy to follow. Clarity of intent: Filtering runners and removing those that should not run is clear, though the distinction between shouldRun and apply requires API knowledge. Code length: Concise, with no unnecessary statements. Action granularity: Each body statement performs one action; the loop header conventionally combines iteration setup and advancement. Reading flow: Sequential and natural, but inconsistent spacing around assignments and omitted conditional braces slightly reduce readability.