code: def build(self):
      self.generate_and_save_data(
          self.args.train_db_file,
          self.args.train_images_folder,
          self.args.train_features_folder,
          "train",
          self.args.num_samples,
          self.args.output_folder,
      )
      self.generate_and_save_data(
          self.args.dev_db_file,
          self.args.dev_images_folder,
          self.args.dev_features_folder,
          "dev",
          # Number of dev and test samples, we generate 1/10th of the training data
          self.args.num_samples // 10,
          self.args.output_folder,
      )
      # Test data is generated from dev data
      self.generate_and_save_data(
          self.args.dev_db_file,
          self.args.dev_images_folder,
          self.args.dev_features_folder,
          "test",
          self.args.num_samples // 10,
          self.args.output_folder,
      )
  
file_path: mmf/tools/scripts/tests/generate_test_data.py
imports: import argparse
  import json
  import os
  import shutil
  import numpy
  from tools.scripts.features.lmdb_conversion import LMDBConversion
label_desc: Use image node_id 3 for calling the TestDataBuilder obj's underlying member method code with example usage: obj.build() without return types