| 9 | using namespace test; |
| 10 | |
| 11 | TEST_F(NAIVE, SINGULAR_VALUE_DECOMPOSITION) { |
| 12 | auto opr = handle()->create_operator<SVDForward>(); |
| 13 | auto testcases = SVDTestcase::make(); |
| 14 | for (auto& t : testcases) { |
| 15 | // Not supported, skip for now. |
| 16 | if (t.m_param.full_matrices) |
| 17 | continue; |
| 18 | |
| 19 | auto naive_result = t.run(opr.get()); |
| 20 | for (size_t i = 0; i < naive_result.s->layout.total_nr_elems(); i++) { |
| 21 | EXPECT_GE(naive_result.s->ptr<dt_float32>()[i], 0); |
| 22 | } |
| 23 | if (t.m_param.compute_uv) { |
| 24 | MEGDNN_ASSERT_TENSOR_EQ(*naive_result.recovered_mat, t.m_mat); |
| 25 | } |
| 26 | } |
| 27 | } |
| 28 | |
| 29 | // vim: syntax=cpp.doxygen |
nothing calls this directly
no test coverage detected