code: def test_dist_properties(self, dist_fnc, point_a, point_b, point_c):
      dist_ab = dist_fnc(point_a, point_b)
      dist_ba = dist_fnc(point_b, point_a)
      self.assertAllClose(dist_ab, dist_ba)
  
      res = dist_fnc(point_a, point_a)
      self.assertAllClose(res, gs.zeros_like(res))
  
      dist_ac = dist_fnc(point_a, point_c)
      dist_cb = dist_fnc(point_c, point_b)
      rhs = dist_ac + dist_cb
      assert dist_ab <= (gs.atol + gs.rtol * rhs) + rhs
  
imports: from collections.abc import Iterable
  import geomstats.backend
  from geomstats.test.test_case import TestCase
label_desc: Use image node_id 4 for calling the PointSetMetricTestCase obj's underlying member method code with example usage: obj.test_dist_properties(dist_fnc, point_a, point_b, point_c) without return types