code: def test_abdm_mvdm(cats_and_labels):
      X, y = cats_and_labels
      n_cols = X.shape[1]
      cat_vars = {i: None for i in range(n_cols)}
      if n_cols > 1:
          d_pair = abdm(X, cat_vars)
      else:
          d_pair = mvdm(X, y, cat_vars)
      assert list(d_pair.keys()) == list(cat_vars.keys())
      for k, v in d_pair.items():
          assert v.shape == (cat_vars[k], cat_vars[k])
          assert v.min() >= 0
  
file_path: alibi/alibi/utils/tests/test_distance.py
imports: import numpy
  from scipy.spatial.distance import cityblock
  from itertools import product
  import pytest
  from alibi.utils.distance import abdm, cityblock_batch, mvdm, multidim_scaling
label_desc: Use image node_id 4 for calling a global function with example usage: test_abdm_mvdm(cats_and_labels) without return types