class_docstr: Basic speed test. Does not show full potential as
  1) a relatively small matrix is used to keep test duration reasonable
  2) StringIO/BytesIO are noticeably slower than native C++ I/O to an SSD.
code: def setup(self, implementation, matrix_type):
      # Use a 10MB matrix size to keep the runtimes somewhat short
      self.size = int(10e6)
  
      if matrix_type == "coo":
          self.a = generate_coo(self.size)
      elif matrix_type == "dense":
          self.a = generate_dense(self.size)
      elif matrix_type == "csr":
          self.a = generate_csr(self.size)
      else:
          raise NotImplementedError
  
      bio = BytesIO()
      mmwrite(bio, self.a, symmetry="general")
      self.a_str = bio.getvalue().decode()
  
imports: from .common import set_mem_rlimit, run_monitored, get_mem_info
  from io import BytesIO, StringIO
  import os
  import tempfile
  import numpy
  from .common import Benchmark, safe_import
label_desc: Use image node_id 1 for calling the IOSpeed obj's underlying member method code with example usage: obj.setup(implementation, matrix_type) without return types