code: def test_set_fields(self):
      # Tests setting fields.
      base = self.base.copy()
      mbase = base.view(mrecarray)
      mbase = mbase.copy()
      mbase.fill_value = (999999, 1e20, "N/A")
      # Change the data, the mask should be conserved
      mbase.a._data[:] = 5
      assert_equal(mbase["a"]._data, [5, 5, 5, 5, 5])
      assert_equal(mbase["a"]._mask, [0, 1, 0, 0, 1])
      # Change the elements, and the mask will follow
      mbase.a = 1
      assert_equal(mbase["a"]._data, [1] * 5)
      assert_equal(ma.getmaskarray(mbase["a"]), [0] * 5)
      # Use to be _mask, now it's recordmask
      assert_equal(mbase.recordmask, [False] * 5)
      assert_equal(
          mbase._mask.tolist(),
          np.array(
              [(0, 0, 0), (0, 1, 1), (0, 0, 0), (0, 0, 0), (0, 1, 1)],
              dtype=bool,
          ),
      )
      # Set a field to mask ........................
      mbase.c = masked
      # Use to be mask, and now it's still mask !
      assert_equal(mbase.c.mask, [1] * 5)
      assert_equal(mbase.c.recordmask, [1] * 5)
      assert_equal(ma.getmaskarray(mbase["c"]), [1] * 5)
      assert_equal(ma.getdata(mbase["c"]), [b"N/A"] * 5)
      assert_equal(
          mbase._mask.tolist(),
          np.array(
              [(0, 0, 1), (0, 1, 1), (0, 0, 1), (0, 0, 1), (0, 1, 1)],
              dtype=bool,
          ),
      )
      # Set fields by slices .......................
      mbase = base.view(mrecarray).copy()
      mbase.a[3:] = 5
      assert_equal(mbase.a, [1, 2, 3, 5, 5])
      assert_equal(mbase.a._mask, [0, 1, 0, 0, 0])
      mbase.b[3:] = masked
      assert_equal(mbase.b, base["b"])
      assert_equal(mbase.b._mask, [0, 1, 0, 1, 1])
      # Set fields globally..........................
      ndtype = [("alpha", "|S1"), ("num", int)]
      data = ma.array([("a", 1), ("b", 2), ("c", 3)], dtype=ndtype)
      rdata = data.view(MaskedRecords)
      val = ma.array([10, 20, 30], mask=[1, 0, 0])
  
      rdata["num"] = val
      assert_equal(rdata.num, val)
      assert_equal(rdata.num.mask, [1, 0, 0])
  
imports: import numpy
  import numpy.ma
  from numpy import recarray
  from numpy.ma import masked, nomask
  from numpy.testing import temppath
  from numpy.core.records import fromrecords, fromarrays
  from numpy.ma.mrecords import MaskedRecords, mrecarray, fromarrays, fromtextfile, fromrecords, addfield
  from numpy.ma.testutils import assert_, assert_equal, assert_equal_records
  from numpy.compat import pickle
label_desc: Use image node_id 3 for calling the TestMRecords obj's underlying member method code with example usage: obj.test_set_fields() without return types