code: def test_training_summarizer_basic(self) -> None:
      basic_summarizer = BasicSummarizer(
          lstm_size=10, embedding_size=10
      )
      basic_summarizer.init_model(
          preprocessor=self.preprocessor,
          vectorizer=self.vectorizer,
          embedding_weights_encoder=None,
          embedding_weights_decoder=None,
      )
      loss = 0
      train_step = basic_summarizer.new_train_step(
          loss_function=self.loss_func, batch_size=2
      )
      for e in range(0, 10):
          for source_seq, target_seq in self.dataset.take(-1):
              loss = train_step(source_seq, target_seq)
  
      self.assertAlmostEqual(1.5850255489349365, float(loss), 5)
      output = basic_summarizer.predict_vectors("a c", "")
      expected_first_logits = np.array(
          [-0.00621, 0.007277, 0.015851, -0.034298, 0.044253]
      )
      np.testing.assert_allclose(
          expected_first_logits, output["logits"][0], atol=1e-6
      )
      self.assertEqual(
          "<start> a c <end>", output["preprocessed_text"][0]
      )
      self.assertEqual("<end>", output["predicted_text"])
  
file_path: headliner/tests/test_training.py
imports: import unittest
  import numpy
  import tensorflow
  from headliner.losses import masked_crossentropy
  from headliner.model.basic_summarizer import BasicSummarizer
  from headliner.model.attention_summarizer import AttentionSummarizer
  from headliner.model.transformer_summarizer import TransformerSummarizer
  from headliner.preprocessing.dataset_generator import DatasetGenerator
  from headliner.preprocessing.keras_tokenizer import KerasTokenizer
  from headliner.preprocessing.preprocessor import Preprocessor
  from headliner.preprocessing.vectorizer import Vectorizer
label_desc: Use image node_id 3 for calling the TestTraining obj's underlying member method code with example usage: obj.test_training_summarizer_basic() without return types