code: def test_pair_distance_toy_example(estimator, build_dataset):
      # Checks that pair_distance works on a toy example
      input_data, labels, _, X = build_dataset()
      n_samples = 20
      X = X[:n_samples]
      model = clone(estimator)
      set_random_state(model)
      model.fit(*remove_y(estimator, input_data, labels))
      pairs = np.stack([X[:10], X[10:20]], axis=1)
      embedded_pairs = pairs.dot(model.components_.T)
      distances = np.sqrt(
          np.sum(
              (embedded_pairs[:, 1] - embedded_pairs[:, 0]) ** 2,
              axis=-1,
          )
      )
      assert_array_almost_equal(model.pair_distance(pairs), distances)
  
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 3 for calling a global function with example usage: test_pair_distance_toy_example(estimator, build_dataset) without return types