Fix bin_array to retain duplicate values per IEEE 1800-2023 #252
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.
The
bin_arrayclass was removing duplicate values during initialization, violating IEEE 1800-2023 §18.5.1.1 which states: "Duplicate values are retained; thus the same value can be assigned to multiple bins."Root Cause
bin_array.__init__calledself.ranges.compact()which merges overlapping ranges and eliminates duplicates. This collapsed specifications like[1:10], 1, 4, 7(13 values) into just[1:10](10 values), breaking bin distribution.Changes
compact()call, added comment explaining IEEE requirementcov.xmlExample
Before: 3 bins created (duplicates removed)
After: 4 bins as
<1,2,3>, <4,5,6>, <7,8,9>, <10,1,4,7>with values 1, 4, 7 hitting both their range bin and bin[3] when sampled.Testing
All existing tests pass. New test suite validates duplicate handling across range overlaps, separate values, and exact duplicates.
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.