Sample

Dorn/java/183

Human rating uses the original dataset scale.

DatasetDorn
Human3.31
Lines30

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
39.0Δ 7.0
Scalabrino0.490–1; higher is more readable
40.3Δ 5.7
Dorn0.3690–1; higher is more readable
30.4Δ 15.6
Mi0.4690–1; higher is more readable
49.0Δ 3.1
LLOC21Logical lines; fewer is more readable
29.7Δ 16.3
DeepSeek V4 Pro15.330–20; mean of three runs
79.9Δ 34.0
GPT-6.1 Sol170–20; mean of three runs
80.4Δ 34.4
BTTF0.7070–1; higher is more readable
92.8Δ 46.8
Human3.311–5; original rating
46.0

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.933.615−30.809
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.713−7.069

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

Score0.49

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.61.935+1.042
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.0−0.804
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.132−0.341
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.30−0.268
Indentation frequencyHow rapidly indentation changes from line to line.16−0.184
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.937+0.009

Intercept 0.07 + feature contributions = -0.537 (log-odds).
Score = sigmoid(-0.537) = 0.369.

Score0.469
Score21
Run 1

The code follows a clear, consistent pattern of calling setters on `calendarImpl`, which makes it fairly readable. Each line represents a single action, and the structure is logical. However, the first block is unnecessarily repetitive: it manually copies values from getters to setters, which could be simplified with a copy method or builder pattern. The `compareTo` method is straightforward but contains redundant logic — the `value` variable is assigned, checked, and then returns 0, which could be simplified to a single return statement. The code is flat and easy to follow, but lacks abstraction and has minor inefficiencies. Overall, it's readable but could be improved with cleaner design patterns and reduced boilerplate.

Run 2

The code demonstrates clear intent and good structure: each setter call is on its own line, creating a flat, readable sequence. The action granularity is ideal, and the reading flow is natural. However, the repeated 'calendarImpl.set...' pattern is slightly verbose, and the compareTo method has redundant logic (the final 'return 0' is unreachable after 'return value', making the if-block pointless). Minor improvements like using a builder pattern or removing the redundancy would enhance readability further.

Run 3

The code is highly readable and follows a consistent, straightforward structure. The setter calls are organized logically, each on its own line, making the action granularity clear and the intent easy to understand. The nesting is minimal, with only one level in the compareTo method. The use of resetOriginalValues and the early return pattern in compareTo contribute to a natural reading flow. The code length is concise for what it accomplishes, avoiding unnecessary verbosity. However, the compareTo method could be simplified further by directly returning the comparison result, and the repeated getter/setter pattern might benefit from a builder or mapping approach, though this is a minor concern. Overall, the code is easy to follow and maintain.

Run 1

Code Structure: The field-copying sequence and comparison method are logically organized, though the snippet starts mid-method and lacks full context. Nesting: Only one shallow conditional makes the code easy to follow. Clarity of intent: Descriptive getters and setters clearly convey copying calendar properties, resetting original values, and comparing names. Code length: The setters are repetitive but straightforward; compareTo is unnecessarily verbose and could directly return getName().compareTo(calendar.getName()). Action granularity: Each statement performs one clear action. Reading flow: Consistent formatting, sequential assignments, and blank lines create a natural flow, with minor friction from redundant initialization and branching in compareTo.

Run 2

Code Structure: The property-copying sequence and comparison method are logically organized, although the snippet starts mid-method. Nesting: Only one shallow conditional keeps the code easy to follow. Clarity of intent: Descriptive getters and setters clearly convey copying calendar properties; compareTo clearly compares names. Code length: The setter sequence is repetitive but straightforward. The comparison method unnecessarily initializes value to zero and could directly return the comparison result. Action granularity: Each statement performs one action, with no compressed or compound operations. Reading flow: Consistent formatting and blank lines separate copying, resetting state, returning, and comparison logic naturally.

Run 3

Code Structure: Setter calls are logically grouped, followed by state reset and return, then a separate comparison method; the missing opening context slightly limits understanding. Nesting: Nearly flat, with only one simple conditional. Clarity of intent: Descriptive getters and setters clearly indicate field copying, and compareTo clearly compares calendar names. Code length: The setters are repetitive but straightforward; compareTo unnecessarily initializes value and branches when it could directly return the comparison result. Action granularity: Each statement performs one action on its own line. Reading flow: Consistent formatting and sequential operations make the code easy to follow, although the snippet begins mid-method.