code: def test_forward_key_position(pretrain_file):
      """
      Test KEY and UNTIED_KEY either with or without reduce_position
      """
      model = build_model(
          pretrain_file,
          "--constituency_composition",
          "untied_key",
          "--reduce_position",
          "0",
      )
      run_forward_checks(model, num_states=2)
  
      model = build_model(
          pretrain_file,
          "--constituency_composition",
          "untied_key",
          "--reduce_position",
          "32",
      )
      run_forward_checks(model, num_states=2)
  
      model = build_model(
          pretrain_file,
          "--constituency_composition",
          "key",
          "--reduce_position",
          "0",
      )
      run_forward_checks(model, num_states=2)
  
      model = build_model(
          pretrain_file,
          "--constituency_composition",
          "key",
          "--reduce_position",
          "32",
      )
      run_forward_checks(model, num_states=2)
  
imports: import os
  import pytest
  import torch
  from stanza.models.common import pretrain
  from stanza.models.common.utils import set_random_seed
  from stanza.models.constituency import parse_transitions
  from stanza.tests import *
  from stanza.tests.constituency import test_parse_transitions
  from stanza.tests.constituency.test_trainer import build_trainer
label_desc: Use image node_id 25 for calling a global function with example usage: test_forward_key_position(pretrain_file) without return types