code: def check(self, oldtype, factory, *args):
      try:
          if oldtype is not None:
              newtype = factory(oldtype, *args)
          else:
              newtype = factory(*args)
          if newtype == MPI.DATATYPE_NULL or newtype.Get_size() == 0:
              raise NotImplementedError
      except NotImplementedError:
          self.skipTest("mpi-type-constructor")
      self.check_contents(factory, newtype, oldtype)
      self.check_recreate(factory, newtype)
      newtype.Commit()
      self.check_contents(factory, newtype, oldtype)
      self.check_recreate(factory, newtype)
      self.free(newtype)
  
imports: from mpi4py import MPI
  import mpiunittest
  import struct
label_desc: Use image node_id 1 for calling the TestDatatypeCreate obj's underlying member method code with example usage: obj.check(oldtype, factory) without return types