Sample

Scalabrio52

Human rating uses the original dataset scale.

DatasetScalabrino
Human4
Lines12

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
65.8Δ 7.5
Scalabrino0.0840–1; higher is more readable
5.5Δ 67.8
Dorn0.1750–1; higher is more readable
23.1Δ 50.3
Mi0.050–1; higher is more readable
23.1Δ 50.3
LLOC6Logical lines; fewer is more readable
86.9Δ 13.6
DeepSeek V4 Pro13.670–20; mean of three runs
43.2Δ 30.2
GPT-6.1 Sol180–20; mean of three runs
83.7Δ 10.3
BTTF0.3740–1; higher is more readable
11.1Δ 62.3
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.515.736−17.019
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.384−6.576
Source linesThe number of non-empty source lines.12+4.8

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

Score0.084

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.193−4.51
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.193+2.309
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.12+0.611
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.1+0.398
Indentation frequencyHow rapidly indentation changes from line to line.10−0.391
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.10.696−0.26
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.074+0.224

Intercept 0.07 + feature contributions = -1.548 (log-odds).
Score = sigmoid(-1.548) = 0.175.

Score0.05
Score6
Run 1

The code has a clear overall purpose but several readability issues. The method name 'scanAnnotatedMembers' is descriptive, and the logic follows a straightforward pattern of iterating through classes, methods, and fields. However, the nesting level of 3 (class loop containing two inner loops) makes it moderately complex. The method signature is very long with generic type parameters that add cognitive load. Variable names like 'fClass' are cryptic and unclear - 'eachClass' would be more consistent with the other loop variables. The actual scanning logic is obscured by the method only showing the loop structure - the real work happens in methods like 'addToAnnotationLists' and 'getSuperClasses', making it hard to evaluate the complete flow. The comment about field sorting is helpful but could be more concise. The method lacks clear separation between the method scanning and field scanning concerns, which could be extracted into separate helper methods for better action granularity.

Run 2

The code is well-structured and readable. It has a clear purpose: scanning annotated members across class hierarchies. Nesting is minimal (two levels), and the action granularity is appropriate with one main operation per line. The method names are descriptive (e.g., getSuperClasses, getSortedDeclaredFields, addToAnnotationLists), which enhances clarity of intent. The comment about deterministic field ordering is helpful and concise. Code length is appropriate—not overly verbose. The reading flow is natural, progressing from superclasses to methods to fields. Minor deductions: the parameter names are slightly verbose, and the loop variable names (eachClass, eachMethod) are convention-dependent but fine. Overall, the code is clean, focused, and easy to follow.

Run 3

The method is generally readable with clear structure and intent. It uses descriptive variable names and consists of three nested loops, which is manageable but adds slight complexity. The logic flows naturally: iterating over superclasses, then methods, then fields. The method is concise and each action is on its own line, aiding comprehension. Minor drawbacks include the lack of a return type or access modifier in the signature (likely intentional in context), and the comment could be slightly more concise. Overall, it is well-organized and straightforward.

Run 1

Code Structure: Logically organized by class, with separate loops for methods and fields. Nesting: Only two loop levels, making control flow easy to follow. Clarity of intent: Descriptive method and helper names clearly communicate annotation scanning; the comment explains deterministic field ordering, though it contains a minor naming inconsistency. Code length: Concise overall, but the long signature would benefit from wrapping. Action granularity: Each statement performs one primary action; inline wrapper construction is simple and readable. Reading flow: Natural progression from superclass traversal to method processing and then field processing, with consistent formatting.

Run 2

Code Structure: Logically organized by superclass, scanning methods first and fields second. Nesting: Two loop levels are shallow and easy to follow. Clarity of intent: Descriptive method and helper names make annotation collection clear; the comment explains deterministic field ordering, though it contains a minor naming inconsistency. Code length: Concise, with no unnecessary logic, but the long signature would benefit from line wrapping. Action granularity: Each statement performs one clear operation; inline wrapper construction remains straightforward. Reading flow: The parallel method and field loops create a natural, predictable progression.

Run 3

Code Structure: Logically groups method and field scanning within superclass traversal. Nesting: Two loop levels are modest and easy to follow. Clarity of intent: Descriptive method and helper names make annotation collection clear; the comment explains deterministic field ordering. Code length: The implementation is concise, although the long signature would benefit from line wrapping. Action granularity: Each statement performs one main operation; inline wrapper construction remains straightforward. Reading flow: Consistent method-then-field processing creates a natural sequence. Minor drawbacks include generic 'each' variable names and the comment's mismatched 'fieldForAnnotations' identifier.