10 #include <IdentityTransform.hpp>
12 #include <boost/range.hpp>
13 #include <boost/range/algorithm.hpp>
14 #include <boost/range/algorithm_ext.hpp>
16 #include <gtest/gtest.h>
24 class IdentityTest :
public ::testing::Test {
45 reference_vec.resize(ref_vec_len);
47 boost::iota (reference_vec, 0);
59 const std::size_t ref_vec_len = 512;
62 std::vector<int> reference_vec;
66 typedef std::vector<int> VT;
73 TEST_F(IdentityTest, CTor1)
77 VT vec (reference_vec);
87 IdentityT idT (vec.begin(), vec.end(), vec2.begin());
90 for (std::size_t i = 0; i < vec.size(); ++i)
92 EXPECT_EQ( reference_vec.at(i), vec.at(i) );
98 TEST_F(IdentityTest, CTor2)
102 VT vec (reference_vec);
109 VT vec2 (vec.size());
112 IdentityT idT (vec,vec2);
115 for (std::size_t i = 0; i < vec.size(); ++i)
117 EXPECT_EQ( reference_vec.at(i), vec.at(i) );
122 TEST_F(IdentityTest, SeeTypes)
124 VT vec (reference_vec);
125 VT vec2 (vec.size());
126 IdentityT idT (vec,vec2);
129 std::cout <<
"Transform Type: " <<
typeid(decltype(idT)::transform_type).name() << std::endl;
135 TEST_F(IdentityTest, FwTransWithIters)
139 VT vec (reference_vec);
146 VT vec2 (vec.size());
150 IdentityT idT (vec.begin(), vec.end(), vec2.begin());
153 idT.exec_transform();
156 for (std::size_t i = 0; i < vec.size(); ++i)
158 EXPECT_EQ( reference_vec.at(i), vec.at(i) );
162 for (std::size_t i = 0; i < vec.size(); ++i)
164 EXPECT_EQ( reference_vec.at(i), vec2.at(i) );
169 TEST_F(IdentityTest, FwTransWithRange)
173 VT vec (reference_vec);
180 VT vec2 (vec.size());
183 IdentityT idT (vec, vec2);
187 idT.exec_transform();
190 for (std::size_t i = 0; i < vec.size(); ++i)
192 EXPECT_EQ( reference_vec.at(i), vec.at(i) );
196 for (std::size_t i = 0; i < vec.size(); ++i)
198 EXPECT_EQ( reference_vec.at(i), vec2.at(i) );
201 EXPECT_EQ( vec.begin(), boost::begin(idT.range1_));
202 EXPECT_EQ( vec.end(), boost::end(idT.range1_));
203 EXPECT_EQ( vec2.begin(), boost::begin(idT.range2_));
204 EXPECT_EQ( vec2.end(), boost::end(idT.range2_));
208 TEST_F(IdentityTest, InvTrans)
212 VT vec (reference_vec);
216 VT vec2 (vec.size());
223 IdentityT idT (vec2.begin(), vec2.end(), vec.begin());
226 idT.exec_inverse_transform();
229 for (std::size_t i = 0; i < vec.size(); ++i)
231 EXPECT_EQ( reference_vec.at(i), vec.at(i) );
235 for (std::size_t i = 0; i < vec.size(); ++i)
237 EXPECT_EQ( reference_vec.at(i), vec2.at(i) );
251 main (
int argc,
char** argv)
253 ::testing::InitGoogleTest(&argc, argv);
254 return RUN_ALL_TESTS();