MCPcopy Create free account
hub / github.com/ROCm/AMDMIGraphX / TEST_CASE

Function TEST_CASE

test/onnx/verify/if_tuple_test.cpp:29–76  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

27#include <onnx_test.hpp>
28
29TEST_CASE(if_tuple_test)
30{
31 auto run_prog = [](bool cond) {
32 migraphx::program p = read_onnx("if_tuple_test.onnx");
33 p.compile(migraphx::make_target("ref"));
34 migraphx::shape xs{migraphx::shape::float_type, {1, 4}};
35 migraphx::shape ys{migraphx::shape::float_type, {3, 4}};
36 migraphx::shape cond_s{migraphx::shape::bool_type};
37
38 std::vector<float> x_data(xs.elements(), 1.0f);
39 std::vector<float> y_data(ys.elements(), 2.0f);
40 std::vector<char> cond_data{static_cast<char>(cond)};
41
42 migraphx::parameter_map pp;
43 pp["x"] = migraphx::argument(xs, x_data.data());
44 pp["y"] = migraphx::argument(ys, y_data.data());
45 pp["cond"] = migraphx::argument(cond_s, cond_data.data());
46
47 auto results = p.eval(pp);
48 std::vector<std::vector<float>> rets;
49 for(const auto& arg : results)
50 {
51 std::vector<float> vec;
52 arg.visit([&](auto output) { vec.assign(output.begin(), output.end()); });
53 rets.push_back(vec);
54 }
55
56 return rets;
57 };
58
59 // then branch
60 {
61 auto results = run_prog(true);
62 std::vector<float> gold0(4, 2.0f);
63 std::vector<float> gold1(12, 4.0f);
64 EXPECT(migraphx::verify::verify_rms_range(results.at(0), gold0));
65 EXPECT(migraphx::verify::verify_rms_range(results.at(1), gold1));
66 }
67
68 // else branch
69 {
70 auto results = run_prog(false);
71 std::vector<float> gold0(4, 3.0f);
72 std::vector<float> gold1(12, 5.0f);
73 EXPECT(migraphx::verify::verify_rms_range(results.at(0), gold0));
74 EXPECT(migraphx::verify::verify_rms_range(results.at(1), gold1));
75 }
76}

Callers

nothing calls this directly

Calls 15

make_targetFunction · 0.85
verify_rms_rangeFunction · 0.85
atMethod · 0.80
read_onnxFunction · 0.50
argumentClass · 0.50
run_progFunction · 0.50
compileMethod · 0.45
elementsMethod · 0.45
dataMethod · 0.45
evalMethod · 0.45
visitMethod · 0.45
assignMethod · 0.45

Tested by

no test coverage detected