Sample

Scalabrio16

Human rating uses the original dataset scale.

DatasetScalabrino
Human4.44
Lines16

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
56.3Δ 35.2
Scalabrino0.7450–1; higher is more readable
77.4Δ 14.1
Dorn0.6720–1; higher is more readable
76.9Δ 14.6
Mi0.6110–1; higher is more readable
83.4Δ 8.0
LLOC15Logical lines; fewer is more readable
44.5Δ 47.0
DeepSeek V4 Pro170–20; mean of three runs
90.2Δ 1.3
GPT-6.1 Sol190–20; mean of three runs
98.0Δ 6.5
BTTF0.480–1; higher is more readable
32.7Δ 58.8
Human4.441–5; original rating
91.5

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)
Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones.620.643−20.481
Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value.5.175−7.763
Source linesThe number of non-empty source lines.16+6.4

Intercept 8.87 + feature contributions = -12.974 (log-odds).
Score = sigmoid(-12.974) = 0.

Score0.745

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.875+1.299
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.1+1.001
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.0−0.804
Indentation frequencyHow rapidly indentation changes from line to line.1−0.703
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.131−0.326
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.13.825−0.217

Intercept 0.07 + feature contributions = 0.718 (log-odds).
Score = sigmoid(0.718) = 0.672.

Score0.611
Score15
Run 1

The code is highly readable. The method name clearly states its purpose, and the logic is straightforward. Each hint addition is on its own line, maintaining flat nesting and clear action granularity. The structure is logical, with no unnecessary complexity or ambiguity. The method is concise and returns an unmodifiable set, correctly encapsulating the data. Minor improvement could be using diamond operator instead of explicit generic types, but this does not significantly impact readability.

Run 2

The code is highly readable and follows a clear, consistent pattern. The method name buildHintsSet clearly indicates its purpose, and the method does exactly one thing: builds an unmodifiable set of hint constants. The structure is flat with no nesting, and each add operation is on its own line, contributing to excellent action granularity and scanning ease. Reading flow is natural and top-down. The only slight deductions are for the fully qualified return call (java.util.Collections.unmodifiableSet) which could be simplified with an import, and the use of the concrete HashSet on the left side of the assignment rather than the Set interface. Additionally, the method could be slightly more concise using a static factory or List.of, but overall it is clean and easily understood.

Run 3

The code is highly readable. The method has a clear purpose: building an unmodifiable set of hint constants. The structure is logical, with a single responsibility and a straightforward return. Nesting is nonexistent. Each line represents one action, and the reading flow follows a natural sequence: create a set, populate it, and return an unmodifiable view. Variable and method names are self-explanatory. The only minor improvement would be using a static initializer or `Set.of()` for conciseness, but the explicit construction is acceptable and arguably clearer for a larger list of constants.

Run 1

Code Structure: Logically organized into set creation, population, and an unmodifiable return. Nesting: Flat, with no nested control flow. Clarity of intent: The method name and descriptive constants clearly communicate that it builds a set of supported hints. Code length: Short and appropriate; repeated add calls are slightly verbose but easy to scan. Action granularity: Each line performs one action. Reading flow: Natural and sequential, with consistent formatting. Minor stylistic verbosity from explicit generic arguments and the fully qualified Collections reference does not significantly impair readability.

Run 2

Code Structure: Logically organized into set creation, population, and return. Nesting: Flat, with no nested control flow. Clarity of intent: The method name, descriptive constants, and unmodifiable return clearly communicate its purpose. Code length: Short and proportionate to the task, though repeated add calls are slightly verbose. Action granularity: Each line performs one action. Reading flow: Straightforward and sequential; minor stylistic verbosity from the explicit generic type and fully qualified Collections reference does not impede readability.

Run 3

Code Structure: A single, logically organized method creates, populates, and returns a set. Nesting: Flat, with no branches or loops. Clarity of intent: The method name and descriptive constants clearly communicate that it builds supported hints; the return expression explicitly makes the result unmodifiable. Code length: Short and proportionate, though repeated add calls are slightly verbose. Action granularity: Each statement performs one clear action. Reading flow: Natural top-to-bottom progression with consistent formatting. Minor readability drawbacks are the redundant generic type declaration and fully qualified Collections reference.