Sample

Scalabrio160

Human rating uses the original dataset scale.

DatasetScalabrino
Human4.33
Lines10

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett0.4060–1; higher is more readable
90.5Δ 2.5
Scalabrino0.5640–1; higher is more readable
55.8Δ 32.2
Dorn0.4850–1; higher is more readable
55.3Δ 32.7
Mi0.7920–1; higher is more readable
97.5Δ 9.5
LLOC5Logical lines; fewer is more readable
91.2Δ 3.3
DeepSeek V4 Pro12.670–20; mean of three runs
35.2Δ 52.8
GPT-6.1 Sol17.670–20; mean of three runs
74.1Δ 13.8
BTTF0.7370–1; higher is more readable
96.0Δ 8.0
Human4.331–5; original rating
87.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)
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.542−6.812
Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones.195.042−6.436
Source linesThe number of non-empty source lines.10+4

Intercept 8.87 + feature contributions = -0.379 (log-odds).
Score = sigmoid(-0.379) = 0.406.

Score0.564

Feature contributions

FeatureValueContribution
(log-odds)
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.1+1.001
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
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.067+0.29
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.8.798−0.287
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.9+0.214
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.82.8+0.158

Intercept 0.07 + feature contributions = -0.06 (log-odds).
Score = sigmoid(-0.06) = 0.485.

Score0.792
Score5
Run 1

The code is fairly readable with clear intent, good action granularity, and reasonable structure. It is concise and flat with minimal nesting. However, the method name is long, and the empty catch block is slightly ambiguous without a comment. The sequence of actions flows logically, but the unexplained catch and method name length slightly reduce clarity.

Run 2

The code is relatively short and each line performs a single action, which helps with granularity. However, the structure is confusing: the method name is long and mixes concerns (timeout vs exception). The try-catch block swallows a Throwable without any comment or assertion, making intent ambiguous. The nesting is shallow, but the logic flow is disorganized—the first call's exception is silently ignored, then a second call is made with a custom wait duration, which does not clearly explain why this should trigger a timeout. The test's purpose is hard to grasp without additional context, and the method name doesn't match the body's behavior. Overall, the code lacks clarity and natural reading flow.

Run 3

The code is generally readable but has some issues. The method name is long but descriptive, clearly conveying intent. Structure is logical: set up expectation, execute first call (expecting and swallowing a RuntimeException), then execute the timed call. Nesting is minimal with only one try-catch block. However, the empty catch block with just a comment-like variable name is slightly awkward; using a more explanatory comment or assert would improve clarity. The second call 'evaluateWithWaitDuration(TIMEOUT + 50)' is concise but could benefit from a brief comment explaining why 50ms is added. Overall, the code follows a clear test pattern (arrange-act-assert), though the empty catch and unexplained timing constant slightly reduce readability.

Run 1

Code Structure: The test is logically organized into expectation setup, first-call execution, and second-call verification. Nesting: A single try-catch keeps nesting shallow. Clarity of intent: The descriptive method name and helper names explain the scenario, although the empty catch block leaves intentional exception suppression implicit, and catching Throwable is broad. Code length: Short and focused, with no unnecessary statements. Action granularity: Each statement performs one clear action. Reading flow: Execution proceeds naturally in test order, though the hard-coded timeout message alongside TIMEOUT + 50 makes the timing relationship slightly less transparent.

Run 2

Code Structure: The test is logically organized into expectation, first call, and second call. Nesting: A single try-catch keeps nesting shallow. Clarity of intent: The descriptive method name explains the scenario, but the empty catch block and broad Throwable handling leave the intentionally ignored exception implicit. Code length: The test is concise, though its method name is lengthy. Action granularity: Each statement performs one action. Reading flow: Execution follows a natural sequence, with only the unexplained TIMEOUT + 50 margin slightly interrupting understanding.

Run 3

Code Structure: The test logically arranges the expected timeout, first failing call, and second delayed call. Nesting: A single try-catch keeps nesting shallow. Clarity of intent: The descriptive method name explains the scenario, although catching Throwable with an empty body obscures whether the first exception is verified. Code length: Compact, with little unnecessary code; the long method name is informative. Action granularity: Each statement performs one action. Reading flow: Execution follows the test scenario naturally, though the hard-coded 100 in the expected message and TIMEOUT + 50 require readers to infer their relationship.