code: def test_fps_sampling_registration(self):
      pos = torch.tensor(
          [
              [0, 0, 0],
              [0.5, 0.5, 0],
              [0.4, 0.2, 0],
              [2, 2, 2],
              [-1, -2, -0.01],
          ]
      ).float()
      pair_ind = torch.tensor(
          [[0, 0], [1, 1], [2, 2], [3, 3], [4, 4]]
      ).long()
      num_pos_pairs = 3
      new_ind = fps_sampling(pair_ind, pos, num_pos_pairs)
      new_pair_ind = pair_ind[new_ind]
      sol = torch.tensor([[0, 0], [3, 3], [4, 4]]).long()
      torch.testing.assert_allclose(new_pair_ind, sol)
  
file_path: torch-points3d/test/test_fps.py
imports: import torch
  import numpy
  from torch_geometric.nn import fps
  import unittest
  import logging
  import os
  import sys
  from test import run_if_cuda
  from torch_points3d.datasets.registration.utils import fps_sampling
label_desc: Use image node_id 2 for calling the TestPytorchClusterFPS obj's underlying member method code with example usage: obj.test_fps_sampling_registration() without return types