Sample

Scalabrio14

Human rating uses the original dataset scale.

DatasetScalabrino
Human3.56
Lines28

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
22.1Δ 23.4
Scalabrino0.1030–1; higher is more readable
7.0Δ 38.4
Dorn0.2190–1; higher is more readable
27.6Δ 17.8
Mi0.0120–1; higher is more readable
5.5Δ 39.9
LLOC17Logical lines; fewer is more readable
35.7Δ 9.8
DeepSeek V4 Pro110–20; mean of three runs
25.6Δ 19.8
GPT-6.1 Sol16.330–20; mean of three runs
42.5Δ 3.0
BTTF0.4430–1; higher is more readable
22.1Δ 23.4
Human3.561–5; original rating
45.5

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.1289.069−42.539
Source linesThe number of non-empty source lines.28+11.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.3.897−5.845

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

Score0.103

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.125−1.629
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.28+0.231
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.28−0.222
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.085+0.117
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.26.778−0.036

Intercept 0.07 + feature contributions = -1.271 (log-odds).
Score = sigmoid(-1.271) = 0.219.

Score0.012
Score17
Run 1

The code suffers from excessive nesting (two levels deep in the main validation logic) and multiple actions per line (annotation retrieval, index extraction, and bounds checking combined). While the method has a clear purpose, the intent is obscured by verbose string concatenation and unclear variable names like 'each' and 'numberOfUse'. The error messages are consistent but the construction is messy. The code lacks helper methods to extract bounds checking and duplicate detection into separate, focused operations. Reading flow is disrupted by the dense conditional block and mixed levels of abstraction. Overall, the code is functional but would benefit from flattening the structure, extracting helper methods, and improving variable naming.

Run 2

The code is generally readable but has some maintainability issues. The structure is logical, with clear validation steps separated into two loops. Nesting is acceptable (two levels), though the conditional logic could be simplified. Intent is clear – validating parameter indices for consistency. However, code length is somewhat excessive, particularly the long Exception messages that break the reading flow with awkward string concatenation. Action granularity is mostly one action per line, but the exception message construction is dense and hard to scan. The main readability improvements would be extracting the error message construction into a helper method and possibly simplifying the validation logic. Overall, the code is understandable but could benefit from refactoring for better clarity and conciseness.

Run 3

The code has a clear overall structure and purpose, but readability suffers from several issues. The nesting depth is moderate but not excessive. The main problems are: lack of blank lines between logical blocks, verbose and line-broken error message construction that disrupts reading flow, and primitive array usage for tracking indices which obscures intent. The magic number '-1' for array bounds checking is unclear. The code mixes validation logic with error message formatting, making the actual validation rules harder to discern. Action granularity is acceptable, but the long string concatenation and method calls within the error message are cluttered. Adding helper methods for error construction and using a Set or Map for index tracking would improve clarity significantly.

Run 1

Code Structure: Logically organized into superclass validation, index counting, and missing/duplicate checks. Nesting: Moderate nesting from the annotation guard, loops, and conditionals; an early return could flatten it. Clarity of intent: Descriptive method names and explicit error messages make validation rules clear, though 'each' and 'numberOfUse' are less precise variable names. Code length: Reasonably concise, but repeated size expressions and lengthy message construction add clutter. Action granularity: Statements generally perform one action per line; chained annotation access is slightly dense. Reading flow: The two-pass sequence is natural and easy to follow, although uneven indentation and awkwardly wrapped exception construction interrupt scanning.

Run 2

Code Structure: Logically separates superclass validation, index collection, and missing/duplicate checks into clear sequential phases. Nesting: Moderate nesting from the annotation guard, loops, and conditionals; an early return could flatten the method. Clarity of intent: Descriptive names and informative error messages make parameter-index validation easy to understand, although 'numberOfUse' is awkwardly named. Code length: Reasonably concise, but repeated size calculations and lengthy error-message construction add visual noise. Action granularity: Each statement performs one clear operation; chained annotation access remains understandable. Reading flow: Natural progression from checking index bounds to checking usage counts, with consistent formatting overall, though the multiline errors.add call interrupts the flow slightly.

Run 3

Code Structure: Logically organized into superclass validation, index collection, and checks for missing or duplicate indices. Nesting: Moderate nesting from the annotation guard, loops, and conditionals; a guard clause could flatten the method. Clarity of intent: Descriptive method and variable names plus explicit error messages make the validation purpose clear, though 'numberOfUse' is awkwardly named. Code length: Reasonably concise, but repeated size calculations and verbose string construction add clutter. Action granularity: Most statements perform one action, although chained annotation access and inline exception construction require extra parsing. Reading flow: The two-pass approach reads naturally, but long error-message lines and uneven formatting interrupt the flow.