36 Number x{10'000'000'000'000'000, 32768};
43 Number x{10'000'000'000'000'000, 32767};
44 BEAST_EXPECT((x ==
Number{1'000'000'000'000'000, 32768}));
45 Number z{1'000'000'000'000'000, -32769};
46 BEAST_EXPECT(z ==
Number{});
47 Number y{1'000'000'000'000'001'500, 32000};
48 BEAST_EXPECT((y ==
Number{1'000'000'000'000'002, 32003}));
50 BEAST_EXPECT((m ==
Number{-9'223'372'036'854'776, 3}));
52 BEAST_EXPECT((M ==
Number{9'223'372'036'854'776, 3}));
56 Number q{99'999'999'999'999'999, 32767};
71 {
Number{1'000'000'000'000'000, -15},
72 Number{6'555'555'555'555'555, -29},
73 Number{1'000'000'000'000'066, -15}},
74 {
Number{-1'000'000'000'000'000, -15},
75 Number{-6'555'555'555'555'555, -29},
76 Number{-1'000'000'000'000'066, -15}},
77 {
Number{-1'000'000'000'000'000, -15},
78 Number{6'555'555'555'555'555, -29},
79 Number{-9'999'999'999'999'344, -16}},
80 {
Number{-6'555'555'555'555'555, -29},
81 Number{1'000'000'000'000'000, -15},
82 Number{9'999'999'999'999'344, -16}},
84 {
Number{5'555'555'555'555'555, -32768},
85 Number{-5'555'555'555'555'554, -32768},
87 {
Number{-9'999'999'999'999'999, -31},
88 Number{1'000'000'000'000'000, -15},
89 Number{9'999'999'999'999'990, -16}}};
90 for (
auto const& [x, y, z] : c)
91 BEAST_EXPECT(x + y == z);
95 Number{9'999'999'999'999'999, 32768} +
96 Number{5'000'000'000'000'000, 32767};
102 BEAST_EXPECT(caught);
111 {
Number{1'000'000'000'000'000, -15},
112 Number{6'555'555'555'555'555, -29},
113 Number{9'999'999'999'999'344, -16}},
114 {
Number{6'555'555'555'555'555, -29},
115 Number{1'000'000'000'000'000, -15},
116 Number{-9'999'999'999'999'344, -16}},
117 {
Number{1'000'000'000'000'000, -15},
118 Number{1'000'000'000'000'000, -15},
120 {
Number{1'000'000'000'000'000, -15},
121 Number{1'000'000'000'000'001, -15},
122 Number{-1'000'000'000'000'000, -30}},
123 {
Number{1'000'000'000'000'001, -15},
124 Number{1'000'000'000'000'000, -15},
125 Number{1'000'000'000'000'000, -30}}};
126 for (
auto const& [x, y, z] : c)
127 BEAST_EXPECT(x - y == z);
139 {
Number{1414213562373095, -15},
140 Number{1414213562373095, -15},
141 Number{2000000000000000, -15}},
142 {
Number{-1414213562373095, -15},
143 Number{1414213562373095, -15},
144 Number{-2000000000000000, -15}},
145 {
Number{-1414213562373095, -15},
146 Number{-1414213562373095, -15},
147 Number{2000000000000000, -15}},
148 {
Number{3214285714285706, -15},
149 Number{3111111111111119, -15},
150 Number{1000000000000000, -14}},
151 {
Number{1000000000000000, -32768},
152 Number{1000000000000000, -32768},
154 for (
auto const& [x, y, z] : c)
155 BEAST_EXPECT(x * y == z);
161 {
Number{1414213562373095, -15},
162 Number{1414213562373095, -15},
163 Number{1999999999999999, -15}},
164 {
Number{-1414213562373095, -15},
165 Number{1414213562373095, -15},
166 Number{-1999999999999999, -15}},
167 {
Number{-1414213562373095, -15},
168 Number{-1414213562373095, -15},
169 Number{1999999999999999, -15}},
170 {
Number{3214285714285706, -15},
171 Number{3111111111111119, -15},
172 Number{9999999999999999, -15}},
173 {
Number{1000000000000000, -32768},
174 Number{1000000000000000, -32768},
176 for (
auto const& [x, y, z] : c)
177 BEAST_EXPECT(x * y == z);
183 {
Number{1414213562373095, -15},
184 Number{1414213562373095, -15},
185 Number{1999999999999999, -15}},
186 {
Number{-1414213562373095, -15},
187 Number{1414213562373095, -15},
188 Number{-2000000000000000, -15}},
189 {
Number{-1414213562373095, -15},
190 Number{-1414213562373095, -15},
191 Number{1999999999999999, -15}},
192 {
Number{3214285714285706, -15},
193 Number{3111111111111119, -15},
194 Number{9999999999999999, -15}},
195 {
Number{1000000000000000, -32768},
196 Number{1000000000000000, -32768},
198 for (
auto const& [x, y, z] : c)
199 BEAST_EXPECT(x * y == z);
205 {
Number{1414213562373095, -15},
206 Number{1414213562373095, -15},
207 Number{2000000000000000, -15}},
208 {
Number{-1414213562373095, -15},
209 Number{1414213562373095, -15},
210 Number{-1999999999999999, -15}},
211 {
Number{-1414213562373095, -15},
212 Number{-1414213562373095, -15},
213 Number{2000000000000000, -15}},
214 {
Number{3214285714285706, -15},
215 Number{3111111111111119, -15},
216 Number{1000000000000000, -14}},
217 {
Number{1000000000000000, -32768},
218 Number{1000000000000000, -32768},
220 for (
auto const& [x, y, z] : c)
221 BEAST_EXPECT(x * y == z);
226 Number{9'999'999'999'999'999, 32768} *
227 Number{5'000'000'000'000'000, 32767};
233 BEAST_EXPECT(caught);
248 {
Number{1414213562373095, -10},
249 Number{1414213562373095, -10},
251 {
Number{9'999'999'999'999'999},
252 Number{1'000'000'000'000'000},
253 Number{9'999'999'999'999'999, -15}},
256 for (
auto const& [x, y, z] : c)
257 BEAST_EXPECT(x / y == z);
266 {
Number{1414213562373095, -10},
267 Number{1414213562373095, -10},
269 {
Number{9'999'999'999'999'999},
270 Number{1'000'000'000'000'000},
271 Number{9'999'999'999'999'999, -15}},
274 for (
auto const& [x, y, z] : c)
275 BEAST_EXPECT(x / y == z);
284 {
Number{1414213562373095, -10},
285 Number{1414213562373095, -10},
287 {
Number{9'999'999'999'999'999},
288 Number{1'000'000'000'000'000},
289 Number{9'999'999'999'999'999, -15}},
292 for (
auto const& [x, y, z] : c)
293 BEAST_EXPECT(x / y == z);
302 {
Number{1414213562373095, -10},
303 Number{1414213562373095, -10},
305 {
Number{9'999'999'999'999'999},
306 Number{1'000'000'000'000'000},
307 Number{9'999'999'999'999'999, -15}},
310 for (
auto const& [x, y, z] : c)
311 BEAST_EXPECT(x / y == z);
322 BEAST_EXPECT(caught);
470 {
Number{9'999'999'999'999'999, 0}, 9'999'999'999'999'999},
471 {
Number{9'999'999'999'999'999, 1}, 99'999'999'999'999'990},
472 {
Number{9'999'999'999'999'999, 2}, 999'999'999'999'999'900},
473 {
Number{-9'999'999'999'999'999, 2}, -999'999'999'999'999'900},
488 for (
auto const& [x, y] : c)
491 BEAST_EXPECT(j == y);
508 {
Number{9'999'999'999'999'999, 0}, 9'999'999'999'999'999},
509 {
Number{9'999'999'999'999'999, 1}, 99'999'999'999'999'990},
510 {
Number{9'999'999'999'999'999, 2}, 999'999'999'999'999'900},
511 {
Number{-9'999'999'999'999'999, 2}, -999'999'999'999'999'900},
526 for (
auto const& [x, y] : c)
529 BEAST_EXPECT(j == y);
546 {
Number{9'999'999'999'999'999, 0}, 9'999'999'999'999'999},
547 {
Number{9'999'999'999'999'999, 1}, 99'999'999'999'999'990},
548 {
Number{9'999'999'999'999'999, 2}, 999'999'999'999'999'900},
549 {
Number{-9'999'999'999'999'999, 2}, -999'999'999'999'999'900},
564 for (
auto const& [x, y] : c)
567 BEAST_EXPECT(j == y);
584 {
Number{9'999'999'999'999'999, 0}, 9'999'999'999'999'999},
585 {
Number{9'999'999'999'999'999, 1}, 99'999'999'999'999'990},
586 {
Number{9'999'999'999'999'999, 2}, 999'999'999'999'999'900},
587 {
Number{-9'999'999'999'999'999, 2}, -999'999'999'999'999'900},
602 for (
auto const& [x, y] : c)
605 BEAST_EXPECT(j == y);
617 BEAST_EXPECT(caught);