Fix nondeterministic list comparison in doAssertEquals for PriorityQueue tests #1220
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A failure occurred in
testPriorityQueueSubclass()andtestPriorityQueue()in both the main and main-versioned modules when using NonDex to run these commands:Reasons for the failure:
A PriorityQueue in Java is backed by a binary heap, which guarantees the smallest element can be accessed quickly but does not guarantee iteration order. When converted to a list, two queues with the same elements can produce different sequences depending on their internal heap structure. The original doAssertEquals used assertEquals on the lists, which compared both order and contents, so the tests failed even though the queues contained the same elements.
The Fix:
Updated doAssertEquals to handle list comparison by first checking list sizes to ensure element counts match. Then verifying that each list contains all elements of the other, ignoring order. For non-list values, the original assertEquals is preserved.