Sample

Buse/42

Human rating uses the original dataset scale.

DatasetBuse
Human3.08
Lines6

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett0.0750–1; higher is more readable
36.4Δ 4.0
Scalabrino0.6660–1; higher is more readable
40.9Δ 0.5
Dorn0.5840–1; higher is more readable
49.5Δ 9.1
Mi0.4640–1; higher is more readable
35.4Δ 5.1
LLOC6Logical lines; fewer is more readable
11.6Δ 28.8
DeepSeek V4 Pro14.330–20; mean of three runs
50.5Δ 10.1
GPT-6.1 Sol10.330–20; mean of three runs
3.5Δ 36.9
BTTF0.5160–1; higher is more readable
51.5Δ 11.1
Human3.081–5; original rating
40.4

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.215.493−7.111
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.444−6.666
Source linesThe number of non-empty source lines.6+2.4

Intercept 8.87 + feature contributions = -2.507 (log-odds).
Score = sigmoid(-2.507) = 0.075.

Score0.666

Feature contributions

FeatureValueContribution
(log-odds)
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.61.714+1.051
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.7+0.788
Indentation frequencyHow rapidly indentation changes from line to line.1−0.703
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.5.698−0.33
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.111−0.133

Intercept 0.07 + feature contributions = 0.337 (log-odds).
Score = sigmoid(0.337) = 0.584.

Score0.464
Score6
Run 1

The code is relatively concise and straightforward, but suffers from several clarity and structural issues. The method name 'removeProgram' implies removal only, but it also calls 'program.unmark(mMarker)', which is an additional side effect not communicated by the method name. The nested if statements increase nesting depth and obscure the main flow. The action of removing the node and unmarking the program are combined in one logical block, but the unmarking is conditional on mMarker being non-null. A guard clause or early return would flatten the structure and improve readability. The code is missing a closing brace in the provided snippet, indicating incomplete structure. Variable names like 'mChildNodes' and 'mMarker' use Hungarian notation, which is less common in modern Java and can reduce clarity. Overall, the logic is simple but the organization and intent are not immediately clear.

Run 2

The code is reasonably readable but has some structural issues. It is well-structured with clear method purpose and uses early return pattern to avoid deep nesting. Action granularity is mostly good with one main action per line. Naming is clear and intent is understandable. However, readability is negatively affected by incomplete code (closing braces missing), potential for combined operations, and the synchronized keyword adding complexity. The method appears concise but the snippet is incomplete, making full evaluation difficult. Nesting is limited to two levels, which is good. The flow is natural: find node, remove if found, then handle marker. Improvements could include extracting the marker handling logic and ensuring complete code blocks.

Run 3

The code is quite readable. It has a clear, logical structure with a single synchronized method that finds a node, removes it from a collection, and conditionally unmarks a program. Nesting is minimal—only one if-block with a nested if, which remains easy to follow. Intent is clear: remove a program and handle its marker if present. Length is concise and focused; no unnecessary lines. Action granularity is good, with one action per line. Reading flow is natural: locate node, remove node, then perform cleanup. The only minor deduction is that the method name could be slightly more explicit about side effects (e.g., unmarking), but overall it is highly readable.

Run 1

Code Structure: The visible steps are logically organized, but missing closing braces leave the method incomplete. Nesting: Two nested conditions add modest complexity without becoming deeply nested. Clarity of intent: The method name and operations clearly suggest removing a program node and unmarking the program, although the meaning of the false argument is unclear. Code length: The fragment is concise, with no obvious redundancy. Action granularity: Each statement performs one action, making individual steps easy to follow. Reading flow: Finding the node, checking its existence, removing it, and conditionally unmarking it form a natural sequence, but the abrupt ending prevents a complete understanding of the method.

Run 2

Code Structure: The visible statements are logically organized, but missing closing braces leave the method incomplete. Nesting: Two nested conditionals add modest complexity without excessive depth. Clarity of intent: The method name and calls clearly suggest removing a program node and clearing its marker, though the relationship between those operations is implicit. Code length: The fragment is concise, with no obvious redundancy. Action granularity: Each statement performs one action, aiding comprehension. Reading flow: Finding the node, checking it, removing it, and conditionally unmarking the program forms a natural sequence, but the abrupt ending prevents understanding the complete control flow.

Run 3

Code Structure: The visible steps are logically organized, but missing closing braces leave the method incomplete. Nesting: Two conditional levels are manageable and consistently indented. Clarity of intent: The method name and calls clearly suggest removing a program node and clearing its marker, although the false argument is unexplained. Code length: The fragment is concise with no obvious redundancy. Action granularity: Each statement performs one action. Reading flow: Finding the node, checking it, removing it, and conditionally unmarking the program follows a natural sequence, but the abrupt ending prevents reading the method as a complete unit.