Sample
JetBrains/i41
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.024 | 0–1; higher is more readable | 94.9Δ 11.0 |
| Scalabrino | 0.956 | 0–1; higher is more readable | 94.9Δ 11.0 |
| Dorn | 0.495 | 0–1; higher is more readable | 44.1Δ 39.8 |
| Mi | 0.384 | 0–1; higher is more readable | 33.9Δ 50.0 |
| LLOC | 3 | Logical lines; fewer is more readable | 98.3Δ 14.4 |
| DeepSeek V4 Pro | 18.33 | 0–20; mean of three runs | 97.9Δ 14.0 |
| GPT-6.1 Sol | 19 | 0–20; mean of three runs | 96.2Δ 12.3 |
| BTTF | 0.624 | 0–1; higher is more readable | 92.4Δ 8.5 |
| Human | 0.92 | 0–1; original rating | 83.9 |
Views
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. | 252.664 | −8.338 |
| 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.949 | −7.424 |
| Source linesThe number of non-empty source lines. | 8 | +3.2 |
Intercept 8.87 + feature contributions = -3.692 (log-odds).
Score = sigmoid(-3.692) = 0.024.
| Score | 0.956 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| 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. | 8 | +0.753 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 8 | −0.46 |
| 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. | 77 | +0.404 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 6.744 | −0.316 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 8 | +0.237 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.087 | +0.095 |
Intercept 0.07 + feature contributions = -0.021 (log-odds).
Score = sigmoid(-0.021) = 0.495.
| Score | 0.384 |
|---|
| Score | 3 |
|---|
Run 1
The code is highly readable due to its clear structure, single-purpose class, and minimal nesting. The intent—printing the Euler–Mascheroni constant to 1000 decimal places—is unambiguous. It is concise, with only four lines of logical code, and each action is on its own line. The flow is natural: import, class declaration, main method, constant assignment, output. The only minor issue is the deprecated BigDecimal.ROUND_HALF_UP constant; a modern approach would use RoundingMode, but this does not significantly harm readability.
Run 2
The code is highly readable. It has a clear purpose—printing the Euler-Mascheroni constant to 1000 decimal places. The structure is straightforward: a single class with a main method, and no unnecessary complexity. Nesting is minimal (only top-level main). Intent is obvious from naming and the literal. The code is concise, containing no redundant logic or bloated abstractions. Action granularity is appropriate—one object creation and one output statement. Reading flow is natural: import, class definition, main method, constant initialization, and output. Minor deductions: the magic literal and rounding mode are somewhat hardcoded, and a brief comment explaining the source of the constant would improve clarity, but these do not significantly harm readability.
Run 3
The code is highly readable. It has clear structure with a single class and main method, no unnecessary nesting, and the intent is immediately obvious—print the Euler-Mascheroni constant to 1000 decimal places. The use of BigDecimal with a string constructor avoids floating-point precision issues, showing careful thought. Action granularity is one logical action per line. The only minor deduction is the hard-coded constant value line is somewhat long, but it is necessary and not a clarity issue.
Run 1
Code Structure: Clearly organized into an import, a descriptively named class, and a simple main method. Nesting: Minimal, with only the necessary class and method scopes. Clarity of intent: The class name and gamma variable clearly indicate the Euler–Mascheroni constant, though setting the scale to 1000 could misleadingly suggest greater numerical precision than the supplied value provides. Code length: Concise, without unnecessary code. Action granularity: Each statement performs a focused action; combining formatting and printing remains easy to follow. Reading flow: Natural progression from defining the constant to formatting and printing it.
Run 2
Code Structure: A simple class and main method provide clear, logical organization. Nesting: Minimal nesting makes the code easy to scan. Clarity of intent: The class name and gamma variable clearly identify the Euler–Mascheroni constant, although scaling to 1000 decimal places may misleadingly suggest greater precision than the literal provides. Code length: Concise, with no unnecessary code. Action granularity: Initialization and output are separated into distinct statements. Reading flow: The import, class, initialization, and output follow a natural sequence. The unexplained scale of 1000 and deprecated rounding constant slightly reduce clarity.
Run 3
Code Structure: A simple class with a clearly organized main method. Nesting: Minimal, with only the necessary class and method scopes. Clarity of intent: The class and variable names clearly identify the Euler–Mascheroni constant, though setting the scale to 1000 could misleadingly suggest greater precision than the supplied value. Code length: Concise, with no unnecessary statements. Action granularity: Each statement occupies its own line; combining scaling and printing remains easy to understand. Reading flow: Natural progression from import to declaration, initialization, and output.