code: def test_add_adapter_multiple_reduction_factors(self):
      model = self.get_model()
      model.eval()
      reduction_factor = {"1": 1, "default": 2}
      for adapter_config in [
          SeqBnConfig(reduction_factor=reduction_factor),
          DoubleSeqBnConfig(reduction_factor=reduction_factor),
      ]:
          with self.subTest(
              model_class=model.__class__.__name__,
              config=adapter_config.__class__.__name__,
          ):
              name = adapter_config.__class__.__name__
              model.add_adapter(name, config=adapter_config)
              model.set_active_adapters([name])
  
              # adapter is correctly added to config
              self.assertTrue(name in model.adapters_config)
              self.assertEqual(
                  adapter_config, model.adapters_config.get(name)
              )
  
              adapter = model.get_adapter(name)
  
              self.assertEqual(
                  adapter[0]["output_adapter"]
                  .adapter_down[0]
                  .in_features
                  / adapter[0]["output_adapter"]
                  .adapter_down[0]
                  .out_features,
                  reduction_factor["default"],
              )
              self.assertEqual(
                  adapter[1]["output_adapter"]
                  .adapter_down[0]
                  .in_features
                  / adapter[1]["output_adapter"]
                  .adapter_down[0]
                  .out_features,
                  reduction_factor["1"],
              )
  
imports: import copy
  import tempfile
  import torch
  import adapters
  from adapters import ADAPTER_CONFIG_MAP, ADAPTER_MODEL_MAPPING, AutoAdapterModel, BatchSplit, DoubleSeqBnConfig, DoubleSeqBnInvConfig, Fuse, InvertibleAdaptersMixin, InvertibleAdaptersWrapperMixin, MAMConfig, SeqBnConfig, SeqBnInvConfig
  from adapters.heads.language_modeling import CausalLMHead
  from transformers import MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING, CLIPConfig
  from transformers.testing_utils import require_torch, torch_device
  from .base import AdapterMethodBaseTestMixin, create_twin_models
label_desc: Use image node_id 8 for calling the BottleneckAdapterTestMixin obj's underlying member method code with example usage: obj.test_add_adapter_multiple_reduction_factors() without return types