Sample
Buse/62
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.536 | 0–1; higher is more readable | 65.7Δ 11.1 |
| Dorn | 0.617 | 0–1; higher is more readable | 53.5Δ 1.0 |
| Mi | 0.659 | 0–1; higher is more readable | 68.7Δ 14.1 |
| LLOC | 4 | Logical lines; fewer is more readable | 59.6Δ 5.1 |
| DeepSeek V4 Pro | 6.33 | 0–20; mean of three runs | 2.0Δ 52.5 |
| GPT-6.1 Sol | 12.67 | 0–20; mean of three runs | 17.2Δ 37.4 |
| BTTF | 0.333 | 0–1; higher is more readable | 14.1Δ 40.4 |
| Human | 3.47 | 1–5; original rating | 54.5 |
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.306 | −6.459 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 129.268 | −4.266 |
| Source linesThe number of non-empty source lines. | 5 | +2 |
Intercept 8.87 + feature contributions = 0.146 (log-odds).
Score = sigmoid(0.146) = 0.536.
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. | 45.833 | +1.724 |
| 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.158 | −0.597 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 4.66 | −0.345 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 5 | +0.306 |
Intercept 0.07 + feature contributions = 0.476 (log-odds).
Score = sigmoid(0.476) = 0.617.
| Score | 0.659 |
|---|
| Score | 4 |
|---|
Run 1
This code snippet is difficult to evaluate due to its truncated nature and mixed concerns. The structure is logically simple with a version check and two assignments, but the nesting and readability suffer from ambiguity. The second action, `channelId=""+in.readInt();`, performs multiple operations in one line (reading an integer, converting to string via concatenation), violating single-action granularity and obscuring intent. The use of `""+in.readInt()` is a terse but unclear idiom for integer-to-string conversion. The reading flow is broken because `channelId` is declared outside the conditional but only assigned inside it, creating potential uninitialized state. The code is concise, but clarity and action granularity are poor. Missing context, such as the source of `in` and purpose of `dataServiceId`, further reduces the score. Overall, the snippet is not highly readable due to ambiguous intent and multi-action line.
Run 2
The code is largely unreadable. Structure is poor, with an unexplained branch and immediate type mixing. Clarity of intent is absent: the purpose of version 1 and the derivation of channelId from an int are unclear. Nesting is minimal but the code lacks context and supporting lines. Action granularity is acceptable (one assignment per line) but the reading flow is disrupted by abrupt concatenation with an empty string and a magic number version check. It feels like a fragment missing key definitions and surrounding logic.
Run 3
The code snippet is partially readable but lacks sufficient context. It demonstrates one action per line and reasonably flat nesting, but the overall purpose is ambiguous without surrounding code. The variable naming is clear but the version check (version==1) introduces a conditional whose intent is unexplained. The handling of channelId as a string concatenation with an empty string (""+in.readInt()) is a non-obvious type conversion that reduces clarity. The code is concise but incomplete, making it difficult to fully assess structure and flow. Without seeing the broader method or class, the readability is moderate at best, with concerns around intent and hidden logic.
Run 1
Code Structure: The visible statements are logically grouped under a version check, but the incomplete block limits assessment. Nesting: Only one conditional level is shown, making it easy to follow. Clarity of intent: Variable names suggest reading identifiers, though the version-specific purpose is unexplained and converting an integer with an empty-string concatenation is less explicit than String.valueOf. Code length: The snippet is concise without obvious redundancy. Action granularity: Each statement occupies its own line, although reading and conversion are combined in the channelId assignment. Reading flow: The sequence is straightforward, but inconsistent spacing and the missing closing brace make the snippet feel unfinished.
Run 2
Code Structure: The declaration and version-specific reads are logically grouped, but the incomplete snippet lacks a closing brace and context. Nesting: Only one conditional level, making it easy to follow. Clarity of intent: Variable names suggest identifiers, but the significance of version 1 and converting an integer to a string through concatenation are not explicit. Code length: Concise, with no unnecessary statements. Action granularity: Each line contains one main declaration or assignment, although channelId combines reading and conversion. Reading flow: Sequential reads are natural, but inconsistent spacing and the abrupt ending reduce readability.
Run 3
Code Structure: The declaration and version-specific block are logically organized, but the snippet is incomplete and lacks a closing brace. Nesting: Only one conditional level, making it easy to follow. Clarity of intent: Variable names suggest deserialization of service and channel identifiers, but the meaning of version 1 is unexplained, and converting an integer with string concatenation obscures intent slightly. Code length: Concise, with no unnecessary statements. Action granularity: Each line performs one main operation. Reading flow: Sequential reads are natural, although inconsistent spacing around operators and casts reduces polish, and the abrupt ending interrupts comprehension.