def METHOD_NAME(fake_results):
    filename = "temp_test_results_file.json"
    kernel_name, kernel_string, tune_params, problem_size, parameter_space, results, env = fake_results
    try:
        #test basic operation
        integration.store_results(filename, kernel_name, kernel_string, tune_params, problem_size, results, env, top=3)
        meta, stored_data = integration._read_results_file(filename)
        assert len([d for d in stored_data if d["device_name"] == "My_GPU" and d["problem_size"] == "100"]) == 3
        #test if results for a different problem_size values are added
        integration.store_results(filename, kernel_name, kernel_string, tune_params, 1000, results, env, top=3)
        meta, stored_data = integration._read_results_file(filename)
        assert len([d for d in stored_data if d["device_name"] == "My_GPU" and d["problem_size"] == "100"]) == 3
        assert len([d for d in stored_data if d["device_name"] == "My_GPU" and d["problem_size"] == "1000"]) == 3
        #test if results for a different GPU can be added
        integration.store_results(filename, kernel_name, kernel_string, tune_params, problem_size, results, { "device_name": "Another GPU"}, top=3)
        meta, stored_data = integration._read_results_file(filename)
        assert len(set([d["device_name"] for d in stored_data])) == 2
        #test if overwriting results works
        for i, r in enumerate(results):
            r["time"] = 50.0 + i
        integration.store_results(filename, kernel_name, kernel_string, tune_params, problem_size, results, env, top=0.1)
        meta, stored_data = integration._read_results_file(filename)
        my_gpu_100_data = [d for d in stored_data if d["device_name"] == "My_GPU" and d["problem_size"] == "100"]
        assert len(my_gpu_100_data) == 1
        assert my_gpu_100_data[0]["time"] < 100
    finally:
        util.delete_temp_file(filename)