Sample
Dorn/java/104
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.323 | 0–1; higher is more readable | 78.6Δ 5.6 |
| Scalabrino | 0.58 | 0–1; higher is more readable | 56.6Δ 16.4 |
| Dorn | 0.246 | 0–1; higher is more readable | 19.8Δ 53.2 |
| Mi | 0.082 | 0–1; higher is more readable | 10.6Δ 62.4 |
| LLOC | 6 | Logical lines; fewer is more readable | 72.8Δ 0.1 |
| DeepSeek V4 Pro | 17.67 | 0–20; mean of three runs | 97.1Δ 24.1 |
| GPT-6.1 Sol | 19 | 0–20; mean of three runs | 98.9Δ 25.9 |
| BTTF | 0.697 | 0–1; higher is more readable | 91.9Δ 18.9 |
| Human | 3.63 | 1–5; original rating | 73.0 |
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.56 | −6.839 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 205.134 | −6.769 |
| Source linesThe number of non-empty source lines. | 10 | +4 |
Intercept 8.87 + feature contributions = -0.739 (log-odds).
Score = sigmoid(-0.739) = 0.323.
| Score | 0.58 |
|---|
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. | 112 | −1.079 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 0 | −0.804 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 10 | +0.682 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 9 | −0.426 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.065 | +0.313 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 9.77 | −0.273 |
Intercept 0.07 + feature contributions = -1.119 (log-odds).
Score = sigmoid(-1.119) = 0.246.
| Score | 0.082 |
|---|
| Score | 6 |
|---|
Run 1
The code is highly readable due to its clear structure and minimal nesting. The constructor logically initializes the command with a descriptive name and a single parameter, while the execute method follows a simple two-step flow: save the old value, then set the new one. Each line performs one action, making the intent obvious. The naming is consistent and self-documenting, and the code avoids unnecessary complexity or length. The only minor drawback is the lack of explicit validation or null checks, but this does not significantly affect readability. Overall, the code is concise, well-organized, and easy to follow.
Run 2
The code is highly readable. It follows a simple, logical structure: a constructor that initializes fields and an execute method that performs a clear two-step operation. Nesting is minimal, clarity of intent is high—both methods clearly state what they do. Code length is concise and appropriate, with no unnecessary lines. Each line performs a single action, maintaining good action granularity. The reading flow is natural: assign old value, set new value. Minor improvements could include a brief comment for context, but the code is self-explanatory as is.
Run 3
The code is clear and well-structured. It defines a simple command class with a constructor and execute method. The constructor succinctly initializes the command with a server and context path, and the execute method cleanly saves the old value before setting the new one. There is minimal nesting, clear intent, and concise length. Each line performs a single action, and the reading flow is natural. Minor deductions could be made for lack of validation or error handling, but the code itself is highly readable.
Run 1
Code Structure: The constructor initializes the command, and execute() performs the update in a logically organized sequence. Nesting: Both methods are flat, with no nested control flow. Clarity of intent: Descriptive method and variable names clearly communicate the context-path change and preservation of the previous value. Code length: The snippet is concise without unnecessary logic. Action granularity: Each statement performs one distinct action on its own line. Reading flow: Initialization followed by execution is natural, and execution reads clearly as save-then-update. Minor limitations are the long constructor signature and the absence of surrounding declarations showing where server and the saved value are defined.
Run 2
Code Structure: The constructor initializes the command, while execute performs the update, creating a clear separation of responsibilities. Nesting: No nested control flow makes the code easy to follow. Clarity of intent: Descriptive method and variable names clearly convey that the server manager context path is saved and replaced. Code length: The implementation is concise without unnecessary statements. Action granularity: Each statement performs one distinct action. Reading flow: Initialization followed by saving the previous value and setting the new value is natural. The only minor limitation is that field declarations and the use of the saved previous value are not visible in this snippet.
Run 3
Code Structure: Clearly separates initialization in the constructor from execution in execute(). Nesting: Flat, with no conditional or loop nesting. Clarity of intent: Descriptive names make setting the server manager context path and preserving its previous value easy to understand. Code length: Concise, with no unnecessary statements. Action granularity: Each statement performs a single action on its own line. Reading flow: Natural progression from construction to saving the old value and applying the new value. The omitted class and field declarations slightly limit standalone context.