def METHOD_NAME(input_batch_size: int, input_seq_size: int, input_hidden_size: int):
    # make repeatable
    set_random_seed(RANDOM_SEED)
    # Generate synthetic data
    current_inputs = torch.normal(0, 1, size=[input_batch_size, input_seq_size, input_hidden_size], dtype=torch.float32)
    # instantiate feed forward attention reducer
    feed_forward_attention_reducer = FeedForwardAttentionReducer(input_hidden_size)
    result = feed_forward_attention_reducer(current_inputs)
    # ensure returned tensor is the correct shape
    assert list(result.shape) == [input_batch_size, input_hidden_size]
    # check for parameter updating if fully connected layer is present
    target = torch.randn(result.shape)
    fpc, tpc, upc, not_updated = check_module_parameters_updated(
        feed_forward_attention_reducer,
        (current_inputs,),
        target,
    )
    assert upc == tpc, f"Some parameters not updated.  These parameters not updated: {not_updated}"