code: def test_manhattan_distances_execution(setup, x, y, is_sparse):
      if is_sparse:
          rx, ry = raw_sparse_x, raw_sparse_y
      else:
          rx, ry = raw_x, raw_y
  
      sv = [True, False] if not is_sparse else [True]
  
      for sum_over_features in sv:
          d = manhattan_distances(x, y, sum_over_features)
  
          result = d.execute().fetch()
          expected = sk_manhattan_distances(
              rx, ry, sum_over_features=sum_over_features
          )
  
          np.testing.assert_almost_equal(result, expected)
  
          d = manhattan_distances(
              x, sum_over_features=sum_over_features
          )
  
          result = d.execute().fetch()
          expected = sk_manhattan_distances(
              rx, sum_over_features=sum_over_features
          )
  
          np.testing.assert_almost_equal(result, expected)
  
file_path: mars/mars/learn/metrics/pairwise/tests/test_manhattan_distances.py
imports: import numpy
  import scipy.sparse
  import pytest
  from sklearn.metrics.pairwise import manhattan_distances
  from .....None import tensor
  from ..None import manhattan_distances
label_desc: Use image node_id 2 for calling a global function with example usage: test_manhattan_distances_execution(setup, x, y, is_sparse) without return types