docstr: Test conversion of 2D dense where some labels overlap and some do not
  to sparse
  
  dense input: label=2, c=1,t=1,z=1,y=4,x=5
  
      1 1 2 0 0
      1 1 2 0 0
      0 0 0 4 4
      0 0 0 0 0
      ---
      0 0 0 0 0
      0 0 3 0 0
      0 0 0 0 5
      0 0 0 0 5
docstr_tok: ["Test","conversion","of","2D","dense","where","some","labels","overlap","and","some","do","not","to","sparse","dense","input",":","label=2",",","c=1",",","t=1",",","z=1",",","y=4",",","x=5","1","1","2","0","0","1","1","2","0","0","0","0","0","4","4","0","0","0","0","0","--","-","0","0","0","0","0","0","0","3","0","0","0","0","0","0","5","0","0","0","0","5"]
code: def test_02_04_2d_dense_some_overlap_to_sparse(self):
      """
      Test conversion of 2D dense where some labels overlap and some do not
      to sparse
  
      dense input: label=2, c=1,t=1,z=1,y=4,x=5
  
          1 1 2 0 0
          1 1 2 0 0
          0 0 0 4 4
          0 0 0 0 0
          ---
          0 0 0 0 0
          0 0 3 0 0
          0 0 0 0 5
          0 0 0 0 5
      """
      dense = np.array(
          [
              [
                  1,
                  1,
                  2,
                  0,
                  0,
                  1,
                  1,
                  2,
                  0,
                  0,
                  0,
                  0,
                  0,
                  4,
                  4,
                  0,
                  0,
                  0,
                  0,
                  0,
              ],
              [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  3,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  5,
                  0,
                  0,
                  0,
                  0,
                  5,
              ],
          ],
          np.uint8,
      ).reshape((2, 1, 1, 1, 4, 5))
  
      indices = lib_seg.indices_from_dense(dense)
  
      indices_expected = [
          np.array([1, 2, 4], np.uint8),
          np.array([3, 5], np.uint8),
      ]
  
      _check_indices(indices, indices_expected)
  
      sparse = lib_seg.convert_dense_to_sparse(dense)
  
      expected_ys = np.array(
          [0, 0, 0, 1, 1, 1, 2, 2, 1, 2, 3], dtype=np.uint16
      )
      expected_xs = np.array(
          [0, 1, 2, 0, 1, 2, 3, 4, 2, 4, 4], dtype=np.uint16
      )
      expected_labels = np.array(
          [1, 1, 2, 1, 1, 2, 4, 4, 3, 5, 5], dtype=np.uint8
      )
  
      np.testing.assert_array_equal(
          sparse[SPARSE_FIELD.y.value], expected_ys
      )
      np.testing.assert_array_equal(
          sparse[SPARSE_FIELD.x.value], expected_xs
      )
      np.testing.assert_array_equal(
          sparse[SPARSE_FIELD.label.value], expected_labels
      )
      np.testing.assert_equal(
          sparse[SPARSE_FIELD.y.value].dtype, expected_ys.dtype
      )
      np.testing.assert_equal(
          sparse[SPARSE_FIELD.x.value].dtype, expected_xs.dtype
      )
      np.testing.assert_equal(
          sparse[SPARSE_FIELD.label.value].dtype, expected_labels.dtype
      )
  
imports: import numpy
  import centrosome.outline
  import cellprofiler_library.functions.segmentation
  from cellprofiler_library.functions.segmentation import SPARSE_FIELD
label_desc: Use image node_id 4 for calling the TestSegmentation obj's underlying member method code with example usage: obj.test_02_04_2d_dense_some_overlap_to_sparse() without return types