code: def __test_ner(self, trn, val, preproc):
      self.assertTrue(U.is_iter(trn))
      self.assertTrue(U.is_ner(data=trn))
      self.assertFalse(U.is_multilabel(trn))
      self.assertEqual(U.shape_from_data(trn), (14041, 47))
      self.assertFalse(U.ondisk(trn))
      self.assertEqual(U.nsamples_from_data(trn), 14041)
      self.assertEqual(U.nclasses_from_data(trn), 10)
      self.assertEqual(len(U.y_from_data(trn)), 14041)
      self.assertFalse(U.bert_data_tuple(trn))
      self.assertEqual(
          preproc.get_classes(),
          [
              "<pad>",
              "O",
              "B-LOC",
              "B-PER",
              "B-ORG",
              "I-PER",
              "I-ORG",
              "B-MISC",
              "I-LOC",
              "I-MISC",
          ],
      )
      nerseq = preproc.preprocess(["hello world"])
      self.assertEqual(len(nerseq), 1)
      self.assertEqual(nerseq[0][0][0][0].tolist(), [21010, 100])
  
imports: import os.path
  from unittest import TestCase, main, skip
  import testenv
  import ktrain
  from ktrain import text
  from ktrain import utils
  from ktrain import vision
label_desc: Use image node_id 2 for calling the TestNERData obj's underlying member method code with example usage: obj.__test_ner(trn, val, preproc) without return types