36TEST(ExtremumTest, holdsAnInfiniteValue) {
40 EXPECT_FALSE(minimum &= ExtendedRationalNumber::infinity());
45 EXPECT_TRUE(other &= ExtendedRationalNumber::negativeInfinity());
46 EXPECT_FALSE(other.
empty());
51 EXPECT_TRUE(maximum &= rational(2));
52 EXPECT_TRUE(maximum &= ExtendedRationalNumber::infinity());
53 EXPECT_FALSE(maximum.empty());
56 EXPECT_FALSE(maximum &= rational(1000000));
59TEST(ExtremumTest, ordinaryUseIsUnchanged) {
61 EXPECT_TRUE(minimum &= rational(5));
62 EXPECT_FALSE(minimum.empty());
63 EXPECT_EQ(rational(5), *minimum);
64 EXPECT_TRUE(minimum.better(rational(3)));
65 EXPECT_FALSE(minimum.better(rational(7)));
66 EXPECT_TRUE(minimum &= rational(3));
67 EXPECT_FALSE(minimum &= rational(7));
68 EXPECT_EQ(rational(3), *minimum);
69 ASSERT_TRUE(minimum.getOptionalValue().has_value());
70 EXPECT_EQ(rational(3), minimum.getOptionalValue().value());
73 EXPECT_TRUE(minimum.empty());
74 EXPECT_FALSE(minimum.getOptionalValue().has_value());
78 EXPECT_TRUE(first &= second);
79 EXPECT_EQ(rational(4), *first);
81 EXPECT_EQ(rational(4), *second);