def METHOD_NAME(self, test: TestNode, manifest: Manifest) -> TestResultData:
    context = generate_runtime_model_context(test, self.config, manifest)
    materialization_macro = manifest.find_materialization_macro_by_name(
        self.config.project_name, test.get_materialization(), self.adapter.type()
    )
    if materialization_macro is None:
        raise MissingMaterializationError(
            materialization=test.get_materialization(), adapter_type=self.adapter.type()
        )
    if "config" not in context:
        raise DbtInternalError(
            "Invalid materialization context generated, missing config: {}".format(context)
        )
    # generate materialization macro
    macro_func = MacroGenerator(materialization_macro, context)
    # execute materialization macro
    macro_func()
    # load results from context
    # could eventually be returned directly by materialization
    result = context["load_result"]("main")
    table = result["table"]
    num_rows = len(table.rows)
    if num_rows != 1:
        raise DbtInternalError(
            f"dbt internally failed to execute {test.unique_id}: "
            f"Returned {num_rows} rows, but expected "
            f"1 row"
        )
    num_cols = len(table.columns)
    if num_cols != 3:
        raise DbtInternalError(
            f"dbt internally failed to execute {test.unique_id}: "
            f"Returned {num_cols} columns, but expected "
            f"3 columns"
        )
    test_result_dct: PrimitiveDict = dict(
        zip(
            [column_name.lower() for column_name in table.column_names],
            map(_coerce_decimal, table.rows[0]),
        )
    )
    test_result_dct["adapter_response"] = result["response"].to_dict(omit_none=True)
    TestResultData.validate(test_result_dct)
    return TestResultData.from_dict(test_result_dct)