Sample
int-909cbe08b7af-SRC
Unmodified source class
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Scalabrino | 0.809 | 0–1; higher is more readable |
| Dorn | 0.04 | 0–1; higher is more readable |
| Mi | 0.131 | 0–1; higher is more readable |
| LLOC | 58 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 17 | 0–20; mean of three runs |
| GPT-6.1 Sol | 17.67 | 0–20; mean of three runs |
| BTTF | 0.665 | 0–1; higher is more readable |
Views
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (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. | 4600.914 | −151.83 |
| Source linesThe number of non-empty source lines. | 291 | +116.4 |
| 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.732 | −7.097 |
Intercept 8.87 + feature contributions = -33.658 (log-odds).
Score = sigmoid(-33.658) = 0.
| Score | 0.809 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 292 | −9.302 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 162 | +4.866 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 290.891 | +3.656 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 162 | −3.297 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 97.613 | +0.77 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.033 | +0.623 |
| 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. | 99.959 | −0.569 |
Intercept 0.07 + feature contributions = -3.182 (log-odds).
Score = sigmoid(-3.182) = 0.04.
| Score | 0.131 |
|---|
| Score | 58 |
|---|
Run 1
This code demonstrates excellent structure and clarity. The class is logically organized with a clear abstract base, well-defined state implementations (ACTIVE, LESS, GREATER), and consistent method overloading. The JavaDoc comments are thorough and provide meaningful context. Nesting is minimal—the only notable nesting is the ternary in classify(), which remains readable. The comparison methods are appropriately granular, with one action per line in most cases. The reading flow is natural, progressing from class documentation through implementation details to method declarations. The code is somewhat verbose due to many abstract method declarations, but this is justified by the API's need for type-specific comparisons. Minor readability challenges include the anonymous ACTIVE class and the non-obvious InactiveComparisonChain pattern, which might require careful study for newcomers. Overall, this is production-quality, maintainable code that balances completeness with clarity.
Run 2
This code is highly readable for a Java utility class. The structure is logical: a private constructor, a single static factory method, an anonymous active implementation, and a private inactive subclass. Public abstract methods are grouped with clear Javadoc, and internal implementations are compact. Nesting is minimal, limited to the anonymous class and the ternary in 'classify'. Intent is explicit—each method name and comment describes behavior concisely. Code length is justified by the class's API surface; repetition in overrides is unavoidable but short. Action granularity follows one-action-per-line mostly, though the ternary packs three branches. Reading flow is natural: start(), compare overloads, result(). The main readability hit comes from verbose Javadocs and annotations, but these are contextual and not core logic. Overall, it's clean, idiomatic Guava code that balances type safety, documentation, and implementation brevity.
Run 3
The code is highly readable for a utility class. Its structure is logical: a clean public API with extensive documentation, followed by private static implementations. Nesting is minimal—the anonymous ACTIVE class and private InactiveComparisonChain are shallow and well-separated. Intent is very clear due to the comprehensive Javadocs, method names, and the comparison chain pattern itself. Code length is justified by the documentation and the need to overload primitive types; it is not unnecessarily verbose. Action granularity is excellent, with one action per line in most methods (e.g., 'return classify(...)'). Reading flow is natural: class docs, constants, helper classes, then the public abstract methods. The only minor deduction is the large amount of documentation relative to executable code, which can feel dense when scanning.
Run 1
Code Structure: Logically separates active comparisons, inactive terminal states, and public API declarations; the state-based design avoids tangled conditionals. Nesting: Methods are shallow, although the anonymous active implementation and nested ternary in classify add modest complexity. Clarity of intent: Descriptive names, consistent overloads, and detailed documentation clearly explain chained comparisons and short-circuit behavior; generic annotations and the unchecked cast require extra attention. Code length: Individual methods are concise, but repeated overloads and extensive documentation make the class lengthy, largely for legitimate API coverage. Action granularity: Statements generally perform one clear action per line; classify compresses multiple decisions into one expression. Reading flow: Consistent formatting and parallel implementations support scanning, though placing implementations before public declarations and separating related methods across sections requires some navigation.
Run 2
Code Structure: Clearly separates active comparison behavior, inactive terminal states, and the public API. Nesting: Methods are shallow; the anonymous implementation and nested ternary in classify add minor complexity. Clarity of intent: Descriptive names, explicit boolean ordering methods, and thorough documentation explain chaining and short-circuit behavior well. Code length: Individual methods are concise, but repeated overloads and extensive documentation make the class lengthy, largely justified by API coverage. Action granularity: Statements generally perform one clear operation per line; classify compresses multiple decisions into one expression. Reading flow: Consistent formatting and overload ordering support scanning, though placing implementation details before public API declarations requires some backtracking.
Run 3
Code Structure: Clear separation between active comparison behavior, inactive states, and public API declarations; the state-based design is logically organized. Nesting: Methods are mostly flat, although the anonymous class and nested ternary add minor complexity. Clarity of intent: Descriptive names, consistent overloads, and thorough documentation explain chaining, ordering, and short-circuit behavior well. Code length: Individual methods are concise, but repeated overload implementations and extensive documentation make the file lengthy, largely justified by API coverage. Action granularity: Statements generally perform one focused action per line; comparison and classification are combined naturally in return expressions. Reading flow: Consistent formatting and method ordering support predictable reading, though placing implementation details before abstract API declarations requires some navigation. Overall, highly readable with modest overhead from boilerplate, generic annotations, and the anonymous implementation.