44 for (
auto i : {-1, 0, 1})
48 BEAST_EXPECT((i == 0) == (x == kZero));
49 BEAST_EXPECT((i != 0) == (x != kZero));
50 BEAST_EXPECT((i < 0) == (x < kZero));
51 BEAST_EXPECT((i > 0) == (x > kZero));
52 BEAST_EXPECT((i <= 0) == (x <= kZero));
53 BEAST_EXPECT((i >= 0) == (x >= kZero));
55 BEAST_EXPECT((0 == i) == (kZero == x));
56 BEAST_EXPECT((0 != i) == (kZero != x));
57 BEAST_EXPECT((0 < i) == (kZero < x));
58 BEAST_EXPECT((0 > i) == (kZero > x));
59 BEAST_EXPECT((0 <= i) == (kZero <= x));
60 BEAST_EXPECT((0 >= i) == (kZero >= x));
69 for (
auto i : {-1, 0, 1})
73 for (
auto j : {-1, 0, 1})
77 BEAST_EXPECT((i == j) == (x == y));
78 BEAST_EXPECT((i != j) == (x != y));
79 BEAST_EXPECT((i < j) == (x < y));
80 BEAST_EXPECT((i > j) == (x > y));
81 BEAST_EXPECT((i <= j) == (x <= y));
82 BEAST_EXPECT((i >= j) == (x >= y));
223 BEAST_EXPECT(big ==
mulRatio(big, kMaxUInt32, kMaxUInt32,
true));
225 BEAST_EXPECT(big ==
mulRatio(big, kMaxUInt32, kMaxUInt32,
false));
230 BEAST_EXPECT(
mulRatio(big, 3, 4,
false).value() == (big.
value() / 4) * 3);
231 BEAST_EXPECT(
mulRatio(big, 3, 4,
true).value() == (big.
value() / 4) * 3);
232 BEAST_EXPECT((big.
value() * 3) / 4 != (big.
value() / 4) * 3);
238 BEAST_EXPECT(big ==
mulRatio(big, kMaxUInt32, kMaxUInt32,
true));
240 BEAST_EXPECT(big ==
mulRatio(big, kMaxUInt32, kMaxUInt32,
false));
244 BEAST_EXPECT(
mulRatio(big, 3, 4,
false).value() == (big.
value() / 4) * 3);
245 BEAST_EXPECT(
mulRatio(big, 3, 4,
true).value() == (big.
value() / 4) * 3);
246 BEAST_EXPECT((big.
value() * 3) / 4 != (big.
value() / 4) * 3);
253 BEAST_EXPECT(tiny ==
mulRatio(tiny, 1, kMaxUInt32,
true));
255 BEAST_EXPECT(beast::kZero ==
mulRatio(tiny, 1, kMaxUInt32,
false));
256 BEAST_EXPECT(beast::kZero ==
mulRatio(tiny, kMaxUInt32 - 1, kMaxUInt32,
false));
261 BEAST_EXPECT(beast::kZero ==
mulRatio(tinyNeg, 1, kMaxUInt32,
true));
262 BEAST_EXPECT(beast::kZero ==
mulRatio(tinyNeg, kMaxUInt32 - 1, kMaxUInt32,
true));
264 BEAST_EXPECT(tinyNeg ==
mulRatio(tinyNeg, kMaxUInt32 - 1, kMaxUInt32,
false));
270 auto const rup =
mulRatio(one, kMaxUInt32 - 1, kMaxUInt32,
true);
271 auto const rdown =
mulRatio(one, kMaxUInt32 - 1, kMaxUInt32,
false);
272 BEAST_EXPECT(rup.drops() - rdown.drops() == 1);
277 auto const rup =
mulRatio(big, kMaxUInt32 - 1, kMaxUInt32,
true);
278 auto const rdown =
mulRatio(big, kMaxUInt32 - 1, kMaxUInt32,
false);
279 BEAST_EXPECT(rup.drops() - rdown.drops() == 1);
284 auto const rup =
mulRatio(negOne, kMaxUInt32 - 1, kMaxUInt32,
true);
285 auto const rdown =
mulRatio(negOne, kMaxUInt32 - 1, kMaxUInt32,
false);
286 BEAST_EXPECT(rup.drops() - rdown.drops() == 1);
304 XRPAmount const bigNegative(kMinXrp + 10);
305 BEAST_EXPECT(
mulRatio(bigNegative, 2, 1,
true) == kMinXrp);