Sample
Scalabrio38
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 66.3Δ 16.6 |
| Scalabrino | 0.751 | 0–1; higher is more readable | 78.4Δ 4.5 |
| Dorn | 0.738 | 0–1; higher is more readable | 82.4Δ 0.5 |
| Mi | 0.672 | 0–1; higher is more readable | 90.5Δ 7.5 |
| LLOC | 12 | Logical lines; fewer is more readable | 57.3Δ 25.6 |
| DeepSeek V4 Pro | 17.67 | 0–20; mean of three runs | 96.0Δ 13.1 |
| GPT-6.1 Sol | 19 | 0–20; mean of three runs | 98.0Δ 15.1 |
| BTTF | 0.699 | 0–1; higher is more readable | 92.5Δ 9.5 |
| Human | 4.22 | 1–5; original rating | 82.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. | 623.175 | −20.565 |
| Source linesThe number of non-empty source lines. | 21 | +8.4 |
| 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.361 | −6.542 |
Intercept 8.87 + feature contributions = -9.837 (log-odds).
Score = sigmoid(-9.837) = 0.
| Score | 0.751 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Indentation frequencyHow rapidly indentation changes from line to line. | 1 | −0.703 |
| 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. | 76 | +0.446 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 76 | +0.422 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 21 | +0.293 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.072 | +0.238 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 19.935 | −0.131 |
Intercept 0.07 + feature contributions = 1.033 (log-odds).
Score = sigmoid(1.033) = 0.738.
| Score | 0.672 |
|---|
| Score | 12 |
|---|
Run 1
The code is highly readable. It has a clear, single-purpose structure with a logical Javadoc comment explaining intent. The method uses flat nesting with no conditional complexity. Each action is on its own line, making the sequence of serialization writes easy to follow. The naming is clear and consistent. The only minor drawback is the slight duplication of repeated method calls with the same SerialUtilities class, but this is not a readability issue. Overall, it is concise, predictable, and easy to understand.
Run 2
The code is highly readable. It has a clear, single-purpose method with a logical, sequential structure and no nesting. Each line performs one serialization action, creating a consistent, natural reading flow. The method and parameter names are descriptive, aided by a concise Javadoc comment. Minor deductions: no null checks or error handling around individual serialization calls, and the repetitive 'SerialUtilities.write...' pattern slightly increases verbosity, but this does not meaningfully harm clarity.
Run 3
The code is highly readable. It has a clear, single-purpose method with a logical structure, using flat nesting and one action per line. Each call to SerialUtilities.write... is explicit and communicates intent. The Javadoc concisely describes the method's purpose, parameters, and exceptions. The method is concise, performing only serialization of fields in a natural sequence. Minor deductions: repetition of SerialUtilities could be reduced, but the consistency enhances predictability. Overall, it's straightforward, maintainable, and easy to understand.
Run 1
Code Structure: A single, focused serialization method logically groups default serialization and custom field serialization. Nesting: No nested control flow; the method is flat. Clarity of intent: The documentation, method signature, descriptive field names, and explicit serialization helpers clearly communicate purpose. Code length: Short and appropriately explicit; repeated calls reflect distinct fields rather than unnecessary verbosity. Action granularity: Each line performs exactly one serialization action. Reading flow: Execution proceeds naturally from default serialization to custom fields, with related properties adjacent. Minor improvement: Blank lines could distinguish legend, series, label, and axis properties for easier scanning.
Run 2
Code Structure: A single, logically organized serialization method begins with default serialization, followed by explicit field serialization. Nesting: The body is completely flat. Clarity of intent: The method signature, documentation, descriptive field names, and utility methods clearly communicate its purpose. Code length: Concise for the number of fields serialized; repeated calls are straightforward rather than unnecessarily verbose. Action granularity: Each line performs exactly one serialization action. Reading flow: The sequence is easy to follow, with related paint and stroke fields generally grouped together. A brief explanation of the required serialization order or its correspondence to deserialization would provide additional context.
Run 3
Code Structure: A single, focused serialization method with logically ordered operations. Nesting: Completely flat, with no conditional or loop complexity. Clarity of intent: The documentation, standard writeObject signature, and descriptive utility and field names clearly communicate serialization behavior. Code length: Concise for the number of fields serialized; repetition is appropriate for explicit serialization ordering. Action granularity: Each line performs exactly one operation. Reading flow: Natural progression from default serialization to individual custom field writes, with consistent formatting. Minor improvement: Blank lines between related field groups could make the sequence easier to scan.