code: def test_evaluate_normal(self):
      # check against PyOptimalTransport's EMD2
      a_ = d1 / np.sum(d1)
      b_ = d2 / np.sum(d2)
      dist = np.array([abs(i - b_) for i in a_], dtype=float)
      expected = emd2(a_, b_, dist)
      actual = _evaluate(sd1, sd2, num_iters=100000)
      assert (
          abs(expected - actual) < 1e-3
      ), f"EMD must be {expected}, got {actual}"
  
imports: import numpy
  import pandas
  from aif360.metrics.ot_metric import _normalize, _transform, _evaluate
  from aif360.sklearn.metrics import ot_distance
  from ot import emd2
  import unittest
  from unittest import TestCase
label_desc: Use image node_id 2 for calling the TestEvaluate obj's underlying member method code with example usage: obj.test_evaluate_normal() without return types