Sample
Dorn/java/157
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 42.9Δ 25.9 |
| Scalabrino | 0.576 | 0–1; higher is more readable | 55.0Δ 38.0 |
| Dorn | 0.286 | 0–1; higher is more readable | 22.3Δ 5.3 |
| Mi | 0.254 | 0–1; higher is more readable | 24.5Δ 7.5 |
| LLOC | 19 | Logical lines; fewer is more readable | 35.5Δ 18.5 |
| DeepSeek V4 Pro | 10 | 0–20; mean of three runs | 40.9Δ 24.0 |
| GPT-6.1 Sol | 12 | 0–20; mean of three runs | 19.9Δ 2.9 |
| BTTF | 0.558 | 0–1; higher is more readable | 62.7Δ 45.7 |
| Human | 2.68 | 1–5; original rating | 17.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) |
|---|---|---|
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 819.366 | −27.039 |
| 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. | 5.059 | −7.589 |
Intercept 8.87 + feature contributions = -13.758 (log-odds).
Score = sigmoid(-13.758) = 0.
| Score | 0.576 |
|---|
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 |
| 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. | 69.935 | +0.703 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 1 | −0.703 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 24 | −0.13 |
| 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.915 | +0.008 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.097 | +0.001 |
Intercept 0.07 + feature contributions = -0.915 (log-odds).
Score = sigmoid(-0.915) = 0.286.
| Score | 0.254 |
|---|
| Score | 19 |
|---|
Run 1
The code has a clear sequential structure with consistent patterns, but several issues hamper readability. The nesting is moderate but the `for` loop with blank condition and timeout logic is non-idiomatic. Intent is mostly clear - navigating a web app and checking for community presence - but the empty loop condition and magic numbers (90, 30000) obscure purpose. Code length is reasonable but repetitive. Action granularity is good with one action per line, though the 8-space indentation suggests copy-paste issues. Reading flow is disrupted by abrupt `continue` and the missing closing braces. The `RuntimeVariables.replace()` duplication could be extracted. Overall, the code reads like generated or recorded Selenium script rather than human-written maintainable code.
Run 2
The code demonstrates mixed readability. Structure is generally logical with a sequential UI automation flow, but the presence of a zero-condition infinite loop with timeout check is awkward and hurts clarity. Nesting is acceptable but the loop construct is confusing. Intent is mostly clear for UI actions, but the endless loop pattern obscures purpose. Code length is reasonable but somewhat verbose due to repeated waitForPageToLoad and loadRequiredJavaScriptModules calls. Action granularity is good - one action per line. Reading flow is natural until the loop, which disrupts comprehension. The indentation appears excessive initially but is consistent. Overall readable but the loop pattern and repetitive method calls reduce the score.
Run 3
The code shows adequate structure with separated selenium commands but has mixed quality. While variable names like 'community1Present' and 'second' are clear, the code lacks higher-level organization - there's no method extraction or logical grouping of related actions. Action granularity is mostly good with one action per line, but the nesting is problematic: an if statement containing a continue, and a for loop with a fail condition inside. The arbitrary magic numbers ('90', '30000', '2') reduce clarity. Reading flow is generally linear but could be improved with explanatory comments or helper methods for repeated patterns like navigation and JavaScript loading. The overall functionality is understandable but not exemplary.
Run 1
Code Structure: The navigation, search, and presence check follow a logical sequence, but repeated loading calls and label-based continuation weaken organization. Nesting: Mostly flat, with a simple conditional and a loop containing another conditional; nesting is manageable. Clarity of intent: Selenium actions convey the broad workflow, but brittle XPath selectors, the unexplained label value, and the incomplete timeout loop obscure details. Code length: Reasonably short, though repeated click/wait/module-loading sequences could be extracted into helpers. Action granularity: Each statement performs one main action, making individual steps easy to inspect. Reading flow: The sequential browser interactions read naturally, but excessive indentation, abrupt continuation, and the truncated ending interrupt comprehension.
Run 2
Code Structure: The Selenium steps are logically ordered, but repeated page-load and JavaScript setup calls obscure the overall structure. Nesting: Mostly flat, with simple conditionals and a loop; however, the snippet ends before the loop's behavior is clear. Clarity of intent: Navigation and searching are understandable, but brittle XPath selectors, the vague name community1Present, label = 2, and an unexplained continue make control flow ambiguous. Code length: Reasonably concise, though repeated setup could be extracted into a helper. Action granularity: Each statement performs one action, with line wrapping that generally preserves readability. Reading flow: The sequence naturally follows navigation, search, presence checking, and interaction, but abrupt control-flow changes, excessive initial indentation, magic timeout values, and the incomplete loop disrupt comprehension.
Run 3
Code Structure: Selenium operations follow a logical sequence, but repeated loading steps and an incomplete loop weaken organization. Nesting: Mostly flat, with shallow conditional and loop nesting. Clarity of intent: Navigation and search actions are understandable, but opaque XPath selectors, label = 2, and an unbounded loop obscure control flow. Code length: Reasonably concise, though repeated wait-and-load sequences could be extracted into a helper. Action granularity: Each statement performs one main action; multiline calls remain readable. Reading flow: The interaction sequence flows naturally, but excessive indentation, unexplained continue behavior, and the truncated ending interrupt comprehension.