code: def check_is_distance_matrix(pairwise):
      assert (pairwise >= 0).all()  # positivity
      assert np.array_equal(pairwise, pairwise.T)  # symmetry
      assert (pairwise.diagonal() == 0).all()  # identity
      # triangular inequality
      tol = 1e-12
      assert (
          pairwise
          <= pairwise[:, :, np.newaxis]
          + pairwise[:, np.newaxis, :]
          + tol
      ).all()
  
imports: from itertools import product
  import pytest
  import numpy
  from numpy.linalg import LinAlgError
  from numpy.testing import assert_array_almost_equal, assert_allclose, assert_array_equal
  from scipy.spatial.distance import pdist, squareform, mahalanobis
  from scipy.stats import ortho_group
  from sklearn import clone
  from sklearn.cluster import DBSCAN
  from sklearn.datasets import make_spd_matrix, make_blobs
  from sklearn.utils import check_random_state, shuffle
  from sklearn.utils.multiclass import type_of_target
  from metric_learn.sklearn_shims import set_random_state
  from metric_learn._util import make_context, _initialize_metric_mahalanobis
  from metric_learn.sdml import _BaseSDML
  from metric_learn.base_metric import _QuadrupletsClassifierMixin, _TripletsClassifierMixin, _PairsClassifierMixin
  from metric_learn.exceptions import NonPSDError
  from test.test_utils import ids_metric_learners, metric_learners, remove_y, ids_classifiers
label_desc: Use image node_id 6 for calling a global function with example usage: check_is_distance_matrix(pairwise) without return types