Sample
Buse/51
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.262 | 0–1; higher is more readable | 49.5Δ 30.3 |
| Scalabrino | 0.786 | 0–1; higher is more readable | 56.1Δ 23.7 |
| Dorn | 0.632 | 0–1; higher is more readable | 54.5Δ 25.3 |
| Mi | 0.679 | 0–1; higher is more readable | 74.7Δ 5.1 |
| LLOC | 5 | Logical lines; fewer is more readable | 29.8Δ 50.0 |
| DeepSeek V4 Pro | 17.33 | 0–20; mean of three runs | 92.4Δ 12.6 |
| GPT-6.1 Sol | 17 | 0–20; mean of three runs | 62.1Δ 17.7 |
| BTTF | 0.674 | 0–1; higher is more readable | 88.9Δ 9.1 |
| Human | 3.92 | 1–5; original rating | 79.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.645 | −6.968 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 173.918 | −5.739 |
| Source linesThe number of non-empty source lines. | 7 | +2.8 |
Intercept 8.87 + feature contributions = -1.037 (log-odds).
Score = sigmoid(-1.037) = 0.262.
| Score | 0.786 |
|---|
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. | 55 | +1.336 |
| 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. | 5 | −0.564 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 6.768 | −0.315 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 6 | +0.283 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.119 | −0.219 |
Intercept 0.07 + feature contributions = 0.539 (log-odds).
Score = sigmoid(0.539) = 0.632.
| Score | 0.679 |
|---|
| Score | 5 |
|---|
Run 1
The code is concise, well-structured, and clearly communicates its intent. It follows a logical flow: get the class name, find the first occurrence of '$', and return the substring after it or the original string if no delimiter exists. Nesting is minimal (single if statement), and each line performs one action, enhancing readability. The method name `getBaseName` is descriptive, and the parameter naming is clear. However, minor improvements could include using a more descriptive variable name than `i` and adding a comment explaining the purpose of the '$' delimiter, which would make the code's intent even clearer for unfamiliar readers.
Run 2
The code is clean, concise, and clearly structured. It has a single if-statement with minimal nesting, and each line performs one logical action. The method's intent is immediately obvious: strip a package/outer class prefix from a class name. Naming is consistent and descriptive (className, i). The only minor deductions are for the non-descriptive variable name 'i' and the absence of a guard clause for empty strings, which could slightly improve clarity. Flow is natural and straightforward, with no redundant logic or excessive length.
Run 3
The code is highly readable. It has a clear, single purpose: extracting a base name from a class name. The structure is logical with a simple early return for the common case, keeping nesting flat. Each line performs one action, and the reading flow is natural. The only minor issue is the lack of a validation check for the edge case where '$' is the last character, which would return an empty string, but this does not significantly impact clarity.
Run 1
Code Structure: Simple, logically organized helper, though the missing closing brace makes the snippet incomplete. Nesting: Flat control flow with a straightforward early return. Clarity of intent: The delimiter lookup and substring operation are easy to understand, but getBaseName is somewhat ambiguous and i is not descriptive. Code length: Concise, with no unnecessary statements. Action granularity: Each statement performs one clear action. Reading flow: Natural progression from locating the delimiter to returning either the original string or the suffix; inconsistent spacing and the unbraced conditional slightly reduce readability.
Run 2
Code Structure: The method is logically organized around finding a delimiter and returning the appropriate result, though its closing brace is missing. Nesting: A single conditional with an early return keeps the code flat. Clarity of intent: The operations are straightforward, but getBaseName does not fully explain why the portion after the first '$' is returned, and i is a generic variable name. Code length: The implementation is concise with no unnecessary statements. Action granularity: Each statement performs one clear action. Reading flow: Execution follows naturally from delimiter lookup to the fallback or substring return; inconsistent spacing and the missing closing brace slightly disrupt readability.
Run 3
Code Structure: The method is logically organized, though the missing closing brace makes the snippet incomplete. Nesting: An early return keeps the flow flat and easy to follow. Clarity of intent: The operations clearly return the text after the first '$', or the original string when absent; however, getBaseName is somewhat ambiguous, and i could have a more descriptive name. Code length: Short and appropriately concise. Action granularity: Each statement performs one action. Reading flow: The search, conditional return, and substring extraction form a natural sequence, with minor spacing inconsistencies.