#ifndef __NNCC_CORE_ADT_TENSOR_SHAPE_H__
#define __NNCC_CORE_ADT_TENSOR_SHAPE_H__
+#include <initializer_list>
#include <vector>
#include <cstdint>
class Shape
{
public:
+ Shape() = default;
+ Shape(std::initializer_list<uint32_t> &&l);
+
+public:
uint32_t rank(void) const;
public:
ASSERT_EQ(shape.rank(), 0);
}
+TEST(ADT_TENSOR_SHAPE, ctor_initializer_list)
+{
+ nncc::core::ADT::tensor::Shape shape{1, 3, 5, 7};
+
+ ASSERT_EQ(shape.rank(), 4);
+
+ ASSERT_EQ(shape.dim(0), 1);
+ ASSERT_EQ(shape.dim(1), 3);
+ ASSERT_EQ(shape.dim(2), 5);
+ ASSERT_EQ(shape.dim(3), 7);
+}
+
TEST(ADT_TENSOR_SHAPE, resize)
{
nncc::core::ADT::tensor::Shape shape;