class_docstr: Test case for checking the output of `accelerate estimate-memory` is correct.
  
  - Uses `estimate_command` when trying to catch raised errors
  - Uses `gather_data` when just verifying the calculations are correct
class_docstr_tok: ["Test","case","for","checking","the","output","of","`","accelerate","estimate-memory","`","is","correct",".","-","Uses","`","estimate_command","`","when","trying","to","catch","raised","errors","-","Uses","`","gather_data","`","when","just","verifying","the","calculations","are","correct"]
code: def test_no_split_modules(self):
      # idefics-80b-instruct has ["IdeficsDecoderLayer", "IdeficsGatedCrossAttentionLayer"]
      args = self.parser.parse_args(
          ["HuggingFaceM4/idefics-80b-instruct", "--dtypes", "float32"]
      )
      output = gather_data(args)
      # without factoring in `no_split` modules, the largest layer is 721420288 bytes
      self.assertNotEqual(
          output[0][1],
          721420288,
          "Largest layer calculation incorrect, did not factor in `no_split` modules.",
      )
      # the real answer is 3240165632 bytes
      self.assertEqual(output[0][1], 3240165632)
  
imports: import inspect
  import os
  import unittest
  from pathlib import Path
  import torch
  from huggingface_hub.utils import GatedRepoError, RepositoryNotFoundError
  import accelerate
  from accelerate.commands.estimate import estimate_command, estimate_command_parser, gather_data
  from accelerate.test_utils import execute_subprocess_async
  from accelerate.test_utils.testing import require_multi_gpu, require_timm, require_transformers, run_command
  from accelerate.utils import patch_environment
label_desc: Use image node_id 9 for calling the ModelEstimatorTester obj's underlying member method code with example usage: obj.test_no_split_modules() without return types