16 inline void static_autotests() {
23 static_assert(a < b && b < c);
24 static_assert(a.getNF() == 1 && b.getNF() == 2);
27 constexpr
auto d = a + b;
28 static_assert(d.getNI() == 9);
29 static_assert(d.getNF() == 2);
30 static_assert((a + c).getNF() == 1);
31 static_assert(d.asRaw() == 258);
32 constexpr
auto e = d + b + c;
33 static_assert(e.getNI() == 10);
34 static_assert(e.getNF() == 2);
36 static_assert((d + d).getNI() == 10);
37 static_assert((e + e).getNF() == 2);
38 static_assert((d + e).getNI() == 11);
41 constexpr
auto large =
UFix<32,0>(1LL << 31,
true);
42 static_assert(
sizeof(decltype(large.asRaw())) == 4);
43 static_assert((large+large).asRaw() == (1LL << 32));
44 static_assert(
sizeof(decltype((large+large).asRaw())) > 4);
47 static_assert(b - a == c - b);
50 static_assert(b + a - b == a);
51 static_assert(b + a + (-b) == a);
52 static_assert(-(-a) == a);
53 #if __cplusplus >= 202002L
56 static_assert(
UFix<43,9>(0) - b - a == -(a+b));
70 static_assert(a.getNI() == a.asSFix().getNI());
71 static_assert(a.getNF() == a.asSFix().getNF());
constexpr UFix< 0, sizeof(T) *8 > toUFraction(T val)
Definition: FixMath.h:685
Definition: FixMath.h:714
Definition: FixMath.h:156
Definition: FixMath.h:127