Sample

Buse/51

Human rating uses the original dataset scale.

DatasetBuse
Human3.92
Lines7

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett0.2620–1; higher is more readable
49.5Δ 30.3
Scalabrino0.7860–1; higher is more readable
56.1Δ 23.7
Dorn0.6320–1; higher is more readable
54.5Δ 25.3
Mi0.6790–1; higher is more readable
74.7Δ 5.1
LLOC5Logical lines; fewer is more readable
29.8Δ 50.0
DeepSeek V4 Pro17.330–20; mean of three runs
92.4Δ 12.6
GPT-6.1 Sol170–20; mean of three runs
62.1Δ 17.7
BTTF0.6740–1; higher is more readable
88.9Δ 9.1
Human3.921–5; original rating
79.8

Views

Download official ZIP ↗

Select the downloaded ZIP or its extracted folder. Files stay in your browser.

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(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.

Score0.786

Feature contributions

FeatureValueContribution
(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.

Score0.679
Score5
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.