Sample
Dorn/java/102
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 56.5Δ 13.6 |
| Scalabrino | 0.622 | 0–1; higher is more readable | 63.6Δ 20.7 |
| Dorn | 0.773 | 0–1; higher is more readable | 73.5Δ 30.6 |
| Mi | 0.696 | 0–1; higher is more readable | 83.0Δ 40.1 |
| LLOC | 11 | Logical lines; fewer is more readable | 57.0Δ 14.1 |
| DeepSeek V4 Pro | 11 | 0–20; mean of three runs | 46.4Δ 3.5 |
| GPT-6.1 Sol | 8 | 0–20; mean of three runs | 3.2Δ 39.7 |
| BTTF | 0.462 | 0–1; higher is more readable | 35.7Δ 7.2 |
| Human | 3.23 | 1–5; original rating | 42.9 |
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. | 649.85 | −21.445 |
| Source linesThe number of non-empty source lines. | 30 | +12 |
| 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.965 | −7.447 |
Intercept 8.87 + feature contributions = -8.022 (log-odds).
Score = sigmoid(-8.022) = 0.
| Score | 0.622 |
|---|
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. | 59.871 | +1.129 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 28 | +0.231 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 28 | −0.222 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 60 | +0.164 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.106 | −0.091 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 31 | −0.061 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 29.705 | +0.005 |
Intercept 0.07 + feature contributions = 1.226 (log-odds).
Score = sigmoid(1.226) = 0.773.
| Score | 0.696 |
|---|
| Score | 11 |
|---|
Run 1
The code has a clear class and method structure with a purposeful name, and author documentation is present. The intent - waiting for the Control Panel link with a timeout - is reasonably clear. However, readability suffers from a pointless while/switch construct with a label variable that never changes (the switch adds no value), an 'infinite for loop' pattern for the timeout that is non-obvious, and an empty catch block. The timeout loop is verbose compared to standard helper methods. Nesting is moderate (while > switch > case > for > try, but the switch does not contribute). The code length is unnecessarily long due to the obscure control flow. Reading flow is disrupted by the unusual labeled-loop style mimicking generated or legacy code rather than idiomatic Java.
Run 2
The code has clear intent with a named test method and basic structure, but several issues reduce readability. The state-machine pattern using a while switch with numeric labels (label = 1) is unconventional and makes control flow hard to follow—the switch-case adds indirection without clear benefit over simple sequential code or method calls. The polling loop with nested try-catch and empty exception handler obscures the wait-for-element logic and mixes concerns (timeout handling, exception swallowing, sleep). Magic numbers (90 seconds, 1000ms) lack named constants. The truncated snippet ends mid-loop, suggesting incomplete context. Action granularity is mostly reasonable but the inner conditionals and try-catch create moderate nesting. Overall, the pattern feels overly complex for what should be straightforward setup/teardown logic, reducing clarity and maintainability.
Run 3
The code lacks clear structure and intent. It uses an unnecessary while/switch pattern (label variable) that adds complexity without benefit. The polling loop with hardcoded 90-second timeout and empty catch block is cryptic and should be extracted into a helper method. Multiple actions are crammed into few lines, reducing readability. The method name suggests cleanup but performs navigation, creating ambiguity. Deep nesting from switch inside while, plus try/catch inside for loop, hurts reading flow. Missing meaningful variable names and magic numbers further degrade clarity. While some basic indentation is present, the overall approach is tangled and non-idiomatic.
Run 1
Code Structure: The setup and polling sequence are grouped logically, but the label-driven while/switch structure adds unnecessary complexity. Nesting: Multiple nested loops, a switch, a try/catch, and conditionals make the snippet difficult to scan. Clarity of intent: Opening the home page and waiting for the Control Panel link are clear, but the label variable and empty exception handler obscure control flow and failure behavior. Code length: The polling logic is verbose and would be clearer in a named wait helper. Action granularity: Most lines perform one action, which helps readability. Reading flow: Indentation and spacing are consistent, but deep nesting interrupts the natural sequence. The snippet ends abruptly with unclosed blocks, limiting assessment of the complete method.
Run 2
1. Code Structure: The setup and polling sequence are locally organized, but the label-driven while/switch structure adds unnecessary complexity. 2. Nesting: Multiple layers of loops, switch, try, and conditionals make the code deeply nested. 3. Clarity of intent: Opening the home page and waiting for the Control Panel link are clear; the label variable, empty catch block, and generic timeout message obscure broader intent and failure behavior. 4. Code length: The polling logic is verbose and could be expressed more concisely with a wait helper. 5. Action granularity: Statements generally perform one action per line, aiding readability. 6. Reading flow: The local sequence is natural, but control-flow scaffolding interrupts it. The snippet ends mid-block, preventing assessment of the complete method.
Run 3
Code Structure: A straightforward test setup and polling operation are obscured by a label-driven while/switch structure. Nesting: Multiple layers of loops, switch, try, and if statements make the code difficult to scan. Clarity of intent: Opening the home page and waiting for the Control Panel link are understandable, but the label variable and empty exception handler are unexplained. Code length: The polling logic is verbose and could be expressed more clearly with a dedicated wait helper. Action granularity: Statements generally perform one action per line, improving readability. Reading flow: Indentation and spacing help, but the indirect control flow disrupts a natural top-to-bottom reading. The supplied snippet is incomplete, ending before closing braces, which further limits readability and assessment.