Sample

Dorn/java/126

Human rating uses the original dataset scale.

DatasetDorn
Human3.48
Lines10

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett0.9920–1; higher is more readable
96.9Δ 35.4
Scalabrino0.8240–1; higher is more readable
88.4Δ 26.8
Dorn0.7920–1; higher is more readable
76.9Δ 15.3
Mi0.8320–1; higher is more readable
98.6Δ 37.0
LLOC2Logical lines; fewer is more readable
93.7Δ 32.2
DeepSeek V4 Pro7.330–20; mean of three runs
24.8Δ 36.8
GPT-6.1 Sol14.670–20; mean of three runs
47.1Δ 14.5
BTTF0.6340–1; higher is more readable
81.6Δ 20.1
Human3.481–5; original rating
61.6

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)
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.

Score0.824

Feature contributions

FeatureValueContribution
(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.

Score0.832
Score2
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.