code: def test_batcher(self):
      data = [
          RowData(
              {"text": "something"}, {"a": i, "b": 10 + i, "c": 20 + i}
          )
          for i in range(10)
      ]
      batcher = Batcher(train_batch_size=3)
      batches = list(batcher.batchify(data))
      self.assertEqual(len(batches), 4)
      self.assertEqual(len(batches[0].raw_data), 3)
      self.assertEqual("something", batches[1].raw_data[0]["text"])
      self.assertEqual(batches[1].numberized["a"], [3, 4, 5])
      self.assertEqual(batches[3].numberized["b"], [19])
  
imports: import unittest
  from pytext.common.constants import RawExampleFieldName, Stage
  from pytext.data import Batcher, Data, PoolingBatcher
  from pytext.data.data import RowData
  from pytext.data.sources import RawExample
  from pytext.data.sources.data_source import SafeFileWrapper
  from pytext.data.sources.tsv import TSVDataSource
  from pytext.data.tensorizers import LabelTensorizer, TokenTensorizer
  from pytext.data.utils import pad
  from pytext.utils import precision
  from pytext.utils.test import import_tests_module
label_desc: Use image node_id 1 for calling the BatcherTest obj's underlying member method code with example usage: obj.test_batcher() without return types