code: def test_forward_unfrozen_adapters(self):
      model = DefaultModuleAdapter()
      original_num_params = model.num_params()
  
      dim = 10
      model.add_adapter(name="adapter_0", cfg=get_adapter_cfg(dim=dim))
      model.freeze()
      model.unfreeze_enabled_adapters()
  
      assert original_num_params == 2650
  
      original_params = 0
      adapter_params = 0
      for name, param in model.named_parameters():
          if "adapter" not in name:
              assert param.requires_grad is False
              original_params += param.numel()
          else:
              assert param.requires_grad is True
              adapter_params += param.numel()
  
      for mname, module in model.named_modules():
          if isinstance(
              module,
              (
                  torch.nn.BatchNorm1d,
                  torch.nn.BatchNorm2d,
                  torch.nn.BatchNorm3d,
              ),
          ):
              assert module.track_running_stats is False
  
      assert original_params > adapter_params
  
imports: import pytest
  import torch
  from nemo.core import NeuralModule
  from nemo.core.classes.mixins import adapter_mixin_strategies, adapter_mixins
  from nemo.core.classes.mixins.adapter_mixins import AdapterModuleMixin
label_desc: Use image node_id 10 for calling the TestAdapterMixin obj's underlying member method code with example usage: obj.test_forward_unfrozen_adapters() without return types