TEST(LayerList, AreLayersAdjacent) { std::unique_ptr<Sprite> spr(new Sprite(IMAGE_RGB, 32, 32, 256)); LayerGroup* root = spr->root(); Layer* layer1 = new LayerImage(spr.get()); Layer* layer2 = new LayerImage(spr.get()); Layer* layer3 = new LayerImage(spr.get()); Layer* layer4 = new LayerImage(spr.get()); root->addLayer(layer1); root->addLayer(layer2); root->addLayer(layer3); root->addLayer(layer4); LayerList layers; root->allLayers(layers); EXPECT_EQ(4, layers.size()); EXPECT_TRUE(are_layers_adjacent(layers)); std::reverse(layers.begin(), layers.end()); EXPECT_EQ(4, layers.size()); EXPECT_TRUE(are_layers_adjacent(layers)); layers.erase(layers.begin()); EXPECT_EQ(3, layers.size()); EXPECT_TRUE(are_layers_adjacent(layers)); layers.erase(layers.begin()+1); EXPECT_EQ(2, layers.size()); EXPECT_FALSE(are_layers_adjacent(layers)); std::reverse(layers.begin(), layers.end()); EXPECT_EQ(2, layers.size()); EXPECT_FALSE(are_layers_adjacent(layers)); layers.erase(layers.begin()); EXPECT_EQ(1, layers.size()); EXPECT_TRUE(are_layers_adjacent(layers)); }