Sample
Scalabrio14
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 22.1Δ 23.4 |
| Scalabrino | 0.103 | 0–1; higher is more readable | 7.0Δ 38.4 |
| Dorn | 0.219 | 0–1; higher is more readable | 27.6Δ 17.8 |
| Mi | 0.012 | 0–1; higher is more readable | 5.5Δ 39.9 |
| LLOC | 17 | Logical lines; fewer is more readable | 35.7Δ 9.8 |
| DeepSeek V4 Pro | 11 | 0–20; mean of three runs | 25.6Δ 19.8 |
| GPT-6.1 Sol | 16.33 | 0–20; mean of three runs | 42.5Δ 3.0 |
| BTTF | 0.443 | 0–1; higher is more readable | 22.1Δ 23.4 |
| Human | 3.56 | 1–5; original rating | 45.5 |
Views
Select the downloaded ZIP or its extracted folder. Files stay in your browser.
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (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.
| Score | 0.103 |
|---|
Feature contributions
| Feature | Value | Contribution (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.
| Score | 0.012 |
|---|
| Score | 17 |
|---|
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.