Sample
Dorn/java/168
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.98 | 0–1; higher is more readable | 93.3Δ 8.1 |
| Scalabrino | 0.884 | 0–1; higher is more readable | 95.0Δ 9.7 |
| Dorn | 0.826 | 0–1; higher is more readable | 81.3Δ 3.9 |
| Mi | 0.771 | 0–1; higher is more readable | 95.8Δ 10.6 |
| LLOC | 2 | Logical lines; fewer is more readable | 93.7Δ 8.5 |
| DeepSeek V4 Pro | 6.67 | 0–20; mean of three runs | 20.9Δ 64.3 |
| GPT-6.1 Sol | 16.33 | 0–20; mean of three runs | 70.8Δ 14.5 |
| BTTF | 0.802 | 0–1; higher is more readable | 97.5Δ 12.3 |
| Human | 3.83 | 1–5; original rating | 85.2 |
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.66 | −6.99 |
| 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. | 60.944 | −2.011 |
Intercept 8.87 + feature contributions = 3.869 (log-odds).
Score = sigmoid(3.869) = 0.98.
| Score | 0.884 |
|---|
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. | 49.818 | +1.555 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 1 | −0.703 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 9.091 | −0.658 |
| 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.044 | +0.517 |
| 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. | 9.863 | −0.272 |
Intercept 0.07 + feature contributions = 1.555 (log-odds).
Score = sigmoid(1.555) = 0.826.
| Score | 0.771 |
|---|
| Score | 2 |
|---|
Run 1
The code is a fragment of a Java interface with Javadoc comments. Structure is unclear because the opening comment is truncated and the class/interface declaration is missing, making context ambiguous. Nesting is flat and action granularity is acceptable, but only one method implementation signature is shown entirely (setGadgetKey is cut off at its declaration). Clarity of intent for getServiceName is decent due to Javadoc, but the purpose of the whole snippet is unclear. Length is short but incomplete. Reading flow is disjointed due to the abrupt start and lack of surrounding code.
Run 2
The code snippet is a fragment of an interface with two method declarations. Structure is logical but incomplete, making overall readability difficult to assess. Nesting is flat. Clarity of intent is moderate: method names and Javadoc comments clearly describe purpose, but the first method's Javadoc is truncated, leaving context missing. Code length is concise. Action granularity is appropriate—one method per block, though multiple annotations and modifiers appear on single lines. Reading flow is natural for Java interfaces but disrupted by the orphaned comment opener. The main issues are the incomplete Javadoc and lack of surrounding context, which reduce clarity and score.
Run 3
The code is a fragment of an interface with two method declarations, but it lacks context such as class/interface declaration, imports, and annotations (only partial). The first method's Javadoc is incomplete (starts with `*/`), and the second method references `@AutoEscape` which is undefined here. This makes the intent ambiguous and the structure unclear. There is minimal nesting and the actions are simple, but the missing surrounding code severely hurts readability. The fragment is too short and incomplete to assess logical organization or reading flow meaningfully.
Run 1
Code Structure: Simple, logically separated interface method declarations, though the opening comment terminator lacks context. Nesting: No nesting, making the snippet easy to scan. Clarity of intent: Descriptive method names and a return-value comment communicate purpose; 'o auth' is awkward wording, and the setter lacks visible documentation. Code length: Concise, although the getter documentation repeats its name with little added information. Action granularity: Each declaration and annotation occupies its own line. Reading flow: Consistent spacing and conventional Java formatting provide a natural flow, slightly disrupted by the incomplete opening comment.
Run 2
Code Structure: Simple, clearly separated interface method declarations, though the opening orphaned comment terminator makes the snippet look incomplete. Nesting: No nesting, so the code is easy to scan. Clarity of intent: Method names and the return type communicate their purposes; the getter documentation helps, although 'o auth' is awkward terminology and the setter lacks visible documentation. Code length: Concise, with modest repetition in the getter's Javadoc. Action granularity: Each declaration and annotation occupies its own line. Reading flow: Conventional Java formatting and spacing support a natural flow, slightly disrupted by the truncated opening and missing surrounding interface context.
Run 3
Code Structure: The interface-style method declarations and Javadoc are logically organized, though the leading orphaned comment terminator makes the snippet appear incomplete. Nesting: There is no nesting, so it is easy to scan. Clarity of intent: The method names clearly indicate setting a gadget key and retrieving a service name; however, the awkward phrase 'o auth token' and unexplained @AutoEscape annotation reduce clarity slightly. Code length: The snippet is concise, although the getter documentation largely repeats its name. Action granularity: Each declaration and annotation occupies its own line. Reading flow: Consistent spacing and standard Java documentation conventions support natural reading, but the truncated opening disrupts the flow.