Sample

Scalabrio171

Human rating uses the original dataset scale.

DatasetScalabrino
Human3.89
Lines10

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
67.8Δ 1.8
Scalabrino0.7150–1; higher is more readable
74.4Δ 8.3
Dorn0.0470–1; higher is more readable
8.0Δ 58.0
Mi0.0770–1; higher is more readable
29.6Δ 36.4
LLOC7Logical lines; fewer is more readable
81.7Δ 15.6
DeepSeek V4 Pro14.670–20; mean of three runs
57.8Δ 8.3
GPT-6.1 Sol180–20; mean of three runs
83.7Δ 17.6
BTTF0.6010–1; higher is more readable
70.4Δ 4.3
Human3.891–5; original rating
66.1

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.468.24−15.452
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.603−6.905
Source linesThe number of non-empty source lines.10+4

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

Score0.715

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.157−2.985
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.10+0.682
Indentation frequencyHow rapidly indentation changes from line to line.8−0.46
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.057+0.386
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.7.943−0.299

Intercept 0.07 + feature contributions = -3.012 (log-odds).
Score = sigmoid(-3.012) = 0.047.

Score0.077
Score7
Run 1

The code is logically structured with clear intent, registering transaction factories with their short names and legacy class names. Nesting is flat, and each line performs a single action, which aids readability. However, the method is repetitive and moderately verbose: six nearly identical registration calls could be condensed using a helper method or loop over a data structure. The long lines exceed typical length guidelines, reducing scanability, and the grouping by factory type is implicit rather than aided by comments or structure. Overall, the code is straightforward but somewhat cluttered.

Run 2

The code is highly readable. Each strategySelector.registerStrategyImplementor call is on its own line, maintaining one action per line. Grouping by transaction factory type with blank lines creates clear logical sections. The method name clearly states its purpose. Repetition is acceptable here since it mirrors a simple registration pattern. Minor improvements could include extracting a helper method to reduce repetition, but the current structure is flat, concise, and easy to follow.

Run 3

The code is generally clear and straightforward, registering transaction factories with a strategy selector. It uses consistent formatting with one action per line and logical grouping by transaction type. However, readability is reduced by verbose hardcoded strings for legacy class names, making intent slightly less obvious. The method lacks a brief comment explaining why both short names and fully qualified names are registered. While structure is flat and nesting is minimal, the repeated pattern could be extracted into a helper method to reduce length and improve maintainability. Overall, the code is readable but would benefit from minor refactoring to eliminate redundancy and clarify the relationship between short names and legacy class names.

Run 1

Code Structure: Registrations are logically grouped by transaction factory, with blank lines separating groups. Nesting: The method is flat, with no nested control flow. Clarity of intent: The method name and explicit registration calls clearly communicate the purpose; the reason for registering legacy fully qualified names is not explained. Code length: The method is short, though repeated calls add minor duplication and individual lines are long. Action granularity: Each statement performs exactly one registration. Reading flow: Consistent ordering and formatting make the code easy to scan, with each factory's short-name registration followed by its fully qualified alias.

Run 2

Code Structure: Registrations are logically grouped by transaction factory, with blank lines separating groups. Nesting: The method is flat, with no branching or nested logic. Clarity of intent: The method name and explicit registration calls clearly communicate its purpose, although the reason for registering both short names and fully qualified aliases is implicit. Code length: Six calls are concise for this task; repetition is minor and makes the mappings explicit. Action granularity: Each line performs exactly one registration. Reading flow: Consistent argument order and formatting make the code easy to scan, though long lines slightly reduce readability.

Run 3

Code Structure: Registrations are logically grouped by transaction factory, with blank lines separating groups. Nesting: The method is flat, with no conditional or loop nesting. Clarity of intent: The method name and explicit registration calls clearly communicate the purpose; each factory receives a short-name alias and a legacy fully qualified alias. Code length: The method is concise, although repeated arguments and long lines add minor visual overhead. Action granularity: Each line performs exactly one registration. Reading flow: The consistent ordering and formatting make the code easy to scan. Minor readability limitations include unexplained legacy aliases and long registration statements.