Sample

Scalabrio105

Human rating uses the original dataset scale.

DatasetScalabrino
Human3.89
Lines11

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett0.0010–1; higher is more readable
74.9Δ 8.8
Scalabrino0.4680–1; higher is more readable
45.7Δ 20.4
Dorn0.4940–1; higher is more readable
56.8Δ 9.3
Mi0.2390–1; higher is more readable
52.3Δ 13.8
LLOC4Logical lines; fewer is more readable
93.7Δ 27.6
DeepSeek V4 Pro50–20; mean of three runs
0.0Δ 66.1
GPT-6.1 Sol17.330–20; mean of three runs
71.9Δ 5.8
BTTF0.6460–1; higher is more readable
81.4Δ 15.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.400−13.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.4.907−7.361
Source linesThe number of non-empty source lines.11+4.4

Intercept 8.87 + feature contributions = -7.291 (log-odds).
Score = sigmoid(-7.291) = 0.001.

Score0.468

Feature contributions

FeatureValueContribution
(log-odds)
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.11−0.357
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.9.841−0.272
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.81+0.234
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.11+0.168
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.104−0.065

Intercept 0.07 + feature contributions = -0.025 (log-odds).
Score = sigmoid(-0.025) = 0.494.

Score0.239
Score4
Run 1

The code is difficult to read due to a deeply tangled structure. It repeatedly calls six getter methods inside a loop, making the intent unclear and the line extremely long. The loop variable 'i' indexes multiple parallel arrays, which obscures the relationship between the data elements. Action granularity is poor—many operations are squeezed into a single line. The method name is somewhat descriptive, but the body lacks clarity. Overall, the code has poor structure, excessive nesting-free but sprawling expressions, and low readability.

Run 2

The method has a single logical purpose but is largely unreadable due to its monolithic structure. The loop body performs six distinct closure calls in a single statement, violating action granularity and making it difficult to scan. The repeated accessor calls (getSubclassPropertyNameClosure(), getSubclassPropertyTypeClosure(), etc.) are redundant, deeply indexed, and obscure the intent. The method signature and variable names have some clarity, but the implementation is verbose, repetitive, and hard to follow. Overall, the code is tangled and would benefit from extracting closures into local variables and calling a single well-named method per property.

Run 3

The code has several readability issues. The method name is clear, but the implementation is problematic: multiple getter calls to closure arrays are repeated inside the loop, making each line excessively long and hard to scan. The loop condition calls getSubclassPropertyNameClosure().length without caching, forcing readers to parse repeated method invocations. The action of calling propertyMapping.initPropertyPaths with seven arguments on one line violates the one-action-per-line principle and creates a dense, difficult-to-read call signature. While the overall structure is logically simple (a single loop with one operation), the lack of intermediate variables, line breaks, or explanatory comments makes the intent harder to grasp. Nesting is minimal, which is good, but the reading flow suffers from the long parameter list and repeated getter calls. Overall, the code needs refactoring for clarity.

Run 1

Code Structure: A single method with one loop is logically organized. Nesting: Only one shallow loop keeps complexity low. Clarity of intent: Descriptive method names clearly indicate property-path initialization, though parallel arrays and numerous positional arguments require careful matching. Code length: Concise, with no unnecessary logic; repeated getter calls add minor visual noise. Action granularity: One initialization call per iteration, with each argument on a separate line for easy scanning. Reading flow: Natural top-to-bottom progression and consistent formatting make the code easy to follow.

Run 2

Code Structure: A single focused method logically iterates through properties and initializes their mappings. Nesting: Only one loop, keeping control flow shallow. Clarity of intent: Descriptive method and accessor names communicate the purpose, though the many positional arguments and parallel arrays require careful matching. Code length: Concise, with no unnecessary logic, but repeated long accessor calls add visual noise. Action granularity: One initialization call per iteration; placing each argument on its own line helps readability. Reading flow: Straightforward top-to-bottom execution with consistent formatting, slightly hindered by the long argument list.

Run 3

Code Structure: A single method with one loop is logically organized. Nesting: Only one loop level keeps complexity low. Clarity of intent: Descriptive method names clearly communicate property-path initialization, though the long positional argument list and parallel arrays require careful alignment. Code length: Concise overall, but repeated closure getters add visual noise. Action granularity: One initialization call per iteration, with each argument on its own line, makes the operation easy to inspect. Reading flow: The loop and consistently ordered arguments read naturally, although long identifiers and uneven indentation slightly reduce scanability.