Sample
Dorn/java/163
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.978 | 0–1; higher is more readable | 93.0Δ 0.6 |
| Scalabrino | 0.873 | 0–1; higher is more readable | 93.8Δ 1.3 |
| Dorn | 0.846 | 0–1; higher is more readable | 84.7Δ 7.8 |
| Mi | 0.834 | 0–1; higher is more readable | 98.9Δ 6.4 |
| LLOC | 12 | Logical lines; fewer is more readable | 53.6Δ 38.9 |
| DeepSeek V4 Pro | 16.33 | 0–20; mean of three runs | 87.9Δ 4.6 |
| GPT-6.1 Sol | 17 | 0–20; mean of three runs | 80.4Δ 12.1 |
| BTTF | 0.693 | 0–1; higher is more readable | 91.4Δ 1.1 |
| Human | 4.02 | 1–5; original rating | 92.5 |
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) |
|---|---|---|
| Source linesThe number of non-empty source lines. | 49 | +19.6 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 517.662 | −17.083 |
| Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value. | 5.052 | −7.578 |
Intercept 8.87 + feature contributions = 3.809 (log-odds).
Score = sigmoid(3.809) = 0.978.
| Score | 0.873 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 50 | −0.734 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.04 | +0.552 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 78.34 | +0.46 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 33 | +0.404 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| 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. | 79.96 | +0.278 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 48.815 | +0.273 |
Intercept 0.07 + feature contributions = 1.701 (log-odds).
Score = sigmoid(1.701) = 0.846.
| Score | 0.834 |
|---|
| Score | 12 |
|---|
Run 1
The code is well-structured and readable: a simple DTO with clear purpose, flat structure, minimal nesting, and concise one-action-per-line methods. The class follows a clean logical organization with getters and setters grouped together. The only minor weakness is the `hasError()` method, which uses an unnecessary if-else block instead of a simpler `return _exception != null;` expression. This adds slight verbosity without benefit. Overall, the code is straightforward and maintainable with no significant readability problems.
Run 2
The code is highly readable and follows standard Java conventions. It has a clear, logical structure with a single class, well-named getters/setters, and a straightforward boolean check. Nesting is minimal (only one if/else), clarity of intent is high, and actions are one per line. However, the hasError() method is unnecessarily verbose—it could simply return '_exception != null'. Also, the class is incomplete, missing a closing brace and any field declarations, which slightly disrupts the overall quality assessment.
Run 3
The code is clean and highly readable. It follows a standard JavaBean pattern with a simple, logical structure. The class is well-organized with clearly named getters and setters, each performing a single action. Nesting is minimal; the only conditional in hasError() uses a simple if-else that could be further simplified, but it does not harm readability. The intent of the class as a data holder for proxy responses is obvious from method names and types. Code length is appropriate and concise without unnecessary complexity. The reading flow is natural and straightforward. Minor deductions: the redundant if-else in hasError() and the missing closing brace in the snippet slightly detract, but overall the code is exemplary.
Run 1
Code Structure: Accessors and error checking are logically organized, but the snippet omits field declarations and the closing class brace. Nesting: Minimal; only hasError introduces a simple if/else. Clarity of intent: Descriptive method names make the response container's purpose clear, although Object provides little information about the result type. Code length: Mostly concise, but hasError could directly return _exception != null; the license header adds reading overhead without complicating the logic. Action granularity: Each statement performs a single action. Reading flow: Consistent formatting and straightforward methods support natural reading, though the incomplete ending interrupts it.
Run 2
Code Structure: Accessors and error checking are logically organized in a small response class, but the snippet omits field declarations and the class's closing brace. Nesting: Minimal; only hasError() contains a shallow conditional. Clarity of intent: Class and method names clearly communicate a response holding a result or exception, although Object provides little result-type information. Code length: Concise overall, but hasError() could simply return _exception != null; the license header adds reading overhead without affecting implementation clarity. Action granularity: Each statement performs one clear action. Reading flow: Consistent formatting and straightforward methods make the code easy to scan, though the incomplete ending interrupts the flow.
Run 3
Code Structure: Methods are logically organized as a simple response container, but the snippet omits field declarations and the closing class brace. Nesting: Minimal; only hasError introduces a shallow conditional. Clarity of intent: Clear method names communicate result and exception access, although Object provides little information about the result type. Code length: Mostly concise, but hasError could directly return _exception != null instead of using an if/else. Action granularity: Each statement performs one clear action. Reading flow: Consistent formatting and straightforward getters and setters make the code easy to scan; the incomplete ending slightly disrupts comprehension.