Sample
Dorn/java/214
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 54.9Δ 16.2 |
| Scalabrino | 0.432 | 0–1; higher is more readable | 33.7Δ 5.0 |
| Dorn | 0.4 | 0–1; higher is more readable | 32.6Δ 6.1 |
| Mi | 0.291 | 0–1; higher is more readable | 28.4Δ 10.3 |
| LLOC | 4 | Logical lines; fewer is more readable | 82.7Δ 44.0 |
| DeepSeek V4 Pro | 17 | 0–20; mean of three runs | 93.5Δ 54.7 |
| GPT-6.1 Sol | 18.67 | 0–20; mean of three runs | 97.6Δ 58.9 |
| BTTF | 0.584 | 0–1; higher is more readable | 70.2Δ 31.5 |
| Human | 3.14 | 1–5; original rating | 38.7 |
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. | 428.774 | −14.15 |
| 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.777 | −7.166 |
| Source linesThe number of non-empty source lines. | 10 | +4 |
Intercept 8.87 + feature contributions = -8.446 (log-odds).
Score = sigmoid(-8.446) = 0.
| Score | 0.432 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 0 | −0.804 |
| 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. | 10 | +0.682 |
| 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.75 | −0.274 |
| 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. | 83 | +0.15 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.089 | +0.077 |
Intercept 0.07 + feature contributions = -0.404 (log-odds).
Score = sigmoid(-0.404) = 0.4.
| Score | 0.291 |
|---|
| Score | 4 |
|---|
Run 1
The code is highly readable. It has a clear, logical structure with two distinct methods that each perform a single, well-defined action: retrieving votes and counting votes. Nesting is minimal, with no conditional blocks or loops. The intent is unambiguous, as method names and parameter types clearly convey what each method does. The code is concise, avoiding unnecessary boilerplate or redundancy. Each method contains a single action—delegating to a local service—which aligns with the principle of one action per line. The reading flow is natural: method signature, throws clause, then return statement. The only minor drawback is the use of fully qualified class names, which slightly increases line length and hurts readability, but this may be required based on import conventions. Overall, the code is clean, maintainable, and easy to follow.
Run 2
The code is highly readable due to its clear structure, minimal nesting, and concise delegation to a service layer. Each method has a single straightforward action with explicit parameters and return types, making the intent obvious. The use of fully qualified names adds verbosity but improves clarity for generated or interface-heavy code. Reading flow is natural, and the methods are well-organized with no unnecessary complexity or deep nesting.
Run 3
The code is highly readable due to its simple, flat structure and clear intent. Each method delegates to a corresponding service method with a one-to-one mapping, making the purpose unambiguous. Naming is consistent and descriptive. The code is concise, with no unnecessary logic or nesting. Each method performs a single action, and the reading flow is natural—parameters, exception declaration, then delegation. Minor deductions: fully qualified class names and exception declarations add verbosity, and the lack of Javadoc or comments slightly reduces clarity for new readers. However, the self-explanatory method names mitigate this. Overall, this is a clean, maintainable facade pattern implementation.
Run 1
Code Structure: Two logically separated service-delegation methods are organized consistently. Nesting: There is no nested control flow; each method contains a single return statement. Clarity of intent: Method names clearly distinguish retrieving paginated question votes from counting them, and parameter names convey their roles. Code length: The implementation is concise, although fully qualified type and exception names add visual verbosity. Action granularity: Each statement performs one straightforward delegation. Reading flow: Consistent formatting and spacing make the methods easy to scan, though wrapped signatures slightly interrupt the flow.
Run 2
Code Structure: Two clearly separated methods consistently delegate to the underlying service. Nesting: No nested logic; each method contains a single return statement. Clarity of intent: Descriptive method and parameter names clearly indicate retrieving paginated question votes and counting them. Code length: Concise implementations, although fully qualified type and exception names add visual verbosity. Action granularity: Each statement performs one delegation and returns its result. Reading flow: Consistent formatting and related methods placed together make the code easy to follow.
Run 3
Code Structure: Two logically organized methods cleanly delegate to the underlying service. Nesting: Flat method bodies with no control-flow nesting. Clarity of intent: Descriptive method and parameter names clearly convey vote retrieval, pagination, and counting. Code length: Concise implementations; fully qualified type and exception names add minor visual verbosity. Action granularity: Each method contains a single return statement performing one delegation. Reading flow: Consistent formatting and placement of the related methods make the code easy to follow.