Sample
int-026d5618884d-SRC
Unmodified source class
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Dorn | 0.117 | 0–1; higher is more readable |
| Mi | 0.143 | 0–1; higher is more readable |
| LLOC | 21 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 17.67 | 0–20; mean of three runs |
| GPT-6.1 Sol | 18 | 0–20; mean of three runs |
| BTTF | 0.616 | 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. | 1529.232 | −50.465 |
| Source linesThe number of non-empty source lines. | 52 | +20.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.719 | −7.078 |
Intercept 8.87 + feature contributions = -27.873 (log-odds).
Score = sigmoid(-27.873) = 0.
Feature contributions
| Feature | Value | Contribution (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. | 112.962 | −1.119 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 52 | +1.061 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 53 | −0.84 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 0 | −0.804 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 52 | −0.772 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 51.816 | +0.314 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.09 | +0.069 |
Intercept 0.07 + feature contributions = -2.021 (log-odds).
Score = sigmoid(-2.021) = 0.117.
| Score | 0.143 |
|---|
| Score | 21 |
|---|
Run 1
The code is well-structured, with a logical enum layout: constants first, then static fields, constructor, accessor methods, and a lookup method. Nesting is minimal, with only a single loop inside the static initializer and lookup method. Intent is clear: each enum constant maps a STOMP version to its subprotocol, and the static block builds a comma-separated list for registration. Code length is appropriate for the functionality, and actions are granular, one per line. Reading flow is natural and easy to follow. Minor deductions: the static initializer could be more concise with streams, and error handling in findBySubProtocol is slightly abrupt, but overall readability is excellent.
Run 2
The code is well-structured and highly readable. The enum constants are clearly named, and fields are logically separated with appropriate access modifiers. Nesting is minimal—only one level in the static initializer and lookup method, which is easy to follow. Intent is explicit: the enum represents STOMP protocol versions, and each method has a clear purpose. Code length is concise without unnecessary duplication; helper methods like version(), subProtocol(), and findBySubProtocol() are straightforward. Action granularity is good, with each line performing a single logical operation. Reading flow is natural, moving from constants to static initialization, fields, constructor, accessors, and finally the utility lookup. Minor improvements could include formatting the static block with streams or simplifying the null check, but overall clarity is excellent.
Run 3
The code is well-structured and readable. The enum clearly groups constants and related utilities. Nesting is minimal (one level in the static initializer and findBySubProtocol). Intent is explicit: enum constants represent STOMP versions, and methods are self-explanatory. Code length is appropriate—no excessive verbosity. Each line performs a single action, and the reading flow from enum constants to static block to instance methods to lookup logic is natural. Minor deductions: the static block could be slightly simpler using streams, and findBySubProtocol throws a generic exception with string concatenation, but both are conventional. Overall, highly readable with clear naming and logical organization.
Run 1
Code Structure: The enum is logically organized into constants, static initialization, fields, constructor, accessors, and lookup method. Nesting: Most code is flat, though findBySubProtocol has three nested control levels that could be reduced with an early null check. Clarity of intent: Descriptive names and immutable fields clearly communicate version metadata and subprotocol lookup; the exception wording is slightly awkward. Code length: Compact and appropriately scoped, with little unnecessary code. Action granularity: Statements generally perform one action per line, making operations easy to follow. Reading flow: The declaration-to-behavior progression is natural, and consistent formatting supports scanning; spacing between the package declaration and imports would slightly improve readability.
Run 2
Code Structure: The enum logically groups supported versions, shared constants, initialization, fields, accessors, and lookup behavior. Nesting: Most code is flat, though findBySubProtocol has three nested control structures that could be simplified with an early null check. Clarity of intent: Descriptive names and straightforward operations clearly express version-to-subprotocol mapping and lookup. Code length: Compact and appropriate, with little unnecessary code. Action granularity: Each statement performs a single clear action. Reading flow: Conventional organization and consistent formatting make the code easy to follow; the static initialization appearing before instance fields slightly interrupts the flow.
Run 3
Code Structure: The enum logically groups protocol constants, initialization, fields, constructor, accessors, and lookup behavior. Nesting: Most code is flat, though findBySubProtocol nests a loop and condition inside a null check; a guard clause could reduce indentation. Clarity of intent: Descriptive names and straightforward operations make version mapping and lookup easy to understand. Code length: Compact and appropriately sized, with little unnecessary code. Action granularity: Statements generally perform one action per line, supporting easy scanning. Reading flow: Conventional ordering and consistent formatting provide a natural progression, although spacing between the package declaration and imports would improve presentation.