code: def test_exit_on_nan_losses(self, a):
      config = self._get_config(
          max_updates=2, max_epochs=None, batch_size=4
      )
      trainer = TrainerTrainingLoopMock(config=config)
      add_model(trainer, SimpleNaNLossModel({"in_dim": 1}))
      add_optimizer(trainer, config)
      registry.register("config", trainer.config)
      batch_size = get_batch_size()
      trainer.config.training.batch_size = batch_size
      trainer.load_datasets()
  
      exception_raised = False
      try:
          trainer.training_loop()
      except RuntimeError:
          exception_raised = True
      self.assertTrue(exception_raised)
  
imports: import unittest
  from unittest.mock import MagicMock, patch
  import torch
  from mmf.common.registry import registry
  from mmf.utils.general import get_batch_size
  from tests.test_utils import SimpleModel, SimpleNaNLossModel
  from tests.trainers.test_trainer_mocks import TrainerTrainingLoopMock
  from tests.trainers.test_utils import add_model, add_optimizer, get_config_with_defaults, get_mmf_trainer
label_desc: Use image node_id 13 for calling the TestTrainingLoop obj's underlying member method code with example usage: obj.test_exit_on_nan_losses(a) without return types