// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "arrayviewtests/Defs.h" #include #ifdef _MSC_VER #pragma warning(push) #pragma warning(disable : 4365 4987) #endif #include #include #include #ifdef _MSC_VER #pragma warning(pop) #endif namespace av { template class TestArrayView : public ::testing::Test { public: template std::array initArray() { std::array array{{}}; for (std::size_t i = 0; i < array.size(); ++i) { array.at(i) = static_cast(i); } return array; } template void initArray(T* ptr) { for (std::size_t i = 0; i < size; ++i) { *(ptr + i) = static_cast(i); } } template std::vector initVector() { std::array array = initArray(); return std::vector(array.begin(), array.end()); } template bool equal(const ArrayView& arr, T* ptr, const std::size_t size) { assert(nullptr != ptr); return (arr == std::vector(ptr, ptr + size)); } }; template<> template std::array TestArrayView::initArray() { std::array array{{}}; for (std::size_t i = 0; i < array.size(); ++i) { array.at(i) = std::to_string(i); } return array; } template<> template void TestArrayView::initArray(std::string* ptr) { for (std::size_t i = 0; i < size; ++i) { *(ptr + i) = std::to_string(i); } } using ValueTypes = ::testing::Types; constexpr std::size_t length{10}; } // namespace av