code: def test_kwargs_are_passed_to_deeper_superclasses(self):
      from allennlp.common.registrable import Registrable
  
      class BaseClass(Registrable):
          def __init__(self):
              self.a = None
              self.b = None
              self.c = None
  
      @BaseClass.register("a")
      class A(BaseClass):
          def __init__(self, a: str):
              super().__init__()
              self.a = a
  
      @BaseClass.register("b")
      class B(A):
          def __init__(self, b: str, **kwargs):
              super().__init__(**kwargs)
              self.b = b
  
      @BaseClass.register("c")
      class C(B):
          def __init__(self, c, **kwargs):
              super().__init__(**kwargs)
              self.c = c
  
      params = Params(
          {"type": "c", "a": "a_value", "b": "b_value", "c": "c_value"}
      )
  
      instance = BaseClass.from_params(params)
      assert instance.a == "a_value"
      assert instance.b == "b_value"
      assert instance.c == "c_value"
  
imports: from typing import Dict, Iterable, List, Mapping, Optional, Set, Tuple, Union
  import pytest
  import torch
  from allennlp.common import Lazy, Params, Registrable
  from allennlp.common.from_params import FromParams, takes_arg, remove_optional, create_kwargs
  from allennlp.common.testing import AllenNlpTestCase
  from allennlp.data import DataLoader, DatasetReader, Tokenizer
  from allennlp.models import Model
  from allennlp.models.archival import load_archive
  from allennlp.common.checks import ConfigurationError
label_desc: Use image node_id 24 for calling the TestFromParams obj's underlying member method code with example usage: obj.test_kwargs_are_passed_to_deeper_superclasses() without return types