Commit b31735e8 authored by charlie's avatar charlie
Browse files

Fix serialize errors

parent 7c63b13b
......@@ -63,7 +63,13 @@ struct shape
{
std::size_t min = 0;
std::size_t max = 0;
std::size_t opt = 0;
std::size_t opt = 1;
dynamic_dimension(std::size_t i_min, std::size_t i_max, std::size_t i_opt)
: min(i_min), max(i_max), opt(i_opt)
{
}
bool is_fixed() const { return min == max; }
bool has_optimal() const { return opt != 0; }
friend bool operator==(const dynamic_dimension& x, const dynamic_dimension& y)
......
......@@ -388,7 +388,7 @@ const std::vector<shape::dynamic_dimension>& shape::dyn_dims() const { return im
std::vector<std::size_t> shape::min_dyn_dims() const
{
auto num_dims = dyn_dims().size();
std::vector<std::size_t> ret{num_dims};
std::vector<std::size_t> ret(num_dims);
for(int i = 0; i < num_dims; ++i)
{
ret.at(i) = dyn_dims().at(i).min;
......@@ -399,7 +399,7 @@ std::vector<std::size_t> shape::min_dyn_dims() const
std::vector<std::size_t> shape::max_dyn_dims() const
{
auto num_dims = dyn_dims().size();
std::vector<std::size_t> ret{num_dims};
std::vector<std::size_t> ret(num_dims);
for(int i = 0; i < num_dims; ++i)
{
ret.at(i) = dyn_dims().at(i).max;
......@@ -410,7 +410,7 @@ std::vector<std::size_t> shape::max_dyn_dims() const
std::vector<std::size_t> shape::opt_dyn_dims() const
{
auto num_dims = dyn_dims().size();
std::vector<std::size_t> ret{num_dims};
std::vector<std::size_t> ret(num_dims);
for(int i = 0; i < num_dims; ++i)
{
ret.at(i) = dyn_dims().at(i).opt;
......@@ -503,12 +503,11 @@ void migraphx_from_value(const value& v, shape& s)
auto mins = v.at("min_dyn_dims").to_vector<std::size_t>();
auto maxes = v.at("max_dyn_dims").to_vector<std::size_t>();
auto opts = v.at("opt_dyn_dims").to_vector<std::size_t>();
assert(mins.size() == maxes.size() == opts.size());
auto num_dims = mins.size();
std::vector<shape::dynamic_dimension> dyn_dims{num_dims};
assert(mins.size() == maxes.size() and maxes.size() == opts.size());
std::vector<shape::dynamic_dimension> dyn_dims;
for(int i = 0; i < mins.size(); ++i)
{
dyn_dims.at(i) = {mins[i], maxes[i], opts[i]};
dyn_dims.emplace_back(mins[i], maxes[i], opts[i]);
}
s = shape{shape::parse_type(t), dyn_dims};
}
......
......@@ -15,7 +15,6 @@ TEST_CASE(test_shape_default)
EXPECT(s.elements() == 0);
EXPECT(s.bytes() == 0);
}
TEST_CASE(test_shape_assign)
{
migraphx::shape s1{migraphx::shape::float_type, {100, 32, 8, 8}};
......@@ -45,9 +44,9 @@ TEST_CASE(test_shape_standard)
TEST_CASE(test_shape_dynamic_fixed)
{
std::vector<migraphx::shape::dynamic_dimension> dims = {};
dims.emplace_back(migraphx::shape::dynamic_dimension{2, 2, 0});
dims.emplace_back(migraphx::shape::dynamic_dimension{2, 2, 0});
dims.emplace_back(migraphx::shape::dynamic_dimension{3, 3, 0});
dims.emplace_back(2, 2, 0);
dims.emplace_back(2, 2, 0);
dims.emplace_back(3, 3, 0);
migraphx::shape s{migraphx::shape::float_type, dims};
EXPECT(not s.standard());
EXPECT(not s.packed());
......@@ -62,8 +61,8 @@ TEST_CASE(test_shape_dynamic_fixed)
TEST_CASE(test_shape_dynamic_not_fixed)
{
std::vector<migraphx::shape::dynamic_dimension> dims = {};
dims.emplace_back(migraphx::shape::dynamic_dimension{2, 5, 2});
dims.emplace_back(migraphx::shape::dynamic_dimension{2, 8, 0});
dims.emplace_back(2, 5, 2);
dims.emplace_back(2, 8, 0);
migraphx::shape s{migraphx::shape::float_type, dims};
EXPECT(not s.standard());
EXPECT(not s.packed());
......@@ -97,8 +96,8 @@ TEST_CASE(test_shape_dynamic_compares)
TEST_CASE(test_shape_dynamic_errors)
{
std::vector<migraphx::shape::dynamic_dimension> dims = {};
dims.emplace_back(migraphx::shape::dynamic_dimension{2, 5, 2});
dims.emplace_back(migraphx::shape::dynamic_dimension{2, 8, 0});
dims.emplace_back(2, 5, 2);
dims.emplace_back(2, 8, 0);
migraphx::shape s{migraphx::shape::float_type, dims};
EXPECT(test::throws([&] { s.element_space(); }));
EXPECT(test::throws([&] { s.elements(); }));
......@@ -112,13 +111,13 @@ TEST_CASE(test_shape_dynamic_errors)
TEST_CASE(test_shape_dynamic_serialize)
{
std::vector<migraphx::shape::dynamic_dimension> dims1 = {};
dims1.emplace_back(migraphx::shape::dynamic_dimension{2, 5, 2});
dims1.emplace_back(migraphx::shape::dynamic_dimension{2, 8, 0});
dims1.emplace_back(2, 5, 2);
dims1.emplace_back(2, 8, 0);
migraphx::shape s1{migraphx::shape::float_type, dims1};
auto v1 = migraphx::to_value(s1);
std::vector<migraphx::shape::dynamic_dimension> dims2 = {};
dims2.emplace_back(migraphx::shape::dynamic_dimension{2, 5, 2});
dims2.emplace_back(2, 5, 2);
migraphx::shape s2{migraphx::shape::uint64_type, dims2};
auto v2 = migraphx::to_value(s2);
EXPECT(v1 != v2);
......
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