Sample
Buse/42
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.075 | 0–1; higher is more readable | 36.4Δ 4.0 |
| Scalabrino | 0.666 | 0–1; higher is more readable | 40.9Δ 0.5 |
| Dorn | 0.584 | 0–1; higher is more readable | 49.5Δ 9.1 |
| Mi | 0.464 | 0–1; higher is more readable | 35.4Δ 5.1 |
| LLOC | 6 | Logical lines; fewer is more readable | 11.6Δ 28.8 |
| DeepSeek V4 Pro | 14.33 | 0–20; mean of three runs | 50.5Δ 10.1 |
| GPT-6.1 Sol | 10.33 | 0–20; mean of three runs | 3.5Δ 36.9 |
| BTTF | 0.516 | 0–1; higher is more readable | 51.5Δ 11.1 |
| Human | 3.08 | 1–5; original rating | 40.4 |
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. | 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.
| Score | 0.666 |
|---|
Feature contributions
| Feature | Value | Contribution (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.
| Score | 0.464 |
|---|
| Score | 6 |
|---|
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.