Sample

Scalabrio104

Human rating uses the original dataset scale.

DatasetScalabrino
Human3.89
Lines14

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett0.0010–1; higher is more readable
75.9Δ 9.8
Scalabrino0.6850–1; higher is more readable
68.8Δ 2.8
Dorn0.6550–1; higher is more readable
72.9Δ 6.8
Mi0.390–1; higher is more readable
66.3Δ 0.3
LLOC5Logical lines; fewer is more readable
91.2Δ 25.1
DeepSeek V4 Pro160–20; mean of three runs
77.4Δ 11.3
GPT-6.1 Sol17.330–20; mean of three runs
71.9Δ 5.8
BTTF0.5610–1; higher is more readable
61.8Δ 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.425.73−14.049
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.973−7.46
Source linesThe number of non-empty source lines.14+5.6

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

Score0.685

Feature contributions

FeatureValueContribution
(log-odds)
Indentation frequencyHow rapidly indentation changes from line to line.1−0.703
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.92+0.68
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.14+0.541
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.1+0.398
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.12.753−0.232
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.92−0.232
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.085+0.117

Intercept 0.07 + feature contributions = 0.64 (log-odds).
Score = sigmoid(0.64) = 0.655.

Score0.39
Score5
Run 1

This method is generally readable with clear structure. It has a flat control flow with only one shallow conditional, making nesting minimal. The intent is fairly clear: initializing a lazy property and handling snapshot copying. The code is concise with appropriate action granularity—one action per line. However, readability could improve with better naming; `j` is ambiguous and `lazyPropertyNumbers[j]` is repeated. The comment adds valuable context about HHH-2236. The return statement's purpose might be unclear without domain knowledge. Overall, it reads naturally but minor improvements in naming and variable usage would enhance clarity.

Run 2

The method is logically organized and relatively flat, with a single if-block that doesn't overcomplicate flow. Variable names are mostly clear, though 'j' and abbreviations like 'propValue' slightly obscure intent. The code is concise, performing necessary actions without redundancy, and each line generally represents one logical action. The comment provides helpful context for the snapshot check. However, the method relies on external arrays (lazyPropertyNumbers, lazyPropertyTypes, lazyPropertyNames) indexed by 'j', which makes the reading flow somewhat disjointed and requires external context to fully understand. The boolean return expression directly follows the action, which is clear, but the overall intent remains tightly coupled to surrounding class logic. Increasing parameter clarity and reducing reliance on parallel arrays would improve readability.

Run 3

The code is well-structured and concise. It performs a single logical operation—initializing a lazy property—with clear intent. The method signature is explicit but lengthy, which is acceptable for a framework-level API. Nesting is minimal, with only one conditional block. Each action is on its own line, aiding readability. The comment referencing a known issue (HHH-2236) adds useful context. However, the heavy use of positional parameters and array indexing (e.g., lazyPropertyNumbers[j]) slightly reduces clarity for a reader unfamiliar with the surrounding data structures, hence not a perfect score.

Run 1

Code Structure: Logically organized into setting the property, updating an optional snapshot, and returning a match result. Nesting: Only one shallow conditional, making the control flow easy to follow. Clarity of intent: The method and API names communicate the main operations, but the index name 'j', unexplained parallel arrays, and awkward comment reduce clarity; the session parameter is unused. Code length: Short and appropriately concise, though the signature includes an unnecessary parameter. Action granularity: Each statement performs one clear action. Reading flow: Execution proceeds naturally from mutation to snapshot synchronization to the return value, although the boolean return's meaning requires inspecting the final expression.

Run 2

Code Structure: Logically organized into property assignment, optional snapshot update, and a return check. Nesting: Only one shallow conditional, making control flow easy to follow. Clarity of intent: The method name and API calls convey lazy-property initialization, though the parameter name 'j', parallel array indexing, and awkwardly worded comment require some context. Code length: Compact, with no unnecessary statements; the multiline signature remains readable despite six parameters. Action granularity: Each statement performs one primary action, although the snapshot assignment includes a deep-copy call. Reading flow: Execution proceeds naturally from updating the entity to preserving the snapshot and checking whether the initialized property matches the requested field.

Run 3

Code Structure: Logically organized into property assignment, optional snapshot update, and a return check. Nesting: A single conditional keeps nesting shallow. Clarity of intent: The method and API names convey lazy-property initialization, but the index name 'j', the boolean return meaning, and the grammatically unclear comment require interpretation. Code length: Concise, with no unnecessary logic; the multiline signature improves parameter visibility. Action granularity: Each statement performs one main action, although the snapshot assignment includes a deep-copy call. Reading flow: Execution proceeds naturally from updating the entity to updating its snapshot and checking the property name. Repeated indexed lookups add slight reading overhead.