Sample
Scalabrio190
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.003 | 0–1; higher is more readable | 78.9Δ 19.8 |
| Scalabrino | 0.62 | 0–1; higher is more readable | 62.3Δ 3.3 |
| Dorn | 0.268 | 0–1; higher is more readable | 35.7Δ 23.4 |
| Mi | 0.097 | 0–1; higher is more readable | 35.2Δ 23.9 |
| LLOC | 12 | Logical lines; fewer is more readable | 57.3Δ 1.8 |
| DeepSeek V4 Pro | 14.33 | 0–20; mean of three runs | 54.3Δ 4.8 |
| GPT-6.1 Sol | 17 | 0–20; mean of three runs | 58.5Δ 0.5 |
| BTTF | 0.547 | 0–1; higher is more readable | 55.8Δ 3.3 |
| Human | 3.78 | 1–5; original rating | 59.0 |
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. | 455.943 | −15.046 |
| Source linesThe number of non-empty source lines. | 18 | +7.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.623 | −6.934 |
Intercept 8.87 + feature contributions = -5.91 (log-odds).
Score = sigmoid(-5.91) = 0.003.
| Score | 0.62 |
|---|
Feature contributions
| Feature | Value | Contribution (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. | 108.556 | −0.933 |
| 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. | 13 | +0.576 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 13 | −0.287 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 16.627 | −0.177 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.081 | +0.152 |
Intercept 0.07 + feature contributions = -1.006 (log-odds).
Score = sigmoid(-1.006) = 0.268.
| Score | 0.097 |
|---|
| Score | 12 |
|---|
Run 1
The code is generally readable but has some repetitive structure. It defines two region names, then calls the same four operations (modification/access) on both listeners with both regions. The logical organization is clear, and the code is flat with no nesting. The intent to reset region usage state for both listeners is evident, though the method name 'getSawRegionModification' is misleading—it sounds like a getter but is being used as a setter/reset action. The code is concise but repetitive; a loop or helper method could reduce duplication while maintaining clarity. Each line performs one action, which is good, and the reading flow is natural and consistent. The log statement at the end adds clarity. Overall, it's readable but could benefit from minor refactoring to reduce repetition and improve method naming.
Run 2
The code is generally clear but has notable readability issues. Structure is straightforward and the purpose is understandable—resetting usage state for two regions across two listeners. However, it violates the 'one action per line' principle by stringing multiple method calls together in a single line (e.g., 'localListener.getSawRegionModification( stdName )'). This reduces readability by obscuring each distinct action. The method uses repetitive calls without helper methods or loops, leading to unnecessary verbosity and duplication. Nesting is minimal, but the grouping of listener calls is somewhat scattered: it processes localListener twice, then remoteListener twice, rather than grouping by listener or region for clearer flow. The naming is explicit but slightly verbose. A refactor using iteration over a list of regions or helper methods would improve readability by reducing repetition and aligning with 'one action per line'.
Run 3
The code is straightforward and readable. It has a clear structure, grouping operations by listener type and region name. Nesting is minimal, and each line performs a single action, which aids clarity. The intent—resetting region usage state for local and remote listeners—is evident from method and variable names. However, the repetition of method calls could be reduced with a helper method or loop, and the variable names (stdName, acctName) are slightly cryptic. The logging statement is clear. Overall, the code is easy to follow but lacks conciseness.
Run 1
Code Structure: Logically grouped by listener and operation, with blank lines separating related calls. Nesting: Completely flat, making execution easy to follow. Clarity of intent: The method name and final log indicate a reset, but getter-named methods obscure whether reading also clears state; abbreviated variable names slightly reduce clarity. Code length: Short overall, though repetitive calls add some verbosity. Action granularity: Each statement performs one action. Reading flow: Consistent ordering creates a natural, predictable sequence from local operations to remote operations and logging.
Run 2
Code Structure: Logically groups operations by listener and modification/access type. Nesting: Completely flat, making execution easy to follow. Clarity of intent: The method name and log indicate a reset, but getter-like calls with ignored return values obscure how state is actually cleared; abbreviated variable names slightly reduce clarity. Code length: Short overall, though repeated calls add minor verbosity. Action granularity: Each statement performs one clear action. Reading flow: Consistent ordering and blank-line grouping provide a natural progression from local to remote operations, followed by logging.
Run 3
Code Structure: Logically groups operations by listener and modification/access type. Nesting: Completely flat, making execution easy to follow. Clarity of intent: The method name and log message indicate a reset, but getter-style calls obscure whether reading these flags actually clears them; abbreviated variable names slightly reduce clarity. Code length: Short and manageable, though repeated calls introduce minor verbosity. Action granularity: Each statement performs one action. Reading flow: Consistent ordering and whitespace support straightforward top-to-bottom reading.