/* ************************************************************************ * Copyright (C) 2023-2024 Advanced Micro Devices, Inc. * ************************************************************************ */ #include "testing_csrrf_solve.hpp" using ::testing::Combine; using ::testing::TestWithParam; using ::testing::Values; using ::testing::ValuesIn; using namespace std; typedef std::tuple, vector> csrrf_solve_tuple; // each n_range vector is {n, ldb} // each nnz_range vector is {nnzT, nrhs} // case when n = 20 and nnz = 60 also execute the bad arguments test // (null handle, null pointers and invalid values) // for checkin_lapack tests const vector> n_range = { {20, 20}, {50, 60}, }; const vector> nnz_range = { {60, 1}, {100, 1}, {140, 1}, }; // // for daily_lapack tests // const vector> large_n_range = { // // normal (valid) samples // {100, 110}, // {250, 250}, // }; // const vector> large_nnz_range = { // // normal (valid) samples // {300, 1}, // {500, 1}, // {700, 1}, // }; Arguments csrrf_solve_setup_arguments(csrrf_solve_tuple tup) { vector n_v = std::get<0>(tup); vector nnz_v = std::get<1>(tup); Arguments arg; arg.set("n", n_v[0]); arg.set("ldb", n_v[1]); arg.set("nnzA", nnz_v[0]); arg.set("nrhs", nnz_v[1]); arg.timing = 0; return arg; } class CSRRF_SOLVE : public ::TestWithParam { protected: void TearDown() override { ASSERT_EQ(hipGetLastError(), hipSuccess); } template void run_tests() { Arguments arg = csrrf_solve_setup_arguments(GetParam()); if(arg.peek("n") == 20 && arg.peek("nnzA") == 60) testing_csrrf_solve_bad_arg(); arg.batch_count = 1; testing_csrrf_solve(arg); } }; // non-batch tests /*TEST_P(CSRRF_SOLVE, __float) { run_tests(); }*/ TEST_P(CSRRF_SOLVE, __double) { run_tests(); } /*TEST_P(CSRRF_SOLVE, __float_complex) { run_tests(); } TEST_P(CSRRF_SOLVE, __double_complex) { run_tests(); }*/ // INSTANTIATE_TEST_SUITE_P(daily_lapack, // CSRRF_SOLVE, // Combine(ValuesIn(large_n_range), ValuesIn(large_nnz_range))); INSTANTIATE_TEST_SUITE_P(checkin_lapack, CSRRF_SOLVE, Combine(ValuesIn(n_range), ValuesIn(nnz_range)));