Sample

Dorn/java/220

Human rating uses the original dataset scale.

DatasetDorn
Human3.16
Lines30

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
49.9Δ 10.6
Scalabrino0.6210–1; higher is more readable
63.2Δ 23.9
Dorn0.3730–1; higher is more readable
30.9Δ 8.4
Mi0.4080–1; higher is more readable
40.4Δ 1.1
LLOC18Logical lines; fewer is more readable
38.4Δ 0.8
DeepSeek V4 Pro7.330–20; mean of three runs
24.8Δ 14.5
GPT-6.1 Sol110–20; mean of three runs
14.2Δ 25.1
BTTF0.5170–1; higher is more readable
49.0Δ 9.7
Human3.161–5; original rating
39.3

Views

Download official ZIP ↗

Select the downloaded ZIP or its extracted folder. Files stay in your browser.

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(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.713.138−23.534
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.113−7.67

Intercept 8.87 + feature contributions = -10.333 (log-odds).
Score = sigmoid(-10.333) = 0.

Score0.621

Feature contributions

FeatureValueContribution
(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.968+0.702
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.132−0.337
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.28−0.222
Indentation frequencyHow rapidly indentation changes from line to line.24+0.093
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.69+0.005

Intercept 0.07 + feature contributions = -0.519 (log-odds).
Score = sigmoid(-0.519) = 0.373.

Score0.408
Score18
Run 1

The code structure is moderately tangled with some duplicated blocks. It uses an infinite loop with a time-based timeout, which obscures intent. Nesting is shallow but the `catch (Exception e) { }` empty block hides errors and disrupts clarity. The code length is long for sequential Selennium steps; the polling loop appears twice, suggesting repetition. Action granularity is mostly one action per line, but the loop body mixes control-flow logic with sleep and visibility checks. Reading flow is natural, but the hard-coded 90-second timeout and 1000 ms sleep make the logic opaque. Better encapsulation of polling logic and explicit timeout variables would improve clarity. Overall, the code lacks intent-revealing abstractions and suppresses exceptions, reducing readability.

Run 2

The code exhibits several readability issues. Structure is moderately organized but contains duplicated polling loops and an empty catch block that hides exceptions. Nesting is shallow, which is good, but intent is unclear due to magic numbers (90, 30000) and vague actions like 'loadRequiredJavaScriptModules'. Code length is acceptable but action granularity is inconsistent — some lines combine multiple actions (e.g., clicking a link after setting variables) while others are separated. Reading flow is disrupted by an abrupt for-loop with no exit condition and incomplete logic at the end. Overall, the code lacks clarity and maintainability despite being syntactically simple.

Run 3

The code has some clarity issues. The for-loop pattern is repeated and lacks abstraction, making intent ambiguous. The empty catch block hides exceptions, and the use of magic numbers (90, 30000) reduces readability. Multiple actions are packed onto single lines in several places, and the mix of tabs and spaces for indentation slightly disrupts reading flow. However, the overall structure is linear and straightforward, with no deep nesting. Each major action is somewhat separated, but the repeated timeout loop and unclear method calls (e.g., loadRequiredJavaScriptModules) add confusion. The code is not heavily tangled, but the lack of helper functions for repeated patterns and the suppression of exceptions reduce its readability.

Run 1

Code Structure: The steps are sequential, but polling logic is duplicated instead of extracted into a helper, and the snippet ends mid-loop. Nesting: Moderate nesting within the polling loop adds some complexity. Clarity of intent: Selenium method names make navigation and interaction understandable, but magic timeout values, opaque selectors, and an empty exception handler obscure details. Code length: Individual statements are concise, though repeated waiting logic adds unnecessary length. Action granularity: Most statements perform one action, making individual operations easy to follow. Reading flow: The navigation sequence is natural, but inconsistent wrapping, silently ignored exceptions, and the incomplete final loop interrupt readability.

Run 2

Code Structure: The navigation and verification steps are logically ordered, but duplicated polling logic and an incomplete final loop weaken organization. Nesting: The polling loop has moderate nesting through timeout checks and a try/if block. Clarity of intent: Selenium method names communicate the test actions, but magic timeout values, an opaque element ID, and silently swallowed exceptions obscure details. Code length: The excerpt is reasonably short, though polling boilerplate could be extracted into a helper. Action granularity: Most statements perform one action, and wrapped arguments remain readable. Reading flow: Execution proceeds naturally from waiting to clicking and asserting, but the abrupt ending and repeated setup interrupt the flow.

Run 3

Code Structure: The test follows a recognizable sequence of waiting, navigating, and asserting, but duplicated polling logic and an unfinished loop weaken organization. Nesting: Moderately nested loops, conditionals, and try/catch blocks make waiting logic harder to scan. Clarity of intent: Selenium calls communicate the broad purpose, but magic timeout values, opaque selectors, and silently swallowed exceptions obscure details. Code length: The polling boilerplate is verbose and could be replaced with a reusable wait helper. Action granularity: Most statements perform one action per line, with sensible wrapping of longer calls. Reading flow: Execution is mostly chronological, but repeated module loading, inconsistent selector replacement, and the abruptly truncated ending interrupt readability.