Sample
Dorn/java/146
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.003 | 0–1; higher is more readable | 63.5Δ 5.3 |
| Dorn | 0.167 | 0–1; higher is more readable | 12.3Δ 46.0 |
| Mi | 0.757 | 0–1; higher is more readable | 93.6Δ 35.4 |
| LLOC | 15 | Logical lines; fewer is more readable | 46.5Δ 11.7 |
| DeepSeek V4 Pro | 7.67 | 0–20; mean of three runs | 27.2Δ 31.1 |
| GPT-6.1 Sol | 11.67 | 0–20; mean of three runs | 16.9Δ 41.4 |
| BTTF | 0.554 | 0–1; higher is more readable | 61.3Δ 3.1 |
| Human | 3.44 | 1–5; original rating | 58.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) |
|---|---|---|
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 583.459 | −19.254 |
| 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.994 | −7.491 |
Intercept 8.87 + feature contributions = -5.875 (log-odds).
Score = sigmoid(-5.875) = 0.003.
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 |
| 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. | 74 | +0.531 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.142 | −0.438 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 29 | −0.245 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 30 | −0.026 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 29.76 | +0.006 |
Intercept 0.07 + feature contributions = -1.608 (log-odds).
Score = sigmoid(-1.608) = 0.167.
| Score | 0.757 |
|---|
| Score | 15 |
|---|
Run 1
The code exhibits poor readability due to several factors. The structure appears tangled with incomplete context (the opening of the first loop is missing), and the nested try-catch blocks with empty catch clauses make error handling ambiguous. The while loop with an empty condition and incremental timeout pattern is non-idiomatic and unclear. Each loop contains multiple actions, reducing action granularity. Variable names like 'second' are poorly chosen, and repeated code blocks for similar timeout checks suggest poor abstraction. The reading flow is disrupted by abrupt exception handling and unclear break/continue logic.
Run 2
The code exhibits moderate readability but suffers from several structural issues. It uses deeply nested control flow with try-catch blocks that silently swallow exceptions, reducing clarity of intent. The polling loops are somewhat disorganized, with unclear magic numbers (90 seconds, 1000ms) and redundant visibility checks. Action granularity is acceptable, but the empty catch blocks and repeated polling patterns make the code unnecessarily long and ambiguous. Logical organization is weak—no helper methods or comments to explain the sign-out/sign-in verification process. Nesting depth is moderate but could be flattened. The reading flow is interrupted by empty exception handlers and lack of abstraction. Overall, the code is understandable but would benefit from refactoring the polling logic into a reusable method and handling exceptions explicitly.
Run 3
The code lacks overall structure and starts mid-logic, making it difficult to understand context. It contains deeply repetitive polling loops with swallowed exceptions, weakening clarity and error handling. The intent is partially clear—waiting for UI elements—but the absence of helper functions or comments makes it ambiguous. Lines are mostly concise, but repeated try-catch blocks and long waits add unnecessary length. Each line generally performs one action, yet the empty catch blocks and nested conditionals hinder readability. Reading flow is disrupted by abrupt variable names like 'second' and magic numbers such as 90 and 1000, which would benefit from named constants or configuration. Overall, the code works but lacks maintainable structure, clear logging, and abstraction, resulting in a low readability score.
Run 1
Code Structure: The sign-out action and subsequent sign-in visibility check are logically sequenced, but the fragment starts mid-loop and duplicates polling logic. Nesting: Moderate nesting within the loop and try/if blocks is manageable. Clarity of intent: Selenium calls make the logout workflow apparent, but empty catch blocks hide failures, and hard-coded timeouts lack explanation. Code length: Fairly concise, though a reusable wait helper could reduce repetition. Action granularity: Each statement performs one action, supporting readability. Reading flow: Sequential actions and whitespace help, but incomplete opening context, unusual infinite-loop syntax, and silently swallowed exceptions interrupt understanding.
Run 2
Code Structure: The sign-out action and subsequent polling are logically ordered, but the snippet starts mid-block and duplicates polling logic. Nesting: Loop, try, and conditional blocks create moderate nesting that remains manageable. Clarity of intent: Selenium calls clearly indicate signing out and waiting for Sign In, but empty catch blocks conceal failures, and magic timeout values lack explanation. Code length: Relatively short, though a reusable wait helper could eliminate boilerplate. Action granularity: Each statement performs a single action, making individual steps easy to identify. Reading flow: The sequence is mostly natural, with whitespace separating stages, but the incomplete opening context, silent exception handling, and unconventional infinite-loop syntax interrupt comprehension.
Run 3
Code Structure: The sign-out action and subsequent polling are logically ordered, but the snippet begins inside an omitted loop, reducing structural completeness. Nesting: Loop, try, and if blocks create moderate nesting. Clarity of intent: Selenium calls clearly express signing out and waiting for the sign-in control, but empty exception handlers hide failures, and hard-coded timeout values lack explanation. Code length: Fairly concise, although repeated polling logic could be extracted into a helper. Action granularity: Each statement generally performs one action, aiding readability. Reading flow: Sequential actions and consistent formatting make the flow understandable, but exception-driven polling, an infinite-loop header, and missing opening context interrupt it.