TEST(test_iter, const_iterate) { std::cout << "testing const iterate" << std::endl; const KeySet ks2 (5, *Key ("user/key2/1", KEY_END), *Key ("user/key2/2", KEY_END), *Key ("user/key2/3", KEY_VALUE, "value", KEY_END), KS_END); ASSERT_EQ((*ks2.begin()).getName() , "user/key2/1" ) << "name wrong"; ASSERT_EQ(ks2.begin()->getName() , "user/key2/1" ) << "name wrong"; ASSERT_EQ((ks2.begin()[0])->getName() , "user/key2/1" ) << "name wrong"; ASSERT_EQ((*(++ks2.begin())).getName() , "user/key2/2") << "name wrong"; ASSERT_EQ((++ks2.begin())->getName() , "user/key2/2" ) << "name wrong"; ASSERT_EQ((*(ks2.begin()+1)).getName() , "user/key2/2") << "name wrong"; ASSERT_EQ((ks2.begin()+1)->getName() , "user/key2/2" ) << "name wrong"; ASSERT_EQ((ks2.begin()[1])->getName() , "user/key2/2" ) << "name wrong"; ASSERT_EQ((*(ks2.begin()+2)).getName() , "user/key2/3") << "name wrong"; ASSERT_EQ((ks2.begin()+2)->getName() , "user/key2/3" ) << "name wrong"; ASSERT_EQ((ks2.begin()[2])->getName() , "user/key2/3" ) << "name wrong"; ASSERT_EQ((ks2.begin()+3) , ks2.end() ) << "end iterator broken"; ASSERT_EQ((*ks2.rbegin()).getName() , "user/key2/3" ) << "name wrong"; ASSERT_EQ(ks2.rbegin()->getName() , "user/key2/3" ) << "name wrong"; ASSERT_EQ((ks2.rbegin()[0])->getName() , "user/key2/3" ) << "name wrong"; ASSERT_EQ((*(++ks2.rbegin())).getName() , "user/key2/2") << "name wrong"; ASSERT_EQ((++ks2.rbegin())->getName() , "user/key2/2" ) << "name wrong"; ASSERT_EQ((*(ks2.rbegin()+1)).getName() , "user/key2/2") << "name wrong"; ASSERT_EQ((ks2.rbegin()+1)->getName() , "user/key2/2" ) << "name wrong"; ASSERT_EQ((ks2.rbegin()[1])->getName() , "user/key2/2" ) << "name wrong"; ASSERT_EQ((*(ks2.rbegin()+2)).getName() , "user/key2/1") << "name wrong"; ASSERT_EQ((ks2.rbegin()+2)->getName() , "user/key2/1" ) << "name wrong"; ASSERT_EQ((ks2.rbegin()[2])->getName() , "user/key2/1" ) << "name wrong"; ASSERT_EQ((ks2.rbegin()+3) , ks2.rend() ) << "end iterator broken"; ASSERT_EQ((*ks2.cbegin()).getName() , "user/key2/1" ) << "name wrong"; ASSERT_EQ(ks2.cbegin()->getName() , "user/key2/1" ) << "name wrong"; ASSERT_EQ((ks2.cbegin()[0])->getName() , "user/key2/1" ) << "name wrong"; ASSERT_EQ((*(++ks2.cbegin())).getName() , "user/key2/2") << "name wrong"; ASSERT_EQ((++ks2.cbegin())->getName() , "user/key2/2" ) << "name wrong"; ASSERT_EQ((*(ks2.cbegin()+1)).getName() , "user/key2/2") << "name wrong"; ASSERT_EQ((ks2.cbegin()+1)->getName() , "user/key2/2" ) << "name wrong"; ASSERT_EQ((ks2.cbegin()[1])->getName() , "user/key2/2" ) << "name wrong"; ASSERT_EQ((*(ks2.cbegin()+2)).getName() , "user/key2/3") << "name wrong"; ASSERT_EQ((ks2.cbegin()+2)->getName() , "user/key2/3" ) << "name wrong"; ASSERT_EQ((ks2.cbegin()[2])->getName() , "user/key2/3" ) << "name wrong"; ASSERT_EQ((ks2.cbegin()+3) , ks2.cend() ) << "end iterator broken"; ASSERT_EQ((*ks2.crbegin()).getName() , "user/key2/3" ) << "name wrong"; ASSERT_EQ(ks2.crbegin()->getName() , "user/key2/3" ) << "name wrong"; ASSERT_EQ((ks2.crbegin()[0])->getName() , "user/key2/3" ) << "name wrong"; ASSERT_EQ((*(++ks2.crbegin())).getName() , "user/key2/2") << "name wrong"; ASSERT_EQ((++ks2.crbegin())->getName() , "user/key2/2" ) << "name wrong"; ASSERT_EQ((*(ks2.crbegin()+1)).getName() , "user/key2/2") << "name wrong"; ASSERT_EQ((ks2.crbegin()+1)->getName() , "user/key2/2" ) << "name wrong"; ASSERT_EQ((ks2.crbegin()[1])->getName() , "user/key2/2" ) << "name wrong"; ASSERT_EQ((*(ks2.crbegin()+2)).getName() , "user/key2/1") << "name wrong"; ASSERT_EQ((ks2.crbegin()+2)->getName() , "user/key2/1" ) << "name wrong"; ASSERT_EQ((ks2.crbegin()[2])->getName() , "user/key2/1" ) << "name wrong"; ASSERT_EQ((ks2.crbegin()+3) , ks2.crend() ) << "end iterator broken"; }