Sample
Buse/88
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.357 | 0–1; higher is more readable | 56.6Δ 13.1 |
| Scalabrino | 0.675 | 0–1; higher is more readable | 42.4Δ 1.0 |
| Dorn | 0.671 | 0–1; higher is more readable | 61.6Δ 18.2 |
| Mi | 0.635 | 0–1; higher is more readable | 63.6Δ 20.2 |
| LLOC | 5 | Logical lines; fewer is more readable | 29.8Δ 13.6 |
| DeepSeek V4 Pro | 13.67 | 0–20; mean of three runs | 44.4Δ 1.0 |
| GPT-6.1 Sol | 15 | 0–20; mean of three runs | 32.8Δ 10.6 |
| BTTF | 0.577 | 0–1; higher is more readable | 66.7Δ 23.2 |
| Human | 3.23 | 1–5; original rating | 43.4 |
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) |
|---|---|---|
| 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.635 | −6.952 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 148.677 | −4.906 |
| Source linesThe number of non-empty source lines. | 6 | +2.4 |
Intercept 8.87 + feature contributions = -0.588 (log-odds).
Score = sigmoid(-0.588) = 0.357.
| Score | 0.675 |
|---|
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. | 54 | +1.378 |
| 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. | 7 | +0.788 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 1 | −0.703 |
| 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. | 5.782 | −0.329 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.106 | −0.086 |
Intercept 0.07 + feature contributions = 0.712 (log-odds).
Score = sigmoid(0.712) = 0.671.
| Score | 0.635 |
|---|
| Score | 5 |
|---|
Run 1
The code is readable but incomplete, as it ends abruptly after appending the message fragment. Structure is simple and flat with only one conditional, and intent is clear—return a formatted message about array mismatch. Nesting is minimal and action granularity is mostly one action per line. However, the missing return statement and incomplete builder usage hurt clarity and reading flow. Variable naming (builder, fMessage) is acceptable, but the incomplete snippet leaves ambiguity about the final output.
Run 2
The code is relatively short and uses a straightforward StringBuilder pattern. It demonstrates clear intent and reasonable action granularity. However, several issues reduce readability: the use of `fMessage` prefix is unusual, the missing braces on the single-statement if block makes it potentially error-prone, and the method appears incomplete or awkwardly cut off mid-statement. Without braces, the if applies only to the first append, which may be intended but isn't as explicit as it could be. The variable naming (`f` prefix) is non-standard in Java and could confuse readers unfamiliar with the convention. For a full evaluation, more surrounding context would help determine whether the structure is logical. Overall, the code is readable but has style inconsistencies that detract from clarity.
Run 3
The code is relatively simple and readable at a glance, but it suffers from incomplete context and minor style issues. The method's intent is clear: construct an error message about differing arrays. However, the code is cut off, making evaluation of length and full logical structure impossible. The if statement uses a single-line body without braces, which is acceptable for brevity but can hurt clarity if the code evolves. The variable name 'fMessage' uses an outdated prefix convention, slightly hindering clarity. Nesting is minimal and action granularity is good—one logical operation per line. However, the missing return statement and incomplete append operations leave the reading flow disjointed. With proper formatting, braces, and complete code, readability would improve significantly.
Run 1
Code Structure: The visible statements are logically organized, but the method is incomplete, with no return or closing brace. Nesting: A single conditional keeps nesting shallow, though braces would clarify its scope. Clarity of intent: Building an error message is clear from the method name and appended text; the fMessage naming convention is less descriptive. Code length: The snippet is concise without unnecessary statements. Action granularity: Each line performs one clear action. Reading flow: Initialization, optional message inclusion, and detail appending follow naturally, but inconsistent assignment spacing and the abrupt ending reduce readability.
Run 2
Code Structure: The visible statements are logically organized, but the method is incomplete, lacking a return statement and closing brace. Nesting: Minimal nesting makes it easy to follow, though braces around the conditional would improve robustness. Clarity of intent: Building a message about an array mismatch is clear, but the unfinished text and missing element index leave the final purpose only partially expressed. Code length: The fragment is concise with no unnecessary statements. Action granularity: Each line performs one action. Reading flow: The sequence is natural—initialize the builder, append an optional message, then append mismatch context—but inconsistent spacing and the abrupt ending reduce readability.
Run 3
Code Structure: The visible statements are logically organized, though the snippet ends before the method is completed. Nesting: A single shallow conditional keeps the code easy to follow, but braces would make its scope clearer. Clarity of intent: The method clearly builds an error message, although the element information and return statement are not shown. Code length: The fragment is concise, with no unnecessary statements. Action granularity: Each line performs one action. Reading flow: Initialization, optional message inclusion, and appended context form a natural sequence; inconsistent spacing around '=' and the incomplete ending slightly reduce readability.