Sample
Scalabrio79
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 64.3Δ 23.6 |
| Scalabrino | 0.909 | 0–1; higher is more readable | 95.0Δ 7.0 |
| Dorn | 0.529 | 0–1; higher is more readable | 61.3Δ 26.6 |
| Mi | 0.211 | 0–1; higher is more readable | 49.7Δ 38.2 |
| LLOC | 14 | Logical lines; fewer is more readable | 49.2Δ 38.7 |
| DeepSeek V4 Pro | 14 | 0–20; mean of three runs | 49.2Δ 38.7 |
| GPT-6.1 Sol | 18 | 0–20; mean of three runs | 83.7Δ 4.3 |
| BTTF | 0.592 | 0–1; higher is more readable | 68.3Δ 19.6 |
| Human | 4.33 | 1–5; original rating | 87.9 |
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. | 706.592 | −23.318 |
| Source linesThe number of non-empty source lines. | 28 | +11.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.934 | −7.401 |
Intercept 8.87 + feature contributions = -10.648 (log-odds).
Score = sigmoid(-10.648) = 0.
| Score | 0.909 |
|---|
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. | 121.929 | −1.499 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 122 | +1.164 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.05 | +0.455 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 23 | −0.107 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 28 | +0.045 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 26.878 | −0.034 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 22 | +0.024 |
Intercept 0.07 + feature contributions = 0.117 (log-odds).
Score = sigmoid(0.117) = 0.529.
| Score | 0.211 |
|---|
| Score | 14 |
|---|
Run 1
The code has clear intent with helpful comments explaining the test scenario and each property type. The structure is logical, grouping related query checks together. However, there are significant readability issues: inconsistent indentation (the @Test annotation is misaligned), excessive repetition of the SyntaxChecker pattern, and multiple actions per line in some cases. The method is quite long and could be refactored to reduce duplication by extracting query strings into a collection or helper method. While individual lines are readable, the overall structure feels verbose and would benefit from a more concise approach to testing multiple similar queries.
Run 2
The code is quite readable. It has clear intent with a helpful comment explaining the bug and test scenario. The structure is logical, grouping related query checks, and the nesting is minimal. Action granularity is good — each query check is on its own line, making it easy to scan. The use of a small helper class 'SyntaxChecker' abstracts repeated logic well, keeping the test concise. One minor issue is the repetitive 'new SyntaxChecker(...)' pattern, which could be reduced with a helper method or list, but this does not greatly harm readability. Overall, it is easy to follow and understand.
Run 3
The code has a clear purpose with explanatory comments and method names that convey intent. However, readability is reduced by repetitive SyntaxChecker instantiations that could be extracted into a helper method or loop. Multiple assertions are placed on single lines, violating the one-action-per-line principle. While the structure is flat and not deeply nested, the long strings and repeated patterns make scanning somewhat tedious. The comments help, but the lack of abstraction increases verbosity and reduces clarity.
Run 1
Code Structure: A single focused test logically groups related query checks with blank lines, though named groups could better distinguish scenarios. Nesting: Completely flat, with no nested control flow. Clarity of intent: The descriptive method name, issue annotation, and comments explain the inheritance-property regression being tested; the reason for the separate checkIterate call is less clear. Code length: Reasonably concise for its coverage, although repeated query construction adds some visual bulk. Action granularity: Each statement performs one query check; constructor-method chaining remains easy to follow. Reading flow: Consistent formatting and progression through class, superclass, and subclass properties make scanning straightforward, though long query lines and the transition to DomesticAnimal checks slightly weaken the flow.
Run 2
Code Structure: A single focused test with whitespace grouping related query cases; the final DomesticAnimal cases could use a clarifying comment. Nesting: Completely flat, making execution easy to follow. Clarity of intent: The descriptive method name, issue annotation, and property-inheritance comments clearly explain the regression being tested, though checkIterate versus checkAll is not explained. Code length: Reasonably concise for its coverage, but repeated query strings add some verbosity. Action granularity: Each line expresses one logical syntax-check operation, despite combining construction and invocation. Reading flow: Consistent formatting and progression through property types support natural scanning; long query lines and the initial standalone checkIterate slightly interrupt that flow.
Run 3
Code Structure: A single focused test organizes related query checks into visually separated groups. Nesting: The method is entirely flat, making execution easy to follow. Clarity of intent: The descriptive method name, issue annotation, and inheritance-property comments explain the purpose well, although the distinction between checkIterate() and checkAll() is not explained. Code length: Reasonably concise for its coverage, but repeated query strings add some verbosity and several lines are long. Action granularity: Each line represents one complete syntax-check operation; constructor/method chaining remains straightforward. Reading flow: Consistent formatting and grouping support natural top-to-bottom reading, though the initial subclass check and final DomesticAnimal cases could benefit from brief explanatory comments.