code: def test_performer_softmax_fftmasked_encoder_result(self):
      attention_fn_configs = dict()
      attention_fn_configs["attention_kind"] = "performer"
      attention_fn_configs["performer"] = {
          "masking_type": "fftmasked",
          "kernel_transformation": "softmax",
          "num_features": 64,
          "rpe_method": None,
          "num_realizations": 10,
          "num_sines": 1,
          "use_random_projections": True,
          "seed": 41,
      }
      rng_key = jax.random.PRNGKey(SEED)
      inputs = jax.random.normal(
          key=rng_key, shape=(BATCH, NB_POINTS, DIM)
      )
      pct_encoder = models.PointCloudTransformerEncoder(
          in_dim=IN_DIM,
          feature_dim=FEATURE_DIM,
          attention_fn_configs=attention_fn_configs,
      )
      variables = pct_encoder.init(rng_key, inputs)
      result = pct_encoder.apply(variables, inputs)
      self.assertEqual(result.shape, (BATCH, NB_POINTS, OUT_DIM))
  
file_path: scenic/scenic/projects/pointcloud/models_test.py
imports: from absl.testing import absltest
  from absl.testing import parameterized
  import jax
  from scenic.projects.pointcloud import models
label_desc: Use image node_id 4 for calling the PerformerModelTest obj's underlying member method code with example usage: obj.test_performer_softmax_fftmasked_encoder_result() without return types