12TEST(TextureTypeEnum, VisitsEntireInclusiveRangeExactlyOnceAndTerminates)
15 auto iterator = range.
begin();
16 ASSERT_NE(iterator, range.
end());
17 EXPECT_EQ(*iterator, TextureType::Begin);
19 for (
int value = TextureType::Begin; value <= TextureType::End; ++value)
21 ASSERT_NE(iterator, range.
end());
22 EXPECT_EQ(*iterator,
static_cast<TextureType>(value));
25 EXPECT_EQ(iterator, range.
end());
28TEST(TextureTypeEnum, PrefixAndPostfixHaveIteratorSemantics)
31 auto iterator = range.
begin();
33 EXPECT_EQ(copy, iterator);
34 EXPECT_EQ(&(++iterator), &iterator);
35 EXPECT_NE(copy, iterator);
36 EXPECT_EQ(*iterator,
static_cast<TextureType>(
static_cast<int>(TextureType::Begin) + 1));
37 auto previous = iterator++;
38 EXPECT_EQ(*previous,
static_cast<TextureType>(
static_cast<int>(TextureType::Begin) + 1));
39 EXPECT_EQ(*iterator,
static_cast<TextureType>(
static_cast<int>(TextureType::Begin) + 2));
40 EXPECT_EQ(*copy, TextureType::Begin);