Sample

Dorn/java/167

Human rating uses the original dataset scale.

DatasetDorn
Human2.76
Lines30

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
39.8Δ 20.1
Scalabrino0.5760–1; higher is more readable
55.0Δ 35.3
Dorn0.2490–1; higher is more readable
20.3Δ 0.6
Mi0.3230–1; higher is more readable
31.2Δ 11.4
LLOC20Logical lines; fewer is more readable
32.5Δ 12.7
DeepSeek V4 Pro9.330–20; mean of three runs
37.2Δ 17.4
GPT-6.1 Sol130–20; mean of three runs
30.6Δ 10.9
BTTF0.5670–1; higher is more readable
65.5Δ 45.7
Human2.761–5; original rating
19.8

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.879.055−29.009
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.223−7.834

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

Score0.576

Feature contributions

FeatureValueContribution
(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.71+0.658
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.26−0.176
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.107−0.098
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.875+0.008

Intercept 0.07 + feature contributions = -1.106 (log-odds).
Score = sigmoid(-1.106) = 0.249.

Score0.323
Score20
Run 1

The code is a linear sequence of Selenium UI actions with moderate structure but poor readability overall. It demonstrates an anti-pattern of manually repeating 'click, wait, load modules' blocks instead of encapsulating navigation into reusable helper methods. This inflates line count and obscures intent (e.g., 'loadRequiredJavaScriptModules()' is unclear). The polling loop is deeply nested (7 levels: for, if, try, if, catch) and uses an empty catch block plus a 'fail(timeout)' call, making control flow hard to follow. Action granularity is mostly one action per line, which is good, but multiple operations per logical step reduce clarity. Reading flow is disjointed due to repeated waits and vague helper calls. A refactor to extract navigation steps and use explicit wait utilities would significantly improve clarity.

Run 2

The code has a clear linear structure with repetitive Selenium interaction patterns, which aids in following the workflow. However, readability is reduced by the highly repetitive 'clickAt/waitForPageToLoad/loadRequiredJavaScriptModules' sequence, which could be abstracted into a helper method. The nesting is shallow, which is good, but the polling loop contains an infinite for-loop with a try-catch that swallows exceptions, making the intent slightly ambiguous. Code length is moderate, but action granularity is generally one action per line, improving clarity. The reading flow is natural, moving from navigation to form input to polling. Overall, it is functional and understandable, but the repetitive boilerplate and exception handling in the polling loop prevent it from being highly readable.

Run 3

The code has a mostly linear, flat structure with clear repeated actions (click, wait, load), which aids basic readability. However, several issues reduce clarity: excessive repetition without abstraction, hard-coded selectors and timeouts, and the use of `RuntimeVariables.replace()` on static strings obscures intent. The polling loop is convoluted — an infinite `for` with a timeout check and a `try-catch` that swallows exceptions makes the purpose harder to grasp. Action granularity is generally one action per line, but the repeated wait-and-load sequence could be extracted into a helper for better flow and reduced length. The reading sequence is logical but verbose, and lack of comments or named constants hurts maintainability.

Run 1

Code Structure: The navigation, search, and visibility polling form a logical sequence, but repeated page-load and JavaScript setup calls could be extracted into a helper. Nesting: Most code is flat; the polling loop introduces moderate nesting through conditional checks and exception handling. Clarity of intent: Selenium method names and link labels communicate the workflow, while positional XPath selectors, hard-coded values, an empty catch block, and a generic timeout message obscure details. Code length: Reasonably short, though repetitive synchronization calls add verbosity. Action granularity: Each statement performs one action, and wrapped arguments remain easy to follow. Reading flow: The sequential browser operations read naturally, but the open-ended loop and silently ignored exceptions interrupt that clarity. The supplied snippet also ends without closing the loop, making its completeness and final control flow unclear.

Run 2

Code Structure: The navigation, search, and visibility-check steps are logically ordered, but repeated page-load and JavaScript-loading calls clutter the structure. Nesting: Most code is flat; the polling loop adds moderate nesting through try and if blocks. Clarity of intent: Selenium actions clearly indicate the workflow, but positional XPath selectors, a generic timeout message, and an empty catch obscure details. The variable 'second' suggests elapsed time despite no visible delay. Code length: Reasonably short, though repeated sequences could be extracted into helpers. Action granularity: Each statement performs one primary action, with long calls sensibly wrapped. Reading flow: Execution follows a natural sequence, but repetition and silent exception handling interrupt readability. The snippet also ends without closing the loop, leaving its structure incomplete.

Run 3

Code Structure: The sequential Selenium workflow is logically organized, but repeated page-load and JavaScript setup calls could be extracted into a helper. Nesting: Most code is flat; the polling loop introduces moderate nesting through try and if blocks. Clarity of intent: UI labels make navigation understandable, while opaque XPath selectors, magic numbers, an empty catch block, and the incomplete snippet obscure details. Code length: Reasonably short, though repetitive setup adds unnecessary length. Action granularity: Each statement performs one main action, with sensible wrapping of longer calls. Reading flow: Navigation, search, selection, and visibility checking follow a natural order. However, the unbounded loop syntax and silent exception handling interrupt that flow, and the counter named second misleadingly suggests elapsed time despite no visible delay.