Skip to content
Snippets Groups Projects
Commit dd27a424 authored by Maxence Naud's avatar Maxence Naud
Browse files

[Fix] Apply suggested changes

- remove unused code in comments in ArrayHelpers.hpp
- use std::unique_ptr<[]> instead of C style array in Test_Tensor
- use AIDGE_THROW_OR_ABORT as a default implem for zeros() member function
parent e0a416fd
No related branches found
No related tags found
No related merge requests found
...@@ -191,7 +191,7 @@ public: ...@@ -191,7 +191,7 @@ public:
* @brief Set every element of the implementation to zero. * @brief Set every element of the implementation to zero.
*/ */
virtual void zeros() { virtual void zeros() {
printf("Not implemented yet"); AIDGE_THROW_OR_ABORT(std::runtime_error, "Function not implented");
} }
constexpr const char *backend() const { return mBackend; } constexpr const char *backend() const { return mBackend; }
......
...@@ -103,32 +103,11 @@ constexpr std::array<T, N + 1> append(T t, std::array<T, N> a) { ...@@ -103,32 +103,11 @@ constexpr std::array<T, N + 1> append(T t, std::array<T, N> a) {
// Generic helper for initializing a Tensor // Generic helper for initializing a Tensor
template <typename T, std::size_t SIZE_0> template <typename T, std::size_t SIZE_0>
struct Array1D { struct Array1D {
// Array1D(std::initializer_list<T> list) {
// auto it = list.begin();
// for (std::size_t i = 0; i < SIZE_0; ++i, ++it) {
// data[i] = *it;
// }
// }
// Array1D(const T (&dataArray)[SIZE_0]) {
// std::copy_n(&dataArray[0], SIZE_0, &data[0]);
// }
T data[SIZE_0]; T data[SIZE_0];
}; };
template <typename T, std::size_t SIZE_0, std::size_t SIZE_1> template <typename T, std::size_t SIZE_0, std::size_t SIZE_1>
struct Array2D { struct Array2D {
// Array2D(std::initializer_list<std::initializer_list<T>> list) {
// auto it1 = list.begin();
// for (std::size_t i = 0; i < SIZE_0; ++i, ++it1) {
// auto it2 = it1->begin();
// for (std::size_t j = 0; j < SIZE_1; ++j, ++it2) {
// data[i][j] = *it2;
// }
// }
// }
// Array2D(const T (&dataArray)[SIZE_0][SIZE_1]) {
// std::copy_n(&dataArray[0][0], SIZE_0 * SIZE_1, &data[0][0]);
// }
T data[SIZE_0][SIZE_1]; T data[SIZE_0][SIZE_1];
}; };
......
...@@ -142,7 +142,7 @@ TEST_CASE("[core/data] Tensor(Construction)", "[Tensor][Constructor]") { ...@@ -142,7 +142,7 @@ TEST_CASE("[core/data] Tensor(Construction)", "[Tensor][Constructor]") {
Tensor T(Tdims); Tensor T(Tdims);
// file the tensor // file the tensor
float* array0 = new float[T.size()]; std::unique_ptr<float[]> array0(new float[T.size()]);
for (std::size_t i = 0; i < T.size(); ++i) { for (std::size_t i = 0; i < T.size(); ++i) {
array0[i] = valueDist(gen); array0[i] = valueDist(gen);
} }
...@@ -216,7 +216,7 @@ TEST_CASE("[core/data] Tensor(getter/setter)", "[Tensor][Getter][Setter]") { ...@@ -216,7 +216,7 @@ TEST_CASE("[core/data] Tensor(getter/setter)", "[Tensor][Getter][Setter]") {
REQUIRE(T.strides() == Tstrides); REQUIRE(T.strides() == Tstrides);
// file the tensor // file the tensor
float* array0 = new float[T.size()]; std::unique_ptr<float[]> array0(new float[T.size()]);
for (std::size_t i = 0; i < T.size(); ++i) { for (std::size_t i = 0; i < T.size(); ++i) {
array0[i] = valueDist(gen); array0[i] = valueDist(gen);
} }
...@@ -241,7 +241,6 @@ TEST_CASE("[core/data] Tensor(getter/setter)", "[Tensor][Getter][Setter]") { ...@@ -241,7 +241,6 @@ TEST_CASE("[core/data] Tensor(getter/setter)", "[Tensor][Getter][Setter]") {
REQUIRE(T.get<float>(true_flatid) == 40.0f); REQUIRE(T.get<float>(true_flatid) == 40.0f);
REQUIRE(T.getImplOffset() == 0); REQUIRE(T.getImplOffset() == 0);
delete[] array0;
////////////// //////////////
// backend // backend
...@@ -279,12 +278,12 @@ TEST_CASE("[core/data] Tensor(other)", "[Tensor][extract][zeros][print]") { ...@@ -279,12 +278,12 @@ TEST_CASE("[core/data] Tensor(other)", "[Tensor][extract][zeros][print]") {
T.resize(Tdims); T.resize(Tdims);
// file the tensor // file the tensor
float* array0 = new float[T.size()]; std::unique_ptr<float[]> array0(new float[T.size()]);
for (std::size_t i = 0; i < T.size(); ++i) { for (std::size_t i = 0; i < T.size(); ++i) {
array0[i] = valueDist(gen); array0[i] = valueDist(gen);
} }
T.setBackend("cpu"); T.setBackend("cpu");
T.getImpl() -> setRawPtr(array0, T.size()); T.getImpl() -> setRawPtr(array0.get(), T.size());
float* res = static_cast<float*>(T.getImpl()->hostPtr()); float* res = static_cast<float*>(T.getImpl()->hostPtr());
for (std::size_t i = 0; i < T.size(); ++i) { for (std::size_t i = 0; i < T.size(); ++i) {
REQUIRE(res[i] == array0[i]); REQUIRE(res[i] == array0[i]);
...@@ -295,7 +294,6 @@ TEST_CASE("[core/data] Tensor(other)", "[Tensor][extract][zeros][print]") { ...@@ -295,7 +294,6 @@ TEST_CASE("[core/data] Tensor(other)", "[Tensor][extract][zeros][print]") {
for (std::size_t i = 0; i < T.size(); ++i) { for (std::size_t i = 0; i < T.size(); ++i) {
REQUIRE(res[i] == 0.0f); REQUIRE(res[i] == 0.0f);
} }
delete[] array0;
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment