".github/workflows/release-docker-amd-nightly.yml" did not exist on "b04444ac015a40c696a635fefdbbb8089a1cda73"
Commit 031b5de6 authored by Shucai Xiao's avatar Shucai Xiao
Browse files

add unit test for the sign operator

parent 4ade5482
...@@ -55,6 +55,7 @@ struct onnx_parser ...@@ -55,6 +55,7 @@ struct onnx_parser
add_generic_op("Acos", op::acos{}); add_generic_op("Acos", op::acos{});
add_generic_op("Atan", op::atan{}); add_generic_op("Atan", op::atan{});
add_generic_op("Sqrt", op::sqrt{}); add_generic_op("Sqrt", op::sqrt{});
add_generic_op("Sign", op::sign{});
add_binary_op("Add", op::add{}); add_binary_op("Add", op::add{});
add_binary_op("Div", op::div{}); add_binary_op("Div", op::div{});
......
...@@ -557,6 +557,21 @@ TEST_CASE(sqrt_test) ...@@ -557,6 +557,21 @@ TEST_CASE(sqrt_test)
EXPECT(migraphx::verify_range(results_vector, gold)); EXPECT(migraphx::verify_range(results_vector, gold));
} }
TEST_CASE(sign_test)
{
migraphx::program p;
migraphx::shape s{migraphx::shape::float_type, {5}};
auto l = p.add_literal(
migraphx::literal{s, {1.02481645, 0.85643062, -0.03404123, -0.92791926, 0.0}});
p.add_instruction(migraphx::op::sign{}, l);
p.compile(migraphx::cpu::target{});
auto result = p.eval({});
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
std::vector<float> gold = {1.0, 1.0, -1.0, -1.0, 0.0};
EXPECT(migraphx::verify_range(results_vector, gold));
}
TEST_CASE(log_test) TEST_CASE(log_test)
{ {
migraphx::program p; migraphx::program p;
......
...@@ -268,6 +268,18 @@ struct test_sqrt : verify_program<test_sqrt> ...@@ -268,6 +268,18 @@ struct test_sqrt : verify_program<test_sqrt>
} }
}; };
struct test_sign : verify_program<test_sign>
{
migraphx::program create_program() const
{
migraphx::program p;
migraphx::shape s{migraphx::shape::double_type, {2, 3, 4, 6}};
auto param = p.add_parameter("x", s);
p.add_instruction(migraphx::op::sign{}, param);
return p;
}
};
struct test_log : verify_program<test_log> struct test_log : verify_program<test_log>
{ {
migraphx::program create_program() const migraphx::program create_program() const
......
...@@ -212,6 +212,16 @@ TEST_CASE(sqrt_test) ...@@ -212,6 +212,16 @@ TEST_CASE(sqrt_test)
EXPECT(p == prog); EXPECT(p == prog);
} }
TEST_CASE(sign_test)
{
migraphx::program p;
auto input = p.add_parameter("x", migraphx::shape{migraphx::shape::double_type, {10, 5}});
p.add_instruction(migraphx::op::sign{}, input);
auto prog = migraphx::parse_onnx("sign_test.onnx");
EXPECT(p == prog);
}
TEST_CASE(log_test) TEST_CASE(log_test)
{ {
migraphx::program p; migraphx::program p;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment