From fa4bbd3df33c1dc5ee405f71c4257220ad29ce07 Mon Sep 17 00:00:00 2001 From: Tor Egge Date: Sat, 2 Mar 2024 18:28:44 +0100 Subject: Backport to clang 16. --- .../eval/compiled_function/compiled_function_test.cpp | 18 ++++++++++-------- eval/src/tests/eval/gbdt/gbdt_test.cpp | 18 ++++++++++-------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/eval/src/tests/eval/compiled_function/compiled_function_test.cpp b/eval/src/tests/eval/compiled_function/compiled_function_test.cpp index 7b1f9a84b6d..d84939caff2 100644 --- a/eval/src/tests/eval/compiled_function/compiled_function_test.cpp +++ b/eval/src/tests/eval/compiled_function/compiled_function_test.cpp @@ -29,10 +29,11 @@ TEST("require that separate parameter passing works") { TEST("require that array parameter passing works") { CompiledFunction arr_cf(*Function::parse(params_10, expr_10), PassParams::ARRAY); auto arr_fun = arr_cf.get_function(); - EXPECT_EQUAL(10.0, arr_fun(&std::vector({1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0})[0])); - EXPECT_EQUAL(50.0, arr_fun(&std::vector({5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0})[0])); - EXPECT_EQUAL(45.0, arr_fun(&std::vector({0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0})[0])); - EXPECT_EQUAL(45.0, arr_fun(&std::vector({9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0, 0.0})[0])); + auto eval_arr_fun = [&arr_fun](std::vector args) { return arr_fun(&args[0]); }; + EXPECT_EQUAL(10.0, eval_arr_fun({1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0})); + EXPECT_EQUAL(50.0, eval_arr_fun({5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0})); + EXPECT_EQUAL(45.0, eval_arr_fun({0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0})); + EXPECT_EQUAL(45.0, eval_arr_fun({9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0, 0.0})); } double my_resolve(void *ctx, size_t idx) { return ((double *)ctx)[idx]; } @@ -40,10 +41,11 @@ double my_resolve(void *ctx, size_t idx) { return ((double *)ctx)[idx]; } TEST("require that lazy parameter passing works") { CompiledFunction lazy_cf(*Function::parse(params_10, expr_10), PassParams::LAZY); auto lazy_fun = lazy_cf.get_lazy_function(); - EXPECT_EQUAL(10.0, lazy_fun(my_resolve, &std::vector({1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0})[0])); - EXPECT_EQUAL(50.0, lazy_fun(my_resolve, &std::vector({5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0})[0])); - EXPECT_EQUAL(45.0, lazy_fun(my_resolve, &std::vector({0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0})[0])); - EXPECT_EQUAL(45.0, lazy_fun(my_resolve, &std::vector({9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0, 0.0})[0])); + auto eval_lazy_fun = [&lazy_fun](std::vector args) { return lazy_fun(my_resolve, &args[0]); }; + EXPECT_EQUAL(10.0, eval_lazy_fun({1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0})); + EXPECT_EQUAL(50.0, eval_lazy_fun({5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0})); + EXPECT_EQUAL(45.0, eval_lazy_fun({0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0})); + EXPECT_EQUAL(45.0, eval_lazy_fun({9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0, 0.0})); } //----------------------------------------------------------------------------- diff --git a/eval/src/tests/eval/gbdt/gbdt_test.cpp b/eval/src/tests/eval/gbdt/gbdt_test.cpp index 2f5c5d75105..739202e68bf 100644 --- a/eval/src/tests/eval/gbdt/gbdt_test.cpp +++ b/eval/src/tests/eval/gbdt/gbdt_test.cpp @@ -275,10 +275,11 @@ TEST("require that less only VM tree optimizer works") { CompiledFunction compiled_function(*function, PassParams::ARRAY, less_only_vm_chain); EXPECT_EQUAL(1u, compiled_function.get_forests().size()); auto f = compiled_function.get_function(); - EXPECT_EQUAL(11.0, f(&std::vector({0.5, 0.0, 0.0, 0.5, 0.0, 0.0})[0])); - EXPECT_EQUAL(22.0, f(&std::vector({1.5, 0.5, 0.5, 1.5, 0.5, 0.5})[0])); - EXPECT_EQUAL(33.0, f(&std::vector({1.5, 0.5, 1.5, 1.5, 0.5, 1.5})[0])); - EXPECT_EQUAL(44.0, f(&std::vector({1.5, 1.5, 0.0, 1.5, 1.5, 0.0})[0])); + auto eval_f = [&f](std::vector args) { return f(&args[0]); }; + EXPECT_EQUAL(11.0, eval_f({0.5, 0.0, 0.0, 0.5, 0.0, 0.0})); + EXPECT_EQUAL(22.0, eval_f({1.5, 0.5, 0.5, 1.5, 0.5, 0.5})); + EXPECT_EQUAL(33.0, eval_f({1.5, 0.5, 1.5, 1.5, 0.5, 1.5})); + EXPECT_EQUAL(44.0, eval_f({1.5, 1.5, 0.0, 1.5, 1.5, 0.0})); } TEST("require that models with in checks are rejected by less only vm optimizer") { @@ -305,10 +306,11 @@ TEST("require that general VM tree optimizer works") { CompiledFunction compiled_function(*function, PassParams::ARRAY, general_vm_chain); EXPECT_EQUAL(1u, compiled_function.get_forests().size()); auto f = compiled_function.get_function(); - EXPECT_EQUAL(11.0, f(&std::vector({0.5, 0.0, 0.0, 1.0, 0.0, 0.0})[0])); - EXPECT_EQUAL(22.0, f(&std::vector({1.5, 2.0, 1.0, 2.0, 0.5, 0.5})[0])); - EXPECT_EQUAL(33.0, f(&std::vector({1.5, 2.0, 2.0, 2.0, 0.5, 1.5})[0])); - EXPECT_EQUAL(44.0, f(&std::vector({1.5, 5.0, 0.0, 2.0, 1.5, 0.0})[0])); + auto eval_f = [&f](std::vector args) { return f(&args[0]); }; + EXPECT_EQUAL(11.0, eval_f({0.5, 0.0, 0.0, 1.0, 0.0, 0.0})); + EXPECT_EQUAL(22.0, eval_f({1.5, 2.0, 1.0, 2.0, 0.5, 0.5})); + EXPECT_EQUAL(33.0, eval_f({1.5, 2.0, 2.0, 2.0, 0.5, 1.5})); + EXPECT_EQUAL(44.0, eval_f({1.5, 5.0, 0.0, 2.0, 1.5, 0.0})); } TEST("require that models with too large sets are rejected by general vm optimizer") { -- cgit v1.2.3