code: def test_point_net_input_transformation():
      """Test transformation module with image input"""
      batch_size = 20
      num_features = 3
      num_points = 100
      pnft = PointNetFeatureTransformNet(
          num_features=num_features,
          non_lin=torch.nn.ReLU,
          use_batch_norm=True,
          embedding_dim=1024,
          pooling_func_name="max",
          use_masking=False,
          num_points=num_points,
      )
      input_tensor = torch.rand(batch_size, num_features, num_points)
      assert pnft(input_tensor, None).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 3 for calling a global function with example usage: test_point_net_input_transformation() without return types