Sample
Buse/65
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.027 | 0–1; higher is more readable | 24.2Δ 18.2 |
| Dorn | 0.503 | 0–1; higher is more readable | 32.3Δ 10.1 |
| Mi | 0.342 | 0–1; higher is more readable | 21.2Δ 21.2 |
| LLOC | 5 | Logical lines; fewer is more readable | 29.8Δ 12.6 |
| DeepSeek V4 Pro | 13 | 0–20; mean of three runs | 38.4Δ 4.0 |
| GPT-6.1 Sol | 15 | 0–20; mean of three runs | 32.8Δ 9.6 |
| BTTF | 0.399 | 0–1; higher is more readable | 20.2Δ 22.2 |
| Human | 3.21 | 1–5; original rating | 42.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) |
|---|---|---|
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 248.796 | −8.21 |
| 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.169 | −6.254 |
| Source linesThe number of non-empty source lines. | 5 | +2 |
Intercept 8.87 + feature contributions = -3.594 (log-odds).
Score = sigmoid(-3.594) = 0.027.
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. | 60 | +1.124 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 6 | +0.824 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 0 | −0.804 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 1 | −0.703 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.144 | −0.459 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 4.689 | −0.344 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 5 | +0.306 |
Intercept 0.07 + feature contributions = 0.014 (log-odds).
Score = sigmoid(0.014) = 0.503.
| Score | 0.342 |
|---|
| Score | 5 |
|---|
Run 1
The code snippet is partially structured, with a clear loop and array initialization. However, it is incomplete, making full evaluation difficult. Nesting is shallow and action granularity is reasonable, but the variable name 'ID' breaks Java naming conventions (should be 'id'), and the purpose of the arrays is ambiguous without surrounding context. The code is concise but lacks clarity of intent due to missing variable declarations and no comments. Overall, it is moderately readable but could be improved with better naming and context.
Run 2
The code initializes two parallel arrays and iterates with a clear loop to retrieve message IDs. However, the snippet is incomplete, making overall intent uncertain. Structure is straightforward, but parallel arrays suggest weak cohesion. Nesting is minimal and readability is decent, but variable naming ('ID' uppercase) is inconsistent with Java conventions. Action granularity is reasonable, but the lack of context limits clarity.
Run 3
The code is fairly readable but lacks context. It declares two parallel arrays and starts iterating over a collection of message objects to extract their IDs. The structure is straightforward with minimal nesting. However, clarity of intent is limited because the purpose of the arrays and what happens with the ID inside the loop are not shown. Variable names like 'ID' are clear, but 'texts' and 'images' are only meaningful with surrounding code. Action granularity is good—one major action per line—but the incomplete loop body leaves reading flow unnatural. Overall, the snippet is readable as far as it goes, but missing context prevents a higher score.
Run 1
Code Structure: Array initialization followed by message iteration is logically organized, though the snippet is incomplete. Nesting: Only one loop level keeps complexity low. Clarity of intent: Variable names convey text, images, and message identifiers, but their intended use is not shown; uppercase ID is unconventional for a local variable. Code length: The visible code is concise without unnecessary statements. Action granularity: Each statement performs one clear action, apart from the conventional loop header. Reading flow: Initialization naturally leads into iteration, but the unclosed loop and missing continuation prevent assessment of the complete flow.
Run 2
Code Structure: Array initialization followed by iteration is logically organized, though the snippet is incomplete. Nesting: Only one loop level is present, making it easy to follow. Clarity of intent: Names suggest extracting message text and images, but their use is not shown; uppercase ID is unconventional for a local variable. Code length: The visible code is concise with no unnecessary statements. Action granularity: Each line performs one clear action. Reading flow: Initialization naturally precedes iteration and ID retrieval, but the unfinished loop prevents assessment of the complete flow.
Run 3
Code Structure: Array initialization followed by a message loop is logically organized, though the snippet is incomplete. Nesting: A single loop introduces minimal nesting. Clarity of intent: The array names and getMessageID() communicate their immediate purposes, but the relationship between texts, images, and the retrieved ID is not shown; uppercase ID is unconventional for a local variable. Code length: The visible code is concise without unnecessary verbosity. Action granularity: Each statement performs one clear action. Reading flow: Initialization followed by iteration is natural, but the missing loop body and closing brace prevent assessment of the complete flow.