55 Number x{10'000'000'000'000'000, 32768};
62 Number x{10'000'000'000'000'000, 32767};
63 BEAST_EXPECT((x ==
Number{1'000'000'000'000'000, 32768}));
64 Number z{1'000'000'000'000'000, -32769};
65 BEAST_EXPECT(z ==
Number{});
66 Number y{1'000'000'000'000'001'500, 32000};
67 BEAST_EXPECT((y ==
Number{1'000'000'000'000'002, 32003}));
69 BEAST_EXPECT((m ==
Number{-9'223'372'036'854'776, 3}));
71 BEAST_EXPECT((M ==
Number{9'223'372'036'854'776, 3}));
75 Number q{99'999'999'999'999'999, 32767};
90 {
Number{1'000'000'000'000'000, -15},
91 Number{6'555'555'555'555'555, -29},
92 Number{1'000'000'000'000'066, -15}},
93 {
Number{-1'000'000'000'000'000, -15},
94 Number{-6'555'555'555'555'555, -29},
95 Number{-1'000'000'000'000'066, -15}},
96 {
Number{-1'000'000'000'000'000, -15},
97 Number{6'555'555'555'555'555, -29},
98 Number{-9'999'999'999'999'344, -16}},
99 {
Number{-6'555'555'555'555'555, -29},
100 Number{1'000'000'000'000'000, -15},
101 Number{9'999'999'999'999'344, -16}},
103 {
Number{5'555'555'555'555'555, -32768},
104 Number{-5'555'555'555'555'554, -32768},
106 {
Number{-9'999'999'999'999'999, -31},
107 Number{1'000'000'000'000'000, -15},
108 Number{9'999'999'999'999'990, -16}}};
109 for (
auto const& [x, y, z] : c)
110 BEAST_EXPECT(x + y == z);
114 Number{9'999'999'999'999'999, 32768} +
115 Number{5'000'000'000'000'000, 32767};
121 BEAST_EXPECT(caught);
130 {
Number{1'000'000'000'000'000, -15},
131 Number{6'555'555'555'555'555, -29},
132 Number{9'999'999'999'999'344, -16}},
133 {
Number{6'555'555'555'555'555, -29},
134 Number{1'000'000'000'000'000, -15},
135 Number{-9'999'999'999'999'344, -16}},
136 {
Number{1'000'000'000'000'000, -15},
137 Number{1'000'000'000'000'000, -15},
139 {
Number{1'000'000'000'000'000, -15},
140 Number{1'000'000'000'000'001, -15},
141 Number{-1'000'000'000'000'000, -30}},
142 {
Number{1'000'000'000'000'001, -15},
143 Number{1'000'000'000'000'000, -15},
144 Number{1'000'000'000'000'000, -30}}};
145 for (
auto const& [x, y, z] : c)
146 BEAST_EXPECT(x - y == z);
158 {
Number{1414213562373095, -15},
159 Number{1414213562373095, -15},
160 Number{2000000000000000, -15}},
161 {
Number{-1414213562373095, -15},
162 Number{1414213562373095, -15},
163 Number{-2000000000000000, -15}},
164 {
Number{-1414213562373095, -15},
165 Number{-1414213562373095, -15},
166 Number{2000000000000000, -15}},
167 {
Number{3214285714285706, -15},
168 Number{3111111111111119, -15},
169 Number{1000000000000000, -14}},
170 {
Number{1000000000000000, -32768},
171 Number{1000000000000000, -32768},
173 for (
auto const& [x, y, z] : c)
174 BEAST_EXPECT(x * y == z);
180 {
Number{1414213562373095, -15},
181 Number{1414213562373095, -15},
182 Number{1999999999999999, -15}},
183 {
Number{-1414213562373095, -15},
184 Number{1414213562373095, -15},
185 Number{-1999999999999999, -15}},
186 {
Number{-1414213562373095, -15},
187 Number{-1414213562373095, -15},
188 Number{1999999999999999, -15}},
189 {
Number{3214285714285706, -15},
190 Number{3111111111111119, -15},
191 Number{9999999999999999, -15}},
192 {
Number{1000000000000000, -32768},
193 Number{1000000000000000, -32768},
195 for (
auto const& [x, y, z] : c)
196 BEAST_EXPECT(x * y == z);
202 {
Number{1414213562373095, -15},
203 Number{1414213562373095, -15},
204 Number{1999999999999999, -15}},
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{3214285714285706, -15},
212 Number{3111111111111119, -15},
213 Number{9999999999999999, -15}},
214 {
Number{1000000000000000, -32768},
215 Number{1000000000000000, -32768},
217 for (
auto const& [x, y, z] : c)
218 BEAST_EXPECT(x * y == z);
224 {
Number{1414213562373095, -15},
225 Number{1414213562373095, -15},
226 Number{2000000000000000, -15}},
227 {
Number{-1414213562373095, -15},
228 Number{1414213562373095, -15},
229 Number{-1999999999999999, -15}},
230 {
Number{-1414213562373095, -15},
231 Number{-1414213562373095, -15},
232 Number{2000000000000000, -15}},
233 {
Number{3214285714285706, -15},
234 Number{3111111111111119, -15},
235 Number{1000000000000000, -14}},
236 {
Number{1000000000000000, -32768},
237 Number{1000000000000000, -32768},
239 for (
auto const& [x, y, z] : c)
240 BEAST_EXPECT(x * y == z);
245 Number{9'999'999'999'999'999, 32768} *
246 Number{5'000'000'000'000'000, 32767};
252 BEAST_EXPECT(caught);
267 {
Number{1414213562373095, -10},
268 Number{1414213562373095, -10},
270 {
Number{9'999'999'999'999'999},
271 Number{1'000'000'000'000'000},
272 Number{9'999'999'999'999'999, -15}},
275 for (
auto const& [x, y, z] : c)
276 BEAST_EXPECT(x / y == z);
285 {
Number{1414213562373095, -10},
286 Number{1414213562373095, -10},
288 {
Number{9'999'999'999'999'999},
289 Number{1'000'000'000'000'000},
290 Number{9'999'999'999'999'999, -15}},
293 for (
auto const& [x, y, z] : c)
294 BEAST_EXPECT(x / y == z);
303 {
Number{1414213562373095, -10},
304 Number{1414213562373095, -10},
306 {
Number{9'999'999'999'999'999},
307 Number{1'000'000'000'000'000},
308 Number{9'999'999'999'999'999, -15}},
311 for (
auto const& [x, y, z] : c)
312 BEAST_EXPECT(x / y == z);
321 {
Number{1414213562373095, -10},
322 Number{1414213562373095, -10},
324 {
Number{9'999'999'999'999'999},
325 Number{1'000'000'000'000'000},
326 Number{9'999'999'999'999'999, -15}},
329 for (
auto const& [x, y, z] : c)
330 BEAST_EXPECT(x / y == z);
341 BEAST_EXPECT(caught);
489 {
Number{9'999'999'999'999'999, 0}, 9'999'999'999'999'999},
490 {
Number{9'999'999'999'999'999, 1}, 99'999'999'999'999'990},
491 {
Number{9'999'999'999'999'999, 2}, 999'999'999'999'999'900},
492 {
Number{-9'999'999'999'999'999, 2}, -999'999'999'999'999'900},
507 for (
auto const& [x, y] : c)
510 BEAST_EXPECT(j == y);
527 {
Number{9'999'999'999'999'999, 0}, 9'999'999'999'999'999},
528 {
Number{9'999'999'999'999'999, 1}, 99'999'999'999'999'990},
529 {
Number{9'999'999'999'999'999, 2}, 999'999'999'999'999'900},
530 {
Number{-9'999'999'999'999'999, 2}, -999'999'999'999'999'900},
545 for (
auto const& [x, y] : c)
548 BEAST_EXPECT(j == y);
565 {
Number{9'999'999'999'999'999, 0}, 9'999'999'999'999'999},
566 {
Number{9'999'999'999'999'999, 1}, 99'999'999'999'999'990},
567 {
Number{9'999'999'999'999'999, 2}, 999'999'999'999'999'900},
568 {
Number{-9'999'999'999'999'999, 2}, -999'999'999'999'999'900},
583 for (
auto const& [x, y] : c)
586 BEAST_EXPECT(j == y);
603 {
Number{9'999'999'999'999'999, 0}, 9'999'999'999'999'999},
604 {
Number{9'999'999'999'999'999, 1}, 99'999'999'999'999'990},
605 {
Number{9'999'999'999'999'999, 2}, 999'999'999'999'999'900},
606 {
Number{-9'999'999'999'999'999, 2}, -999'999'999'999'999'900},
621 for (
auto const& [x, y] : c)
624 BEAST_EXPECT(j == y);
636 BEAST_EXPECT(caught);