class_docstr: This test case checks end-to-end model validation performed in `.make_private`
  method. It covers performed in `ModuleValidator`, `GradSampleModule`, as well as
  their interplay
class_docstr_tok: ["This","test","case","checks","end-to-end","model","validation","performed","in","`",".make_private","`","method",".","It","covers","performed","in","`","ModuleValidator","`",",","`","GradSampleModule","`",",","as","well","as","their","interplay"]
code: def test_unsupported_hooks(self) -> None:
      try:
          module, optim, dl = self._init(
              MatmulModule(5, 8), size=(16, 5)
          )
  
          gsm, _, _ = self.privacy_engine.make_private(
              module=module,
              optimizer=optim,
              data_loader=dl,
              noise_multiplier=1.0,
              max_grad_norm=1.0,
              grad_sample_mode="hooks",
          )
          self.assertTrue(
              hasattr(gsm._module, "ft_compute_sample_grad")
          )
      except ImportError:
          print("Test not ran because functorch not imported")
  
file_path: opacus/opacus/tests/privacy_engine_validation_test.py
imports: import unittest
  import torch
  from opacus import PrivacyEngine
  from torch.utils.data import DataLoader
  from .utils import BasicSupportedModule, CustomLinearModule, LinearWithExtraParam, MatmulModule
label_desc: Use image node_id 7 for calling the PrivacyEngineValidationTest obj's underlying member method code with example usage: obj.test_unsupported_hooks() without return types