Sample

Scalabrio190

Human rating uses the original dataset scale.

DatasetScalabrino
Human3.78
Lines18

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett0.0030–1; higher is more readable
78.9Δ 19.8
Scalabrino0.620–1; higher is more readable
62.3Δ 3.3
Dorn0.2680–1; higher is more readable
35.7Δ 23.4
Mi0.0970–1; higher is more readable
35.2Δ 23.9
LLOC12Logical lines; fewer is more readable
57.3Δ 1.8
DeepSeek V4 Pro14.330–20; mean of three runs
54.3Δ 4.8
GPT-6.1 Sol170–20; mean of three runs
58.5Δ 0.5
BTTF0.5470–1; higher is more readable
55.8Δ 3.3
Human3.781–5; original rating
59.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.455.943−15.046
Source linesThe number of non-empty source lines.18+7.2
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.623−6.934

Intercept 8.87 + feature contributions = -5.91 (log-odds).
Score = sigmoid(-5.91) = 0.003.

Score0.62

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.108.556−0.933
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.13+0.576
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.1+0.398
Indentation frequencyHow rapidly indentation changes from line to line.13−0.287
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.16.627−0.177
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.081+0.152

Intercept 0.07 + feature contributions = -1.006 (log-odds).
Score = sigmoid(-1.006) = 0.268.

Score0.097
Score12
Run 1

The code is generally readable but has some repetitive structure. It defines two region names, then calls the same four operations (modification/access) on both listeners with both regions. The logical organization is clear, and the code is flat with no nesting. The intent to reset region usage state for both listeners is evident, though the method name 'getSawRegionModification' is misleading—it sounds like a getter but is being used as a setter/reset action. The code is concise but repetitive; a loop or helper method could reduce duplication while maintaining clarity. Each line performs one action, which is good, and the reading flow is natural and consistent. The log statement at the end adds clarity. Overall, it's readable but could benefit from minor refactoring to reduce repetition and improve method naming.

Run 2

The code is generally clear but has notable readability issues. Structure is straightforward and the purpose is understandable—resetting usage state for two regions across two listeners. However, it violates the 'one action per line' principle by stringing multiple method calls together in a single line (e.g., 'localListener.getSawRegionModification( stdName )'). This reduces readability by obscuring each distinct action. The method uses repetitive calls without helper methods or loops, leading to unnecessary verbosity and duplication. Nesting is minimal, but the grouping of listener calls is somewhat scattered: it processes localListener twice, then remoteListener twice, rather than grouping by listener or region for clearer flow. The naming is explicit but slightly verbose. A refactor using iteration over a list of regions or helper methods would improve readability by reducing repetition and aligning with 'one action per line'.

Run 3

The code is straightforward and readable. It has a clear structure, grouping operations by listener type and region name. Nesting is minimal, and each line performs a single action, which aids clarity. The intent—resetting region usage state for local and remote listeners—is evident from method and variable names. However, the repetition of method calls could be reduced with a helper method or loop, and the variable names (stdName, acctName) are slightly cryptic. The logging statement is clear. Overall, the code is easy to follow but lacks conciseness.

Run 1

Code Structure: Logically grouped by listener and operation, with blank lines separating related calls. Nesting: Completely flat, making execution easy to follow. Clarity of intent: The method name and final log indicate a reset, but getter-named methods obscure whether reading also clears state; abbreviated variable names slightly reduce clarity. Code length: Short overall, though repetitive calls add some verbosity. Action granularity: Each statement performs one action. Reading flow: Consistent ordering creates a natural, predictable sequence from local operations to remote operations and logging.

Run 2

Code Structure: Logically groups operations by listener and modification/access type. Nesting: Completely flat, making execution easy to follow. Clarity of intent: The method name and log indicate a reset, but getter-like calls with ignored return values obscure how state is actually cleared; abbreviated variable names slightly reduce clarity. Code length: Short overall, though repeated calls add minor verbosity. Action granularity: Each statement performs one clear action. Reading flow: Consistent ordering and blank-line grouping provide a natural progression from local to remote operations, followed by logging.

Run 3

Code Structure: Logically groups operations by listener and modification/access type. Nesting: Completely flat, making execution easy to follow. Clarity of intent: The method name and log message indicate a reset, but getter-style calls obscure whether reading these flags actually clears them; abbreviated variable names slightly reduce clarity. Code length: Short and manageable, though repeated calls introduce minor verbosity. Action granularity: Each statement performs one action. Reading flow: Consistent ordering and whitespace support straightforward top-to-bottom reading.