code: def test_branch():
      """Create an image with one soma and a neurite with a branch"""
      image = numpy.zeros((30, 15), bool)
      image[6:15, 7] = True
      image[15 + numpy.arange(3), 7 + numpy.arange(3)] = True
      image[15 + numpy.arange(3), 7 - numpy.arange(3)] = True
      labels = numpy.zeros((30, 15), int)
      labels[1:8, 3:10] = 1
      workspace, module = make_workspace(labels, image)
      module.run(workspace)
      m = workspace.measurements
      assert isinstance(m, cellprofiler_core.measurement.Measurements)
      for feature, expected in (
          (
              cellprofiler.modules.measureobjectskeleton.F_NUMBER_NON_TRUNK_BRANCHES,
              1,
          ),
          (
              cellprofiler.modules.measureobjectskeleton.F_NUMBER_TRUNKS,
              1,
          ),
      ):
          mname = "_".join(
              (
                  cellprofiler.modules.measureobjectskeleton.C_OBJSKELETON,
                  feature,
                  IMAGE_NAME,
              )
          )
          data = m.get_current_measurement(OBJECT_NAME, mname)
          assert len(data) == 1
          assert data[0] == expected
  
imports: import os
  import tempfile
  import traceback
  import numpy
  import six.moves
  import cellprofiler_core.image
  import cellprofiler_core.measurement
  from cellprofiler_core.constants.measurement import GROUP_NUMBER, GROUP_INDEX, COLTYPE_FLOAT, COLTYPE_INTEGER
  import cellprofiler.modules.measureobjectskeleton
  import cellprofiler_core.object
  import cellprofiler_core.pipeline
  import cellprofiler_core.preferences
  import cellprofiler_core.setting
  import cellprofiler_core.workspace
  import tests.frontend.modules
label_desc: Use image node_id 7 for calling a global function with example usage: test_branch() without return types