| 20 | using namespace zvec; |
| 21 | |
| 22 | TEST(NumericalVectorArray, General) { |
| 23 | ailego::NumericalVectorArray<float> arr; |
| 24 | ailego::NumericalVectorArray<float> &const_arr = arr; |
| 25 | EXPECT_TRUE(arr.empty()); |
| 26 | EXPECT_EQ(0u, arr.dimension()); |
| 27 | EXPECT_EQ(0u, arr.count()); |
| 28 | EXPECT_EQ(0u, arr.bytes()); |
| 29 | EXPECT_NE(nullptr, arr.data()); |
| 30 | EXPECT_NE(nullptr, const_arr.data()); |
| 31 | arr.shrink_to_fit(); |
| 32 | arr.clear(); |
| 33 | EXPECT_EQ(0u, arr.dimension()); |
| 34 | EXPECT_EQ(0u, arr.count()); |
| 35 | |
| 36 | try { |
| 37 | arr.at(0); |
| 38 | } catch (const std::out_of_range &oor) { |
| 39 | std::cerr << "Out of Range error: " << oor.what() << '\n'; |
| 40 | } |
| 41 | try { |
| 42 | const_arr.at(0); |
| 43 | } catch (const std::out_of_range &oor) { |
| 44 | std::cerr << "Out of Range error: " << oor.what() << '\n'; |
| 45 | } |
| 46 | |
| 47 | ailego::NumericalVector<float> vec1 = {10.0f, 11.0f, 12.0f, 13.0f, 14.0f, |
| 48 | 15.0f, 16.0f, 17.0f, 18.0f, 19.0f}; |
| 49 | ailego::NumericalVector<float> vec2 = {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, |
| 50 | 6.0f, 7.0f, 8.0f, 9.0f, 0.0f}; |
| 51 | arr.reset(10); |
| 52 | arr.append(vec1); |
| 53 | arr.append(vec2); |
| 54 | arr.append(vec1); |
| 55 | EXPECT_EQ(3u, arr.count()); |
| 56 | EXPECT_EQ(10u, arr.dimension()); |
| 57 | |
| 58 | arr.reserve(10); |
| 59 | EXPECT_EQ(vec1, std::string(reinterpret_cast<const char *>(arr.at(0)), |
| 60 | arr.dimension() * sizeof(float))); |
| 61 | EXPECT_EQ(vec1, std::string(reinterpret_cast<const char *>(arr[2]), |
| 62 | arr.dimension() * sizeof(float))); |
| 63 | arr.replace(2, vec2); |
| 64 | EXPECT_EQ(vec2, std::string(reinterpret_cast<const char *>(const_arr.at(1)), |
| 65 | arr.dimension() * sizeof(float))); |
| 66 | EXPECT_EQ(vec2, std::string(reinterpret_cast<const char *>(const_arr[2]), |
| 67 | arr.dimension() * sizeof(float))); |
| 68 | |
| 69 | arr.clear(); |
| 70 | EXPECT_EQ(10u, arr.dimension()); |
| 71 | EXPECT_EQ(0u, arr.count()); |
| 72 | |
| 73 | arr.reset(2); |
| 74 | arr.append(vec1.data(), 2, 5); |
| 75 | arr.append(vec2.data(), 2, 5); |
| 76 | EXPECT_EQ(2u, arr.dimension()); |
| 77 | EXPECT_EQ(10u, arr.count()); |
| 78 | |
| 79 | ailego::NumericalVectorArray<float> arr1 = std::move(arr); |
nothing calls this directly
no test coverage detected