code: def perform_test_for_parameters(
      num_points: int,
      batch_size: int,
      num_features: int,
      embedding_dim: int,
      pooling_func_name: str,
      use_masking: bool,
  ) -> None:
      """Perform test on Feature transformation module with given input parameters
  
      :param num_points: The number of points.
      :param batch_size: The batch size.
      :param num_features: The feature dimension.
      :param embedding_dim: The embedding dimension.
      :param pooling_func_name: The pooling function string representing the function to use.
      :param use_masking: Specify whether to use masking.
      """
  
      pnft = PointNetFeatureTransformNet(
          num_features=num_features,
          non_lin=torch.nn.ReLU,
          use_batch_norm=True,
          embedding_dim=embedding_dim,
          pooling_func_name=pooling_func_name,
          use_masking=use_masking,
          num_points=num_points,
      )
      input_tensor = torch.rand(batch_size, num_features, num_points)
      mask_tensor = (
          torch.randint(0, 2, size=(batch_size, num_points))
          if use_masking
          else None
      )
      print(mask_tensor)
      assert pnft(input_tensor, mask_tensor).shape == torch.Size(
          [batch_size, num_features, num_features]
      )
  
file_path: maze/maze/test/perception/blocks/test_point_net.py
imports: import pytest
  import torch
  from maze.perception.blocks.feed_forward.point_net import PointNetFeatureTransformNet, PointNetFeatureBlock
  from maze.test.perception.perception_test_utils import build_input_dict, build_multi_input_dict
label_desc: Use image node_id 1 for calling a global function with example usage: perform_test_for_parameters(num_points, batch_size, num_features, embedding_dim, pooling_func_name, use_masking) without return types