code: def test_double_nested_config():
      sub_sub_ing = Ingredient("sub_sub_ing")
      sub_ing = Ingredient("sub_ing", [sub_sub_ing])
      ing = Ingredient("ing", [sub_ing])
      ex = Experiment("ex", [ing])
  
      @ex.config
      def config():
          a = 1
          seed = 42
  
      @ing.config
      def config():
          b = 1
  
      @sub_ing.config
      def config():
          c = 2
  
      @sub_sub_ing.config
      def config():
          d = 3
  
      @sub_sub_ing.capture
      def sub_sub_ing_main(_config):
          assert _config == {"d": 3}, _config
  
      @sub_ing.capture
      def sub_ing_main(_config):
          assert _config == {"c": 2, "sub_sub_ing": {"d": 3}}, _config
  
      @ing.capture
      def ing_main(_config):
          assert _config == {
              "b": 1,
              "sub_sub_ing": {"d": 3},
              "sub_ing": {"c": 2},
          }, _config
  
      @ex.main
      def main(_config):
          assert _config == {
              "a": 1,
              "sub_sub_ing": {"d": 3},
              "sub_ing": {"c": 2},
              "ing": {"b": 1},
              "seed": 42,
          }, _config
  
          ing_main()
          sub_ing_main()
          sub_sub_ing_main()
  
      ex.run()
  
file_path: sacred/tests/test_modules.py
imports: from sacred.config.config_scope import ConfigScope
  from sacred.experiment import Experiment, Ingredient
label_desc: Use image node_id 10 for calling a global function with example usage: test_double_nested_config() without return types