Sample
int-61d6c0d3c354-I02
Shorten method, parameter, and local names without collisions
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Scalabrino | 0.606 | 0–1; higher is more readable |
| Dorn | 0.897 | 0–1; higher is more readable |
| Mi | 0.777 | 0–1; higher is more readable |
| LLOC | 53 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 7.67 | 0–20; mean of three runs |
| GPT-6.1 Sol | 11.33 | 0–20; mean of three runs |
| BTTF | 0.432 | 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. | 4761.417 | −157.127 |
| Source linesThe number of non-empty source lines. | 147 | +58.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.833 | −7.25 |
Intercept 8.87 + feature contributions = -96.707 (log-odds).
Score = sigmoid(-96.707) = 0.
| Score | 0.606 |
|---|
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. | 148 | −4.204 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 141 | +4.14 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 146.74 | +1.641 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 93.095 | +0.698 |
| 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. | 94.946 | −0.356 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.119 | −0.218 |
Intercept 0.07 + feature contributions = 2.169 (log-odds).
Score = sigmoid(2.169) = 0.897.
| Score | 0.777 |
|---|
| Score | 53 |
|---|
Run 1
The code has severe readability issues due to intentionally obfuscated method names and parameters. Methods like 'com()', 'element()', 'poll()', 'head()', 'sub()', 'tail()', 'del()', 'entry2()', 'create()', 'mul()', 'ite()', 'siz()', 'to()', and 'to2()' violate Java naming conventions and obscure intent. Multiple actions per line in lazy initialization blocks reduce readability. The class structure itself follows a logical pattern (descending multiset wrapper), but the naming destroys clarity. Nesting is acceptable, but reading flow suffers from non-descriptive identifiers like 'from2', 'from3', 'to2', 'to3', 'res2', 'res3'. The code appears to be deliberately modified from its original Guava form, making it unnecessarily long and confusing to maintain. Only the class-level Javadoc provides context.
Run 2
The code has some redeeming qualities: it follows a logical class structure, methods are generally short and focused, and each line typically performs a single action, which aids readability. However, several significant issues undermine clarity. The method names are highly unnatural and misleading: methods like `com()`, `element()`, `poll()`, `poll2()`, `head()`, `sub()`, `tail()`, `del()`, `entry2()`, `ite()`, `siz()`, `to()`, `to2()` obscure their intent, making the code feel obfuscated. Parameter names such as `from2`, `from3`, `to2`, `to3`, `bound2`, `from4` further reduce clarity. The code violates standard naming conventions expected for a Java collection (e.g., `comparator()`, `pollFirstEntry()`), which would confuse any developer familiar with the domain. Nesting is generally flat, but the `sub()` method signature with multiple generics and BoundaryType parameters is dense. While the structure is not tangled, the unnatural naming makes the code far less readable than it should be, despite its otherwise clean layout.
Run 3
The code shows poor readability due to heavily abbreviated method names ('com', 'element', 'poll', 'head', 'sub', 'tail', 'del', 'ite', 'to', 'mul', 'siz') that obscure intent. Method and parameter names like 'from2', 'to2', 'from3', 'res2', 'res3' are meaningless and imply a minified/obfuscated source. While the overall class structure is logical for a Guava collection, the renaming makes it nearly impossible to determine purpose without reference to the original API. Nesting is reasonable, and most lines contain one action, but the unnatural names break reading flow and clarity of intent. This may be due to intentional test obfuscation rather than actual production code, but as presented, readability is significantly compromised.
Run 1
Code Structure: Methods are logically separated, with delegation and lazy caching organized consistently. Nesting: Mostly shallow; the local EntrySetImpl class adds moderate nesting without complex control flow. Clarity of intent: Severely weakened by abbreviated names such as com, del, ite, and numbered names such as poll2, entry2, and from3. Documentation and internal calls reference forwardMultiset and entryIterator rather than the declared forward and entry methods, creating confusing inconsistencies. Code length: Reasonably concise for a forwarding implementation, although numerous small methods require scanning. Action granularity: Most lines perform one action, but assignment inside a return and a ternary expression combines caching and returning. Reading flow: Consistent formatting and simple delegation help, but opaque naming, inconsistent references, and varying lazy-initialization styles interrupt comprehension.
Run 2
Code Structure: Methods are logically grouped around descending-view delegation, caching, and collection operations, though the local entry-set class adds some complexity. Nesting: Mostly flat, with simple conditionals and one local class. Clarity of intent: Severely weakened by abbreviated or numbered names such as com, poll2, entry2, from3, and to2. References to forwardMultiset() and entryIterator() do not match the declared abstract methods forward() and entry(), creating confusion. Code length: Generally concise, with short delegation methods and little unnecessary code. Action granularity: Usually one action per line, but assignment within a return and a ternary expression compress cache initialization into less readable statements. Reading flow: Consistent formatting and annotations help, but opaque naming, inconsistent cache-initialization styles, and mismatched documentation interrupt comprehension.
Run 3
Code Structure: Methods are logically separated, with a coherent delegation pattern and a localized entry-set implementation, although cached fields are scattered. Nesting: Mostly flat; lazy initialization adds minimal branching, and the local class introduces moderate nesting. Clarity of intent: The main weakness is abbreviated or numbered names such as com, poll2, from3, and to2. Documentation and internal calls reference forwardMultiset and entryIterator, while declared abstractions are forward and entry, creating confusing inconsistencies. Code length: Generally concise, with short delegation methods and little unnecessary code. Action granularity: Most lines perform one action, but assignment within return statements and the ternary cache initialization combine operations. Reading flow: Consistent formatting and annotations support scanning, but ambiguous names, inconsistent terminology, and reversed range arguments require extra interpretation.