code: def test_epoch(self):
      labeled_data = []
      unlabeled_data = []
  
      for batch_idx, batch in enumerate(self.ss_iterator):
          if SemiSupervisedIterator.is_labeled(batch):
              batch = SemiSupervisedIterator.get_batch(batch)
              labeled_data.extend(batch)
          else:
              batch = SemiSupervisedIterator.get_batch(batch)
              unlabeled_data.extend(batch)
  
      labeled_data = torch.tensor(labeled_data)
      unlabeled_data = torch.tensor(unlabeled_data)
  
      assert len(labeled_data) == len(unlabeled_data)
      assert torch.all(labeled_data % 2 == 0)
      assert torch.all(unlabeled_data % 2 != 0)
  
file_path: baal/tests/utils/ssl_iterator_test.py
imports: import unittest
  import pytest
  import torch
  from torch.utils.data import Dataset, ConcatDataset
  from baal.active import ActiveLearningDataset
  from baal.utils.ssl_iterator import SemiSupervisedIterator
label_desc: Use image node_id 2 for calling the SSLDatasetTest obj's underlying member method code with example usage: obj.test_epoch() without return types