Sample
Buse/47
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.665 | 0–1; higher is more readable | 71.7Δ 6.1 |
| Scalabrino | 0.849 | 0–1; higher is more readable | 74.2Δ 3.5 |
| Dorn | 0.705 | 0–1; higher is more readable | 66.7Δ 11.1 |
| Mi | 0.851 | 0–1; higher is more readable | 99.0Δ 21.2 |
| LLOC | 4 | Logical lines; fewer is more readable | 59.6Δ 18.2 |
| DeepSeek V4 Pro | 16 | 0–20; mean of three runs | 73.2Δ 4.5 |
| GPT-6.1 Sol | 17 | 0–20; mean of three runs | 62.1Δ 15.7 |
| BTTF | 0.657 | 0–1; higher is more readable | 84.8Δ 7.1 |
| Human | 3.88 | 1–5; original rating | 77.8 |
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.548 | −6.823 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 162.516 | −5.363 |
| Source linesThe number of non-empty source lines. | 10 | +4 |
Intercept 8.87 + feature contributions = 0.684 (log-odds).
Score = sigmoid(0.684) = 0.665.
| Score | 0.849 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 95 | +0.728 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 1 | −0.703 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 11 | +0.647 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.06 | +0.361 |
| 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. | 94.909 | −0.355 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 9.729 | −0.274 |
Intercept 0.07 + feature contributions = 0.873 (log-odds).
Score = sigmoid(0.873) = 0.705.
| Score | 0.851 |
|---|
| Score | 4 |
|---|
Run 1
The code is generally readable with a clear purpose: reading serialized data from a stream. The method name `readData` clearly conveys intent, and each action is on its own line, which supports good granularity and flat nesting. The use of `mNumber` and `mName` suggests a consistent naming convention, likely for member variables. However, there are a few minor issues: the Javadoc is incomplete (missing parameter and return descriptions), and the `version` variable is read but never used in the shown snippet, which could confuse readers. The code is concise but would benefit from a comment explaining the purpose of the version check. Overall, it is well-structured and easy to follow, but not perfect due to the unused variable and incomplete documentation.
Run 2
The code is generally readable with a clear purpose and logical structure. The method signature is straightforward, and the individual read operations are simple and easy to understand. However, the code lacks context: variable names like 'mNumber' and 'mName' are vague without surrounding class definition. The Javadoc is minimal and provides no meaningful description of what 'settings' are being read or the version's role. There is unused version variable after reading, which could confuse readers about its purpose. No error handling or validation is present, though that may be intentional. The method is concise but could benefit from clearer naming or documentation to explain the data format and the significance of the version field. Action granularity is good — one action per line — and nesting is flat, which improves readability.
Run 3
The code is highly readable. It is a short, focused method with clear intent—reading version, number, and name from a stream. Structure is logical, nesting is flat (none), and each action is on its own line, improving granularity. The reading flow follows natural order. Minor deductions for lack of inline comments or validation logic, but the Javadoc, parameter naming, and consistency make it very clear.
Run 1
Code Structure: A straightforward method groups related deserialization operations logically, though the snippet lacks a closing brace. Nesting: No nested control flow, making it easy to follow. Clarity of intent: The method signature and stream reads convey loading data, but the generic method name, vague documentation, and unused version variable leave some purpose unclear. Code length: Concise, with no unnecessary implementation detail. Action granularity: Each line performs one clear read and assignment. Reading flow: The sequential reads are natural and easy to scan, although the required serialization order is not documented.
Run 2
Code Structure: Straightforward sequential deserialization, though the snippet lacks a closing brace. Nesting: Flat, with no nested control flow. Clarity of intent: The method name, stream type, and field assignments convey its purpose, but the generic documentation and unused version variable leave version handling unclear. Code length: Concise without unnecessary implementation detail. Action granularity: Each statement performs one clear read or assignment. Reading flow: Natural top-to-bottom order, with consistent formatting; the incomplete method slightly interrupts readability.
Run 3
Code Structure: The visible method follows a logical deserialization sequence, though the snippet is incomplete and lacks a closing brace. Nesting: Flat, with no nested control flow. Clarity of intent: The method name, stream parameter, and read operations convey the purpose, but the generic comment and unexplained, currently unused version variable limit clarity. Code length: Concise, with no unnecessary implementation detail. Action granularity: Each statement performs one clear read or assignment. Reading flow: Natural and sequential, although understanding the required field order depends on the serialization format.