24 #include "cheetah/data/test_utils/SeriesTester.h" 25 #include "cheetah/data/Series.h" 34 template<
typename SeriesTesterTraitsT>
35 SeriesTester<SeriesTesterTraitsT>::SeriesTester()
39 TYPED_TEST_P(SeriesTester, construct_resize)
41 typedef TypeParam Traits;
42 typedef typename Traits::SeriesType SeriesType;
45 for(
auto& device : this->_system.devices()) {
46 SeriesType series(traits.allocator(*device));
47 ASSERT_EQ(series.size(), std::size_t(0));
50 ASSERT_EQ(series.size(), std::size_t(2));
53 ASSERT_EQ(series.size(), std::size_t(1));
55 auto it = series.begin();
57 ASSERT_EQ(series.size(), std::size_t(1));
58 ASSERT_EQ(it, series.begin());
62 TYPED_TEST_P(SeriesTester, begin_end)
64 typedef TypeParam Traits;
65 typedef typename Traits::SeriesType SeriesType;
69 for(
auto& device : this->_system.devices()) {
70 SeriesType series(n, traits.allocator(*device));
75 auto it = series.begin();
76 ASSERT_EQ(n, std::size_t(std::distance(it, series.end())));
77 while(it != series.end()) {
85 const SeriesType& const_series = series;
88 auto it = const_series.begin();
89 ASSERT_EQ(n, std::size_t(std::distance(it, const_series.end())));
90 while(it != const_series.end()) {
100 auto it = const_series.cbegin();
101 ASSERT_EQ(n, std::size_t(std::distance(it, series.cend())));
102 while(it != const_series.cend()) {
111 TYPED_TEST_P(SeriesTester, host_conversion)
113 typedef TypeParam Traits;
114 typedef typename Traits::SeriesType SeriesType;
115 typedef typename SeriesType::ValueType ValueType;
116 typedef Series<panda::Cpu, ValueType, std::allocator<ValueType>> HostSeriesType;
120 HostSeriesType host_data(n, std::allocator<ValueType>());
122 std::transform(host_data.begin(), host_data.end(), host_data.begin(), [&](ValueType
const&) {
return ++value; });
125 for(
auto& device : this->_system.devices()) {
127 auto allocator = traits.allocator(*device);
128 SeriesType series(host_data, allocator);
129 ASSERT_EQ(series.size(), host_data.size());
131 HostSeriesType host_data_copy(series);
132 ASSERT_EQ(host_data_copy.size(), n);
133 auto copy_it=host_data_copy.cbegin();
134 auto it=host_data.cbegin();
136 while(it!=host_data.cend()) {
137 SCOPED_TRACE(
"element number: " + std::to_string(count));
138 ASSERT_EQ(*it, *copy_it) << host_data[count];
146 REGISTER_TYPED_TEST_CASE_P(SeriesTester, construct_resize, begin_end, host_conversion);
Some limits and constants for FLDO.