Sample

Scalabrio125

Human rating uses the original dataset scale.

DatasetScalabrino
Human2.89
Lines20

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
48.7Δ 36.9
Scalabrino0.2620–1; higher is more readable
22.6Δ 10.8
Dorn0.6290–1; higher is more readable
68.8Δ 57.0
Mi0.1480–1; higher is more readable
41.2Δ 29.4
LLOC12Logical lines; fewer is more readable
57.3Δ 45.5
DeepSeek V4 Pro150–20; mean of three runs
61.6Δ 49.7
GPT-6.1 Sol170–20; mean of three runs
58.5Δ 46.7
BTTF0.4650–1; higher is more readable
28.6Δ 16.8
Human2.891–5; original rating
11.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.767.564−25.33
Source linesThe number of non-empty source lines.20+8
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.326−6.489

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

Score0.262

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
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.1+0.398
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.08+0.161
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.18.744−0.148
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.89−0.104
Indentation frequencyHow rapidly indentation changes from line to line.20−0.045

Intercept 0.07 + feature contributions = 0.527 (log-odds).
Score = sigmoid(0.527) = 0.629.

Score0.148
Score12
Run 1

The code is generally well-structured with clear intent. It has a single responsibility: creating a timeout exception, optionally with stuck thread details. The nesting depth is shallow (one level), maintaining a flat structure. Action granularity is mostly one action per line, aiding readability. The use of explanatory variable names like 'stuckThread' and 'currThreadException' improves clarity. Minor issues include slight formatting inconsistency in the MultipleFailureException constructor and the line-split exception message, but these don't significantly impair readability. The method length is reasonable, and the reading flow follows a logical sequence: get stack trace, find stuck thread, build exception, handle stuck thread case. Overall, the code is readable and maintainable.

Run 2

The code is moderately readable but has several issues. Structure is logical with clear branches, but nesting is minimal and flow is mostly natural. Clarity of intent is decent, though the fLookForStuckThread condition and getStuckThread usage are not self-explanatory. Code length is acceptable but some lines are too long, especially the MultipleFailureException construction and the String.format call, reducing readability. Action granularity is mixed: some lines combine multiple operations (e.g., setStackTrace then interrupt), while others are clean. The stuckThreadException creation is awkwardly formatted with a space before the opening parenthesis. Variable naming is generally clear, but abbreviations like 'fLookForStuckThread' and 'fTimeout' add friction. Overall it's understandable but could benefit from tighter formatting, shorter lines, and more descriptive naming.

Run 3

The code is generally readable with clear intent and logical structure. It has a single responsibility (creating a timeout exception), uses flat nesting with only one level of if-else, and maintains one action per line in most places. Variable names are descriptive (e.g., stuckThread, currThreadException). However, readability is slightly reduced by the long string-formatting line, the awkward ternary operator for stuckThread, and the questionable check 'if (stackTrace != null)' since getStackTrace() always returns non-null. The method also mutates state (thread.interrupt()) inside an exception-building method, which slightly muddies its purpose. The conditional variable declaration pattern (stuckThread = condition ? method() : null) could be clearer with explicit initialization. Overall, it's solid but could be tightened for better clarity.

Run 1

Code Structure: Logically organized into collecting thread information, creating a timeout exception, and optionally reporting a stuck thread. Nesting: Shallow conditional blocks make it easy to follow; the final else is unnecessary after a return. Clarity of intent: The method and most variable names clearly convey their purpose, though legacy f-prefixed fields and the conditional interruption slightly obscure intent. Code length: Concise, with no substantial repetition. Action granularity: Each statement performs a distinct action, although exception construction embeds message formatting. Reading flow: Execution proceeds naturally from gathering information to returning the appropriate exception. Inconsistent spacing and awkward line breaks around exception constructors slightly reduce readability.

Run 2

Code Structure: Logically separates timeout exception creation, stack-trace handling, and optional stuck-thread reporting. Nesting: Shallow conditionals make the method easy to follow. Clarity of intent: Descriptive names and exception messages communicate the purpose, though interrupting the thread is a side effect not obvious from the method name. Code length: Compact overall; the final else is unnecessary after a return. Action granularity: Each statement performs one main action, with straightforward expressions. Reading flow: Follows a natural sequence from collecting diagnostic information to returning an exception, but inconsistent spacing and awkward line breaks around exception construction slightly disrupt readability.

Run 3

Code Structure: Logically organized into timeout exception creation, stack-trace handling, and optional stuck-thread reporting. Nesting: Shallow conditionals make the control flow easy to follow; the final else is unnecessary after a return. Clarity of intent: The method name, descriptive variables, and exception messages communicate its purpose, though interrupting the thread is a side effect not suggested by the method name. Code length: Appropriately concise, with minor opportunities to simplify formatting and the final return. Action granularity: Each statement performs a distinct action; wrapped expressions remain understandable. Reading flow: Mostly natural and sequential, but inconsistent spacing and awkward line breaks around exception construction slightly disrupt readability.