docstr: Ensures that the ngram blocking does not mess up when one sequence is shorter
  than another, which would result in repeated "end" symbols.
docstr_tok: ["Ensures","that","the","ngram","blocking","does","not","mess","up","when","one","sequence","is","shorter","than","another",",","which","would","result","in","repeated","``","end","''","symbols","."]
code: def test_repeated_ngram_blocking_end_indices(self):
      """
      Ensures that the ngram blocking does not mess up when one sequence is shorter
      than another, which would result in repeated "end" symbols.
      """
      # We block unigrams, but 5 (the end symbol) is repeated and it does not mess
      # up the sequence's probability
      step_function = get_step_function(
          repeated_ngram_transition_probabilities_0
      )
      self.beam_search.beam_size = 2
      self.beam_search.constraints = [
          RepeatedNGramBlockingConstraint(ngram_size=1)
      ]
      expected_top_k = np.array([[1, 3, 5, 5], [1, 2, 3, 5]])
      expected_log_probs = np.log(np.array([0.6 * 1e-9, 0.4 * 1e-9]))
      self._check_results(
          expected_top_k=expected_top_k,
          expected_log_probs=expected_log_probs,
          take_step=step_function,
      )
  
imports: from typing import Dict, Tuple, Union
  import numpy
  import pytest
  import torch
  from allennlp.common.checks import ConfigurationError
  from allennlp.common.testing import AllenNlpTestCase
  from allennlp.nn.beam_search import MultinomialSampler, BeamSearch, TopKSampler, TopPSampler, GumbelSampler, LengthNormalizedSequenceLogProbabilityScorer, RepeatedNGramBlockingConstraint, StepFunctionTypeWithTimestep, StepFunctionTypeNoTimestep
  from allennlp.common.params import Params
  from allennlp.nn.util import min_value_of_dtype
label_desc: Use image node_id 36 for calling the BeamSearchTest obj's underlying member method code with example usage: obj.test_repeated_ngram_blocking_end_indices() without return types