code: def test_tsv_to_npys(self) -> None:
      num_rows = 10
      with self._create_dataset_tsv(num_rows=num_rows) as in_file:
          out_files = [
              tempfile.NamedTemporaryFile(delete=False)
              for _ in range(3)
          ]
          for out_file in out_files:
              out_file.close()
  
          BinaryCriteoUtils.tsv_to_npys(
              in_file,
              out_files[0].name,
              out_files[1].name,
              out_files[2].name,
          )
  
          dense = np.load(out_files[0].name)
          sparse = np.load(out_files[1].name)
          labels = np.load(out_files[2].name)
  
          self.assertEqual(dense.shape, (num_rows, INT_FEATURE_COUNT))
          self.assertEqual(dense.dtype, np.float32)
          self.assertEqual(sparse.shape, (num_rows, CAT_FEATURE_COUNT))
          self.assertEqual(sparse.dtype, np.int32)
          self.assertEqual(labels.shape, (num_rows, 1))
          self.assertEqual(labels.dtype, np.int32)
  
          for out_file in out_files:
              os.remove(out_file.name)
  
imports: import contextlib
  import math
  import os
  import random
  import tempfile
  from typing import Any, Dict, List, Optional
  import numpy
  from torch.utils.data import DataLoader
  from torchrec.datasets.criteo import BinaryCriteoUtils, CAT_FEATURE_COUNT, criteo_kaggle, criteo_terabyte, InMemoryBinaryCriteoIterDataPipe, INT_FEATURE_COUNT
  from torchrec.datasets.test_utils.criteo_test_utils import CriteoTest
  from torchrec.datasets.utils import Batch
label_desc: Use image node_id 1 for calling the TestBinaryCriteoUtils obj's underlying member method code with example usage: obj.test_tsv_to_npys() without return types