code: def test_codegen_sample_max_time(self):
      tokenizer = AutoTokenizer.from_pretrained(
          "Salesforce/codegen-350M-mono"
      )
      model = CodeGenForCausalLM.from_pretrained(
          "Salesforce/codegen-350M-mono"
      )
      model.to(torch_device)
  
      torch.manual_seed(0)
      tokenized = tokenizer(
          "Today is a nice day and",
          return_tensors="pt",
          return_token_type_ids=True,
      )
      input_ids = tokenized.input_ids.to(torch_device)
  
      MAX_TIME = 0.05
  
      start = datetime.datetime.now()
      model.generate(
          input_ids, do_sample=True, max_time=MAX_TIME, max_length=256
      )
      duration = datetime.datetime.now() - start
      self.assertGreater(duration, datetime.timedelta(seconds=MAX_TIME))
      self.assertLess(
          duration, datetime.timedelta(seconds=2 * MAX_TIME)
      )
  
      start = datetime.datetime.now()
      model.generate(
          input_ids, do_sample=False, max_time=MAX_TIME, max_length=256
      )
      duration = datetime.datetime.now() - start
      self.assertGreater(duration, datetime.timedelta(seconds=MAX_TIME))
      self.assertLess(
          duration, datetime.timedelta(seconds=2 * MAX_TIME)
      )
  
      start = datetime.datetime.now()
      model.generate(
          input_ids,
          do_sample=False,
          num_beams=2,
          max_time=MAX_TIME,
          max_length=256,
      )
      duration = datetime.datetime.now() - start
      self.assertGreater(duration, datetime.timedelta(seconds=MAX_TIME))
      self.assertLess(
          duration, datetime.timedelta(seconds=2 * MAX_TIME)
      )
  
      start = datetime.datetime.now()
      model.generate(
          input_ids,
          do_sample=True,
          num_beams=2,
          max_time=MAX_TIME,
          max_length=256,
      )
      duration = datetime.datetime.now() - start
      self.assertGreater(duration, datetime.timedelta(seconds=MAX_TIME))
      self.assertLess(
          duration, datetime.timedelta(seconds=2 * MAX_TIME)
      )
  
      start = datetime.datetime.now()
      model.generate(
          input_ids, do_sample=False, max_time=None, max_length=256
      )
      duration = datetime.datetime.now() - start
      self.assertGreater(
          duration, datetime.timedelta(seconds=2 * MAX_TIME)
      )
  
imports: import datetime
  import unittest
  from transformers import CodeGenConfig, is_torch_available
  from transformers.testing_utils import require_torch, slow, torch_device
  from ...generation.test_generation_utils import GenerationTesterMixin
  from ...test_configuration_common import ConfigTester
  from ...test_modeling_common import ModelTesterMixin, floats_tensor, ids_tensor, random_attention_mask
label_desc: Use image node_id 3 for calling the CodeGenModelLanguageGenerationTest obj's underlying member method code with example usage: obj.test_codegen_sample_max_time() without return types