Sample

Scalabrio13

Human rating uses the original dataset scale.

DatasetScalabrino
Human3.56
Lines22

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
25.1Δ 20.4
Scalabrino0.1750–1; higher is more readable
12.6Δ 32.9
Dorn0.0690–1; higher is more readable
12.6Δ 32.9
Mi0.0360–1; higher is more readable
17.6Δ 27.9
LLOC13Logical lines; fewer is more readable
53.0Δ 7.5
DeepSeek V4 Pro15.670–20; mean of three runs
72.9Δ 27.4
GPT-6.1 Sol170–20; mean of three runs
58.5Δ 13.1
BTTF0.3760–1; higher is more readable
11.6Δ 33.9
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.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.

Score0.175

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.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.

Score0.036
Score13
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.