Sry @ajdawson, yes I missed your comment before, there is a bug in numpy when using the `np.testing.assert_array_equal(a, b)` with SOME masked arrays.  I'm not sure exactly what it was as I didn't have time to debug numpy itself and the masked array is generated rather than defined explicitly (as your above example).

Comparing the data specifically resulted in True, and the Mask specifically, a True also. i.e. the data was all identical and so was the mask.
```Python
# where a & b are masked arrays
>>> np.testing.assert_array_equal(a.data, b.data)
True
>>> np.testing.assert_array_equal(a.mask, b.mask)
True
>>> np.testing.assert_array_equal(a, b)
False
```