code: def test_contour_order(glyph0, glyph1):
      # We try matching both the StatisticsControlPen vector
      # and the StatisticsPen vector.
      #
      # If either method found a identity matching, accept it.
      # This is crucial for fonts like Kablammo[MORF].ttf and
      # Nabla[EDPT,EHLT].ttf, since they really confuse the
      # StatisticsPen vector because of their area=0 contours.
  
      n = len(glyph0.controlVectors)
      matching = None
      matching_cost = 0
      identity_cost = 0
      done = n <= 1
      if not done:
          m0Control = glyph0.controlVectors
          m1Control = glyph1.controlVectors
          (
              matching_control,
              matching_cost_control,
              identity_cost_control,
          ) = matching_for_vectors(m0Control, m1Control)
          done = matching_cost_control == identity_cost_control
      if not done:
          m0Green = glyph0.greenVectors
          m1Green = glyph1.greenVectors
          (
              matching_green,
              matching_cost_green,
              identity_cost_green,
          ) = matching_for_vectors(m0Green, m1Green)
          done = matching_cost_green == identity_cost_green
  
      if not done:
          # See if reversing contours in one master helps.
          # That's a common problem.  Then the wrong_start_point
          # test will fix them.
          #
          # Reverse the sign of the area (0); the rest stay the same.
          if not done:
              m1ControlReversed = [(-m[0],) + m[1:] for m in m1Control]
              (
                  matching_control_reversed,
                  matching_cost_control_reversed,
                  identity_cost_control_reversed,
              ) = matching_for_vectors(m0Control, m1ControlReversed)
              done = (
                  matching_cost_control_reversed
                  == identity_cost_control_reversed
              )
          if not done:
              m1GreenReversed = [(-m[0],) + m[1:] for m in m1Green]
              (
                  matching_control_reversed,
                  matching_cost_control_reversed,
                  identity_cost_control_reversed,
              ) = matching_for_vectors(m0Control, m1ControlReversed)
              done = (
                  matching_cost_control_reversed
                  == identity_cost_control_reversed
              )
  
          if not done:
              # Otherwise, use the worst of the two matchings.
              if (
                  matching_cost_control / identity_cost_control
                  < matching_cost_green / identity_cost_green
              ):
                  matching = matching_control
                  matching_cost = matching_cost_control
                  identity_cost = identity_cost_control
              else:
                  matching = matching_green
                  matching_cost = matching_cost_green
                  identity_cost = identity_cost_green
  
      this_tolerance = (
          matching_cost / identity_cost if identity_cost else 1
      )
      log.debug(
          "test-contour-order: tolerance %g",
          this_tolerance,
      )
      return this_tolerance, matching
  
label_desc: Use image node_id 1 for calling a global function with example usage: test_contour_order(glyph0, glyph1) and returns: this_tolerance,  matching