TST: Fix some MA tests to avoid looking at the .data attribute #7351
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 MaskedArray.data attribute is unreliable for tests because it can contain arbitrary junk data at masked positions. Instead, all MaskedArray tests should look at marr.filled(0) to check if we got the expected result.
This PR is split off from #5706. These unit tests were failing after further changes there.
In fact, it was very confusing because these unit tests will fail but only depending on the order in which tests run: Some unit tests write to the
data
value in themasked
singleton, and then other unit tests assign to elements of a masked array using the masked singleton, which means that their data values get set to whatever the masked singleton had. These later unit tests then check for particular values in the.data
attribute, but that will change depeding on which unit tests modified the masked singleton previously. My changes in #5706 were simply causing the unit tests to run in a different order, causing failures.I spent a long time looking into whether it was possible to prevent writing to the masked singleton, but concluded it is not.