code: def test_planarity_filter(self):
      torch.manual_seed(0)
  
      # Plane with high planarity
      U = euler_angles_to_rotation_matrix(torch.rand(3) * np.pi)
      plane = (
          torch.rand(1000, 3)
          @ U
          @ torch.diag(torch.tensor([1, 1, 0.001]))
          @ U
      )
      data1 = Data(pos=plane)
      # random isotropic gaussian
      data2 = Data(pos=torch.randn(100, 3))
      plane_filter = PlanarityFilter(0.3)
      self.assertTrue(plane_filter(data2).item())
      self.assertFalse(plane_filter(data1).item())
  
file_path: torch-points3d/test/test_filter.py
imports: import unittest
  import sys
  import os
  import numpy
  import torch
  from torch_geometric.data import Data
  from torch_points3d.core.data_transform import FCompose, PlanarityFilter, euler_angles_to_rotation_matrix
label_desc: Use image node_id 1 for calling the TestFilter obj's underlying member method code with example usage: obj.test_planarity_filter() without return types