6 #include "../vnix/rat/normalized-pair.hpp" 12 TEST_CASE(
"Input fraction has positive denominator.",
"[normalized-pair]") {
13 normalized_pair
const p
(3
, -2
);
19 TEST_CASE(
"Input fraction is reduced.",
"[normalized-pair]") {
20 normalized_pair
const p
(-4
, 6
);
26 TEST_CASE(
"Throw on division by zero.",
"[normalized-pair]") {
27 REQUIRE_THROWS(normalized_pair
(1
, 0
));
31 TEST_CASE(
"Limits are as expected.",
"[normalized-pair]") {
32 REQUIRE_NOTHROW(normalized_pair
(-16
, 1
));
33 REQUIRE_THROWS(normalized_pair
(-17
, 1
));
35 REQUIRE_NOTHROW(normalized_pair
(+15
, 1
));
36 REQUIRE_THROWS(normalized_pair
(+16
, 1
));
38 REQUIRE_NOTHROW(normalized_pair
(+1
, 8
));
39 REQUIRE_THROWS(normalized_pair
(+1
, 9
));
constexpr S n() const
Normalized numerator.
Numerator and denominator of a rational number as separate numbers, not encoded into the same word...
constexpr normalized_pair(S nn, S dd)
Initialize normalized numerator and denominator for encoding of rational number.
Thomas E. Vaughan's public software.
constexpr U d() const
Normalized denominator.
Classes and functions supporting a model of a fixed-precision rational number.