Sample

Scalabrio5

Human rating uses the original dataset scale.

DatasetScalabrino
Human4
Lines27

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett0.0040–1; higher is more readable
79.9Δ 6.5
Scalabrino0.5310–1; higher is more readable
52.3Δ 21.1
Dorn0.740–1; higher is more readable
83.9Δ 10.6
Mi0.4390–1; higher is more readable
71.9Δ 1.5
LLOC8Logical lines; fewer is more readable
76.9Δ 3.5
DeepSeek V4 Pro14.670–20; mean of three runs
57.8Δ 15.6
GPT-6.1 Sol170–20; mean of three runs
58.5Δ 14.8
BTTF0.7050–1; higher is more readable
93.0Δ 19.6
Human41–5; original rating
73.4

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.564.221−18.619
Source linesThe number of non-empty source lines.27+10.8
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.372−6.558

Intercept 8.87 + feature contributions = -5.507 (log-odds).
Score = sigmoid(-5.507) = 0.004.

Score0.531

Feature contributions

FeatureValueContribution
(log-odds)
Indentation frequencyHow rapidly indentation changes from line to line.1−0.703
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.77.926+0.453
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.052+0.438
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.1+0.398
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.963+0.363
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.27+0.08
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.25.684−0.051

Intercept 0.07 + feature contributions = 1.049 (log-odds).
Score = sigmoid(1.049) = 0.74.

Score0.439
Score8
Run 1

The code is well-structured and highly readable. It follows a clear, consistent pattern: initialize a provider factory, create a notation, then register it for each notation type. Each action is on its own line, and the method calls are descriptive. The indentation is logical, though the commented-out code slightly interrupts flow. The inline comment is helpful, but the dead code comment should be removed. The long method signatures create some visual weight but are necessary for clarity. Overall, the code demonstrates clear intent, proper action granularity, and good organization with minimal nesting.

Run 2

The code is somewhat readable but has several issues. The method has a clear purpose (registering notation providers) and uses flat structure, but suffers from redundancy: five nearly identical calls could be simplified with a loop or map. The commented-out code and awkward alignment in the Notation.makeNotation call reduce clarity. Variable naming is acceptable, but the repetitive pattern makes the intent less obvious. The static initializer comment is misleading since this is a static method, not a static initializer block. Overall, the code is functional and fairly organized, but lacks conciseness and polished clarity.

Run 3

The code has clear intent and generally follows a flat structure with one action per line, which aids readability. The registration pattern is consistent and easy to follow. However, several issues detract from readability: commented-out code remains in the assignment statement, creating ambiguity about whether it should be removed or restored. The multi-line chained method call for Notation.makeNotation breaks the one-action-per-line principle and disrupts reading flow. The Javadoc comment is minimal and could better explain the purpose of registering notations. Overall, the code is understandable but needs cleanup to improve clarity and maintain a natural reading flow.

Run 1

Code Structure: Initialization logically precedes a consistent sequence of provider registrations. Nesting: The method is flat, with no conditional or loop nesting. Clarity of intent: The comment, constants, and class names clearly convey registration of Java notation providers, although 'npf' and 'name' are generic and the commented-out call adds distraction. Code length: Short and appropriately explicit; repeated registration calls are justified by distinct provider types. Action granularity: Each statement performs one main action, with line wrapping keeping long calls readable. Reading flow: The top-to-bottom progression is natural and formatting is consistent overall, though the inline obsolete comment and unusual assignment indentation slightly interrupt it.

Run 2

Code Structure: Logically organized into factory retrieval, notation creation, and provider registration. Nesting: Flat, with no nested control flow. Clarity of intent: Descriptive method and class names make the registration purpose clear, although 'npf' is abbreviated and the commented-out expression introduces distracting obsolete code. Code length: Short overall; repetitive registrations are straightforward rather than unnecessarily verbose. Action granularity: Each statement performs one clear action, with multiline calls improving legibility. Reading flow: Natural top-to-bottom progression and consistent registration formatting make the code easy to scan. Minor drawbacks include awkward formatting around notation creation and the misleading 'static initializer' comment, since this is a static method rather than a static initializer block.

Run 3

Code Structure: Initialization followed by related provider registrations is logically organized. Nesting: The method is flat, with no nested control flow. Clarity of intent: Descriptive API names and provider classes make the registration purpose clear, though 'npf' is abbreviated and the commented-out alternative adds distraction. Code length: The method is reasonably concise; repeated registration calls are explicit and easy to compare. Action granularity: Each statement performs one primary action, with multiline formatting keeping arguments readable. Reading flow: Execution proceeds naturally from obtaining the factory to creating the notation and registering providers. Minor drawbacks include the awkward inline comment, uneven indentation around notation creation, and the misleading 'static initializer' description for a static method.