code: def test_point_net_feature_transform():
      """Test transformation module with feature input"""
      num_points = 100
      batch_size = 10
      embedding_dim = 1024
      for KK in [32, 64]:
          for pooling_func_str in ["max", "mean", "sum"]:
              perform_test_for_parameters(
                  num_points,
                  batch_size,
                  KK,
                  embedding_dim,
                  pooling_func_str,
                  False,
              )
  
      perform_test_for_parameters(100, 10, 33, 1024, "max", True)
      perform_test_for_parameters(100, 10, 33, 1024, "mean", True)
      perform_test_for_parameters(100, 10, 33, 1024, "sum", True)
  
      with pytest.raises(ValueError):
          perform_test_for_parameters(
              100, 10, 33, 1024, "something", False
          )
  
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 2 for calling a global function with example usage: test_point_net_feature_transform() without return types