Sample

Dorn/python/36

Human rating uses the original dataset scale.

DatasetDorn
Human3.01
Lines50

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
23.1Δ 7.8
Dorn0.6850–1; higher is more readable
63.5Δ 32.6
Mi0.2860–1; higher is more readable
27.9Δ 3.1
LLOC27Logical lines; fewer is more readable
16.9Δ 14.1
DeepSeek V4 Pro70–20; mean of three runs
22.7Δ 8.2
GPT-6.1 Sol150–20; mean of three runs
52.8Δ 21.9
BTTF0.4980–1; higher is more readable
44.8Δ 13.9
Human3.011–5; original rating
30.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.1523.978−50.291
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.4.221−6.331

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

Feature contributions

FeatureValueContribution
(log-odds)
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.42+0.716
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.42−0.543
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.75+0.489
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.75+0.406
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.49.829+0.287
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.084+0.125

Intercept 0.07 + feature contributions = 0.779 (log-odds).
Score = sigmoid(0.779) = 0.685.

Score0.286
Score27
Run 1

The code has a clear purpose but suffers from readability issues. The first line shows an inconsistent indentation error and references GetDisplayRect() repeatedly instead of reusing variables, adding clutter. The logic for calculating positions is moderately complex but not deeply nested. However, variable names like dx, dy, dw, dh, h, w, and tmo are cryptic and force the reader to track their meaning. The mixing of notification margin calculations with conditional appending to waitingFrames interrupts the flow. Some methods like CheckWaiting and Notify are clear and concise, but the main NotifyFrame method reads as disorganized due to variable reuse (w, h) and scattered positioning logic. Action granularity is mostly one action per line, which helps. Overall, the intent is understandable but the implementation lacks clarity through better variable naming, reduced repetition, and more consistent structure.

Run 2

The code suffers from multiple readability issues. The indentation is broken at the start (the first line is over-indented and the surrounding class/method context is missing), making structure hard to follow. There is heavy use of single-letter variables (dx, dy, dw, dh, w, h) that obscure intent. The conditional assignment for x nests multiple operations and is hard to parse. Action granularity is poor in several places — tuple unpacking and list appends are combined with conditions. The notification positioning logic mixes calculations with control flow without clear separation. The methods CheckWaiting and Notify are more readable, but the overall snippet lacks explanatory comments or meaningful variable names. Reading flow is disrupted by the abrupt start and inconsistent naming conventions. While the code is relatively concise, it prioritizes brevity over clarity, making it difficult to understand without significant context.

Run 3

The code lacks proper structure and clarity. It begins mid-function with an orphaned indented line, indicating missing context or broken control flow. The computational logic for positioning frames is tangled: multiple coordinate variables (dx, dy, dw, dh, bottom, w, h) are manipulated with opaque arithmetic and inconsistent use of margins. Nesting is moderate, but the lack of helper functions makes the positioning logic hard to follow. Variable names like 'tmo' and 'frm' are abbreviated, reducing readability. The loop both iterates over existing frames and conditionally appends to another list, mixing responsibilities. Separation of actions per line is adequate, but the overall reading flow is disorganized due to the missing opening, unclear indentation, and abrupt transitions between methods. No comments explain the coordinate calculations or margin logic. The code would benefit from extracting layout logic, using descriptive variable names, and adding clarifying comments.

Run 1

Code Structure: Notification placement, queue processing, and creation are logically separated into methods, but the excerpt starts mid-block and ends with an incomplete method. Nesting: Shallow loops and conditionals, with an early return, keep complexity low. Clarity of intent: Method names and notification-related attributes communicate purpose, though abbreviated variables such as frm and tmo and unexplained coordinate calculations require interpretation. Code length: Mostly concise, with little unnecessary code; repeated GetDisplayRect calls slightly reduce clarity. Action granularity: Most lines perform one operation, and tuple unpacking groups related values appropriately. Reading flow: Placement, registration, layout, and display follow a natural sequence, aided by whitespace. The initial indentation and truncated context interrupt that flow.

Run 2

Code Structure: Notification positioning, queue processing, and notification creation are logically separated into methods, but the excerpt begins mid-block and ends with an incomplete method. Nesting: Shallow loops and conditionals, plus an early return, keep complexity manageable. Clarity of intent: Method names and notification-related attributes communicate purpose, while abbreviations such as frm, tmo, and coordinate variables require interpretation. The parent-dependent positioning formula is not explained. Code length: Generally concise, although repeated display-rectangle access and unused loop variables introduce minor noise. Action granularity: Most lines perform one action; tuple unpacking and dimension arguments group closely related values appropriately. Reading flow: Spacing and sequential operations make the main logic easy to follow, but the truncated boundaries and unexplained geometry calculations interrupt comprehension.

Run 3

Code Structure: Notification placement, waiting-queue processing, and notification creation are logically separated, though the excerpt starts mid-block and ends with an incomplete method. Nesting: Shallow loops and conditionals, plus an early return, keep complexity manageable. Clarity of intent: Descriptive method and attribute names and brief docstrings explain the overall purpose, but abbreviations such as frm, tmo, and dw and unexplained coordinate calculations reduce clarity. Code length: Mostly concise, with little unnecessary code; the width conditional could be expressed more directly using max(). Action granularity: Most lines perform one clear action, and tuple unpacking is appropriate. Reading flow: Placement calculations lead naturally into sizing, registration, layout, and display, but the truncated boundaries and repeated display-rectangle lookup interrupt comprehension.