Sample
Scalabrio104
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.001 | 0–1; higher is more readable | 75.9Δ 9.8 |
| Scalabrino | 0.685 | 0–1; higher is more readable | 68.8Δ 2.8 |
| Dorn | 0.655 | 0–1; higher is more readable | 72.9Δ 6.8 |
| Mi | 0.39 | 0–1; higher is more readable | 66.3Δ 0.3 |
| LLOC | 5 | Logical lines; fewer is more readable | 91.2Δ 25.1 |
| DeepSeek V4 Pro | 16 | 0–20; mean of three runs | 77.4Δ 11.3 |
| GPT-6.1 Sol | 17.33 | 0–20; mean of three runs | 71.9Δ 5.8 |
| BTTF | 0.561 | 0–1; higher is more readable | 61.8Δ 4.3 |
| Human | 3.89 | 1–5; original rating | 66.1 |
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. | 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.
| Score | 0.685 |
|---|
Feature contributions
| Feature | Value | Contribution (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.
| Score | 0.39 |
|---|
| Score | 5 |
|---|
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.