Sample
Dorn/java/126
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.992 | 0–1; higher is more readable | 96.9Δ 35.4 |
| Scalabrino | 0.824 | 0–1; higher is more readable | 88.4Δ 26.8 |
| Dorn | 0.792 | 0–1; higher is more readable | 76.9Δ 15.3 |
| Mi | 0.832 | 0–1; higher is more readable | 98.6Δ 37.0 |
| LLOC | 2 | Logical lines; fewer is more readable | 93.7Δ 32.2 |
| DeepSeek V4 Pro | 7.33 | 0–20; mean of three runs | 24.8Δ 36.8 |
| GPT-6.1 Sol | 14.67 | 0–20; mean of three runs | 47.1Δ 14.5 |
| BTTF | 0.634 | 0–1; higher is more readable | 81.6Δ 20.1 |
| Human | 3.48 | 1–5; original rating | 61.6 |
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) |
|---|---|---|
| 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.729 | −7.093 |
| Source linesThe number of non-empty source lines. | 10 | +4 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 28.074 | −0.926 |
Intercept 8.87 + feature contributions = 4.851 (log-odds).
Score = sigmoid(4.851) = 0.992.
| Score | 0.824 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Indentation frequencyHow rapidly indentation changes from line to line. | 1 | −0.703 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 11 | +0.647 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.034 | +0.614 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 87 | +0.599 |
| 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. | 10 | −0.27 |
| 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. | 87 | −0.02 |
Intercept 0.07 + feature contributions = 1.336 (log-odds).
Score = sigmoid(1.336) = 0.792.
| Score | 0.832 |
|---|
| Score | 2 |
|---|
Run 1
The code is incomplete and lacks grammatical structure surrounding the method declaration. The first line 'getLeecherCount();' is an unexplained method call with inconsistent indentation, followed by a Javadoc comment that is oddly positioned. The method signature is split across two lines unnecessarily, breaking natural reading flow. While the comment clearly explains the method's purpose, the code lacks a proper class context, return type placement is awkward, and overall structure feels disorganized. This appears to be a fragment rather than cohesive code.
Run 2
The code is very short but has several severe readability issues. The structure is poor: a method call appears before the Javadoc comment and method declaration, breaking logical organization and reading flow. The method name `getLeecherCount()` is a call, not a declaration, which is confusing in context. The Javadoc comment is separated from the method by a method call and blank lines. Nesting is not an issue, but the code length is incomplete — it appears to be an interface method declaration with a stray method call above it. Clarity of intent is low because the relationship between `getLeecherCount()` and `getBadNATCount()` is unclear. Action granularity is acceptable, but the overall reading flow is disjointed. The code likely should simply declare the method without the preceding unrelated call, and the Javadoc should directly precede the method signature.
Run 3
The code shows poor structure and readability. It begins with a stray method call `getLeecherCount();` placed before the target method declaration, causing confusion. There is excessive vertical whitespace and formatting inconsistencies, such as the return type `int` on its own line. The Javadoc comment is incomplete — the `@return` tag has no description, and the comment is awkwardly indented relative to the method. There is no enclosing class context, unclear separation between methods, and poor action granularity. While the method name is descriptive and the intent is partially understandable, the overall layout is disorganized, making the code hard to follow.
Run 1
Code Structure: The method declarations and documentation are logically arranged, but the fragment starts with an incomplete declaration. Nesting: No nesting, making it easy to scan. Clarity of intent: getBadNATCount() has a descriptive name and useful documentation explaining the disabled-check behavior; getLeecherCount() lacks context, and the @return tag is empty. Code length: Concise, though excess blank lines add visual noise. Action granularity: Each declaration is separate, but splitting the return type and method name across lines unnecessarily fragments a single declaration. Reading flow: Understandable overall, but inconsistent indentation, blank lines, and the split signature interrupt natural reading.
Run 2
Code Structure: Simple method declarations are logically organized, but the leading getLeecherCount(); appears incomplete without surrounding context. Nesting: No nesting, making the snippet easy to scan. Clarity of intent: getBadNATCount() has a descriptive name and documentation explaining its result, although the empty @return tag adds no information. Code length: Concise overall, with unnecessary blank lines. Action granularity: Each declaration is separate, but splitting the return type and method name across lines reduces visual cohesion. Reading flow: The documentation naturally precedes the method, but inconsistent indentation and fragmented formatting interrupt the flow.
Run 3
Code Structure: The method declarations and Javadoc are logically arranged, though the fragment lacks surrounding context. Nesting: There is no nesting, making the code easy to scan. Clarity of intent: getBadNATCount() has a descriptive name and documentation explaining its return value; getLeecherCount() lacks context, and the empty @return tag adds no information. Code length: The snippet is concise, but excess blank lines and the split method declaration add unnecessary vertical space. Action granularity: Each declaration is separate, with no multiple actions crowded onto one line. Reading flow: Uneven indentation and placing the return type and method name on separate lines interrupt an otherwise straightforward flow.