Sample

Dorn/java/173

Human rating uses the original dataset scale.

DatasetDorn
Human2.59
Lines50

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
35.1Δ 21.2
Scalabrino0.1460–1; higher is more readable
8.1Δ 5.8
Dorn0.0560–1; higher is more readable
6.1Δ 7.8
Mi0.0450–1; higher is more readable
7.5Δ 6.4
LLOC26Logical lines; fewer is more readable
18.8Δ 4.9
DeepSeek V4 Pro7.330–20; mean of three runs
24.8Δ 10.9
GPT-6.1 Sol110–20; mean of three runs
14.2Δ 0.3
BTTF0.5230–1; higher is more readable
50.7Δ 36.8
Human2.591–5; original rating
13.9

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.1240.851−40.948
Source linesThe number of non-empty source lines.50+20
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.199−7.798

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

Score0.146

Feature contributions

FeatureValueContribution
(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.127.882−1.751
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.0−0.804
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.51−0.769
Indentation frequencyHow rapidly indentation changes from line to line.40+0.646
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.40−0.497
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.49.884+0.287
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 = -2.817 (log-odds).
Score = sigmoid(-2.817) = 0.056.

Score0.045
Score26
Run 1

The code has significant readability issues. The structure is tangled: an incomplete opening statement (RuntimeVariables.replace("Add")) appears orphaned at the top, and multiple long, hardcoded XPath selectors are repeated verbatim, making the intent hard to follow. Nesting is mostly flat, which is good, but the duplicated polling loops for visibility checks add unnecessary length and obscure the purpose. Action granularity is mixed: some lines perform one logical action, but others cram method calls with long string arguments and nested RuntimeVariables.replace() calls. Reading flow is poor due to the abrupt start, repetition, and lack of extracted constants or helper methods for wait logic. The empty catch blocks hide failures, further reducing clarity. Overall, the code is functional but difficult to scan and maintain, requiring significant effort to understand the workflow and locate repeated UI elements.

Run 2

The code is a legacy Selenium test with poor readability. Structure: linear and repetitive, lacking helper methods or page objects. Nesting: moderate but the polling loops with try-catch increase complexity. Clarity: intent is somewhat clear (wait for element, perform actions) but obscured by hardcoded XPath and magic numbers. Length: excessively verbose due to repeated waits, XPath strings, and RuntimeVariables.replace() calls. Action granularity: mostly one action per line, which is a positive, but heavily cluttered. Reading flow: disrupted by frequent long XPath literals and duplicated polling logic, making it hard to follow the test scenario. Overall it is functional but not maintainable or human-friendly.

Run 3

The code has some readable aspects, such as a clear wait-for-element pattern and sequential steps for interacting with UI elements. However, it suffers from significant readability issues: repetitive timeout loops with identical structure, empty catch blocks that hide exceptions, deeply nested XPath selectors embedded directly in method calls, and inconsistent formatting/indentation. Action granularity is generally one action per line, which is good, but lines are overly long due to complex selectors. The reading flow is disrupted by scattered wait loops and lack of abstraction for common operations. The code appears to be generated or copied-pasted, as evidenced by repeated patterns and magic numbers. Overall, it is understandable but requires effort to parse and maintain.

Run 1

Code Structure: The sequence logically waits for a menu, selects a document type, fills fields, publishes, and checks success, but duplicated polling blocks and incomplete snippet boundaries weaken organization. Nesting: Moderate nesting within loops, try blocks, and conditionals adds complexity without being extreme. Clarity of intent: Selenium operations and descriptive field values make the workflow understandable, but positional XPath selectors, magic timeout values, and silently ignored exceptions obscure details. Code length: Repeated waits, selectors, and RuntimeVariables.replace calls add verbosity that helper methods and constants could reduce. Action granularity: Statements generally perform one action each, with sensible wrapping of long calls. Reading flow: The main interaction sequence reads naturally, but long selectors, the hard-coded file path, and repeated polling logic interrupt the flow.

Run 2

Code Structure: The document-upload test follows a logical sequence, but duplicated polling loops and incomplete snippet boundaries weaken organization. Nesting: Polling uses moderate nesting through loops, try/catch blocks, and conditionals. Clarity of intent: Selenium actions and descriptive document values communicate the workflow, but positional XPath selectors, hard-coded timeouts, and silently swallowed exceptions obscure details. Code length: Repeated waits and long selectors make the code more verbose than necessary; helper methods and named constants would improve concision. Action granularity: Most statements perform one action, with sensible line wrapping for long arguments. Reading flow: The sequential upload steps are easy to follow, but lengthy paths, repeated boilerplate, and the truncated beginning and ending interrupt the flow.

Run 3

Code Structure: The sequence logically waits for a menu item, verifies it, fills document fields, publishes, and checks success, but duplicated polling loops and incomplete snippet boundaries weaken organization. Nesting: Polling uses moderate nesting through loops, try blocks, and conditionals. Clarity of intent: Selenium method names and descriptive field values make the workflow understandable, but positional XPath selectors, magic timeout values, and silently swallowed exceptions obscure details. Code length: Repeated selectors, polling logic, and RuntimeVariables.replace calls add verbosity; the long hard-coded file path is distracting. Action granularity: Most statements perform one action, although some span multiple lines. Reading flow: The linear test workflow is natural, but repetitive waits, awkward wrapping, and the truncated opening and ending interrupt readability.