def METHOD_NAME(self):
    # Basic functionality with dictionary key
    result_dict = {"output": [{}, {"data": [0, 1, 2, 3]}]}
    out = recursive_get_result({"my_data": ">>output.-1.data.2"}, result_dict)
    self.assertEqual(out["my_data"], 2)
    # Basic functionality with attribute
    task1 = Task1()
    out_attr = recursive_get_result({"fw_name": "a>>_fw_name"}, task1)
    self.assertEqual(
        out_attr["fw_name"], "{{atomate.utils.tests.test_utils.Task1}}"
    )
    # Basic functionality with callable attribute
    out_attr2 = recursive_get_result({"keys": "a>>keys"}, task1)
    self.assertEqual(list(out_attr2["keys"]), [])
    # Testing as_dict functionality
    out_as_dict = recursive_get_result({"fw_name": ">>_fw_name"}, task1)
    self.assertEqual(
        out_as_dict["fw_name"], "{{atomate.utils.tests.test_utils.Task1}}"
    )