24 #include "../ResizeAdapterTest.h"
31 namespace astrotypes {
52 template<
typename... Dimensions>
55 typedef std::tuple<DimensionSize<Dimensions>...> TupleType;
63 template<
typename Dimension>
66 return std::get<find_type<TupleType, DimensionSize<Dimension>>::value>(_tuple);
73 template<
typename T,
typename Dim,
typename... Dims,
typename... SDims>
83 ResizeAdapter<DimensionA> adapter(size_a);
84 ss >> adapter >> data;
103 ResizeAdapter<DimensionA> adapter_a;
104 ResizeAdapter<DimensionB> adapter_b(size_b_override);
105 ResizeAdapter<DimensionC> adapter_c(size_c_override);
106 ss >> adapter_a >> adapter_b >> adapter_c >> data;
108 ASSERT_EQ(data.dimension<
DimensionA>(), size_a);
109 ASSERT_EQ(data.dimension<
DimensionB>(), size_b_override);
110 ASSERT_EQ(data.dimension<
DimensionC>(), size_c_override);
121 ResizeAdapter<DimensionA, DimensionB> adapter_a_b(size_a, size_b);
122 ss >> adapter_a_b >> data;
123 ASSERT_EQ(data.dimension<
DimensionA>(), size_a);
124 ASSERT_EQ(data.dimension<
DimensionB>(), size_b);
127 ResizeAdapter<DimensionB, DimensionA> adapter_b_a(size_a, size_b);
128 ss >> adapter_b_a >> data_2;
129 ASSERT_EQ(data_2.dimension<
DimensionA>(), size_a);
130 ASSERT_EQ(data_2.dimension<
DimensionB>(), size_b);
void tuple_insert_type(std::tuple< TupleTs...> &tuple, Ts const &...values)
TEST_F(MultiArrayTest, test_single_dimension_size)
TestDimensionStream(DimensionSize< Dimensions >...sizes)
TestDimensionStream< SDims...> & operator>>(TestDimensionStream< SDims...> &is, TestMultiArray< T, Dim, Dims...> &)
A compile time dimesion tagging of size_t.
DimensionSize< Dimension > dimension() const