Sample
Scalabrio13
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 25.1Δ 20.4 |
| Scalabrino | 0.175 | 0–1; higher is more readable | 12.6Δ 32.9 |
| Dorn | 0.069 | 0–1; higher is more readable | 12.6Δ 32.9 |
| Mi | 0.036 | 0–1; higher is more readable | 17.6Δ 27.9 |
| LLOC | 13 | Logical lines; fewer is more readable | 53.0Δ 7.5 |
| DeepSeek V4 Pro | 15.67 | 0–20; mean of three runs | 72.9Δ 27.4 |
| GPT-6.1 Sol | 17 | 0–20; mean of three runs | 58.5Δ 13.1 |
| BTTF | 0.376 | 0–1; higher is more readable | 11.6Δ 33.9 |
| 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. | 1168.339 | −38.555 |
| Source linesThe number of non-empty source lines. | 22 | +8.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.237 | −6.355 |
Intercept 8.87 + feature contributions = -27.24 (log-odds).
Score = sigmoid(-27.24) = 0.
| Score | 0.175 |
|---|
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. | 147.909 | −2.6 |
| 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. | 1 | −0.703 |
| 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.081 | +0.151 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 20.799 | −0.119 |
Intercept 0.07 + feature contributions = -2.606 (log-odds).
Score = sigmoid(-2.606) = 0.069.
| Score | 0.036 |
|---|
| Score | 13 |
|---|
Run 1
The code is fairly readable overall: it has a clear linear flow, uses descriptive variable names, and includes useful error messages. However, issues with structure, unnecessary verbosity, and semi-ambiguous intent prevent a higher score. The method name is clear but the parameter-checking logic is slightly tangled. Nesting is low, which is good, but the exception-handling block is long and contains multiple actions per line. The intent of each step is mostly understandable, though the relationship between annotated fields and fParameters could be clearer. The method is longer than necessary, especially due to concatenated error messages. Action granularity is mixed—most lines do one thing, but the throw statements and field.set call combine multiple operations. The reading flow is natural but interrupted by long string concatenations and asymmetric indentation. Overall, the code is readable enough for maintenance but could be improved with smaller helper methods and more concise error handling.
Run 2
The code is quite readable overall. It follows a logical structure: validate parameters, instantiate test class, inject fields, return instance. The nesting is minimal, with only one try-catch block inside a loop. Intent is clear — perform field injection with parameterized values. However, readability suffers slightly from overly long lines, particularly the exception messages, and multiple operations are crammed into some lines, reducing action granularity. The reading flow is natural but could be improved with helper methods or extracted constants. Overall, it is well-organized and understandable, but the verbose exception handling and line lengths detract from clarity.
Run 3
The method has a clear, single purpose and follows a logical sequence: validate inputs, instantiate the test class, inject parameters, and return the instance. Nesting is minimal, with only one try-catch block. However, the error message construction is verbose and contains multiple string concatenations on single lines, reducing readability. The method name is descriptive, and the variable names are generally clear. Action granularity is mostly good, but the exception message could be extracted to a helper method. Overall, the code is readable but could be improved by simplifying the error handling and reducing line length in message construction.
Run 1
Code Structure: Logically organized into parameter-count validation, instance creation, field injection, and return. Nesting: Limited to a loop containing a try/catch, keeping complexity manageable. Clarity of intent: The method name and most variable names clearly convey field-based test initialization, though 'each' and 'iare' are less descriptive. Code length: Appropriately concise overall, but lengthy exception-message concatenations add visual clutter. Action granularity: Most statements perform one action, with intermediate variables making reflection operations easy to follow. Reading flow: Execution proceeds naturally from validation to construction and injection; long lines and uneven indentation slightly disrupt scanning.
Run 2
Code Structure: Logically organized into parameter-count validation, instance creation, field injection, and return. Nesting: Shallow overall, with only a try/catch inside the loop. Clarity of intent: The method name and descriptive variables make its purpose clear, although 'each' and 'iare' are less informative. Code length: Appropriately concise, but lengthy exception-message concatenations add visual clutter. Action granularity: Each statement performs one main action, with intermediate variables making reflection operations easy to follow. Reading flow: Execution proceeds naturally from validation to injection, though inconsistent indentation and long error-message expressions interrupt scanning.
Run 3
Code Structure: Logically organized into parameter-count validation, instance creation, field injection, and return. Nesting: Limited to a loop containing a try/catch, keeping complexity manageable. Clarity of intent: The method name and descriptive variables make its purpose clear, although 'each' and 'iare' are less informative. Code length: Compact overall, but long exception-message expressions add visual clutter and repeat parameter access. Action granularity: Most statements perform one clear action, with separate steps for retrieving fields, annotations, and indices. Reading flow: Execution follows a natural sequence; inconsistent indentation and lengthy string concatenations slightly disrupt scanning.