159TEST(MatchTypeTests, TestBasicTypeMatch)
161 EXPECT_EQ(Discriminate1(X()), 0);
162 EXPECT_EQ(Discriminate1(Y()), 1);
163 EXPECT_EQ(Discriminate1(Z()), 2);
164 EXPECT_EQ(Discriminate1(U()), -1);
166 EXPECT_EQ(Discriminate2(X()), 0);
167 EXPECT_EQ(Discriminate2(Y()), 1);
168 EXPECT_EQ(Discriminate2(Z()), 2);
169 EXPECT_EQ(Discriminate2(U()), -1);
171 EXPECT_EQ(Discriminate3(X()), 0);
172 EXPECT_EQ(Discriminate3(Y()), 1);
173 EXPECT_EQ(Discriminate3(Z()), 2);
174 EXPECT_EQ(Discriminate3(U()), -1);
176 EXPECT_EQ(Discriminate4(X()), 0);
177 EXPECT_EQ(Discriminate4(Y()), 1);
178 EXPECT_EQ(Discriminate4(Z()), 2);
179 EXPECT_THROW(Discriminate4(U()), std::logic_error);
181 EXPECT_EQ(Discriminate5(X()), 0);
182 EXPECT_EQ(Discriminate5(Y()), 1);
183 EXPECT_EQ(Discriminate5(Z()), 2);