code: def _test_logging(self, history, lrs=None):
      if lrs is None:
          lrs = [BaseCSVLoggerTest.lr]
  
      calls = []
      for h in history:
          for k, v in h.items():
              calls.append(call(k, v, h["epoch"]))
  
          if len(lrs) == 1:
              calls.append(call("lr", self.lr, h["epoch"]))
          else:
              for i, lr in enumerate(lrs):
                  calls.append(call(f"lr_group_{i}", lr, h["epoch"]))
  
      self.writer.add_scalar.assert_has_calls(calls, any_order=True)
  
imports: import csv
  import os
  from tempfile import TemporaryDirectory
  from unittest import TestCase, main, skipIf
  from unittest.mock import MagicMock, call
  import torch
  import torch.nn
  from tests.framework.tools import some_data_generator
  from poutyne import AtomicCSVLogger, Callback
  from poutyne import CSVLogger
  from poutyne import Model, TensorBoardLogger
label_desc: Use image node_id 5 for calling the BaseTensorBoardLoggerWithSplitTrainValTest obj's underlying member method code with example usage: obj._test_logging(history, lrs) without return types