code: def test_jsonnet_features(self):
      config_file = self.TEST_DIR / "config.jsonnet"
      with open(config_file, "w") as f:
          f.write(
              """{
                              // This example is copied straight from the jsonnet docs
                              person1: {
                                  name: "Alice",
                                  welcome: "Hello " + self.name + "!",
                              },
                              person2: self.person1 { name: "Bob" },
                          }"""
          )
  
      params = Params.from_file(config_file)
  
      alice = params.pop("person1")
      bob = params.pop("person2")
  
      assert alice.as_dict() == {
          "name": "Alice",
          "welcome": "Hello Alice!",
      }
      assert bob.as_dict() == {"name": "Bob", "welcome": "Hello Bob!"}
  
      params.assert_empty("TestParams")
  
imports: import json
  import os
  import re
  from collections import OrderedDict
  import pytest
  from allennlp.common.checks import ConfigurationError
  from allennlp.common.params import infer_and_cast, Params, remove_keys_from_params, with_overrides
  from allennlp.common.testing import AllenNlpTestCase
label_desc: Use image node_id 8 for calling the TestParams obj's underlying member method code with example usage: obj.test_jsonnet_features() without return types