19 #include <ripple/basics/FeeUnits.h>
20 #include <ripple/beast/unit_test.h>
21 #include <ripple/protocol/SystemParameters.h>
37 BEAST_EXPECT(x.drops() == 100);
41 BEAST_EXPECT(y.value() == 400);
46 BEAST_EXPECT(z.value() == 1600);
51 FeeLevel32 baseFee{100};
67 BEAST_EXPECT(x.value() == 100);
71 BEAST_EXPECT(y.value() == 400);
91 BEAST_EXPECT(x.value() == 1024);
96 BEAST_EXPECT(y.value() == 4096);
124 auto y = x.jsonClipped();
131 auto y = x.jsonClipped();
138 auto y = x.jsonClipped();
146 auto y = x.jsonClipped();
153 auto y = x.jsonClipped();
160 auto y = x.jsonClipped();
167 auto y = x.jsonClipped();
175 auto y = x.jsonClipped();
190 auto make = [&](
auto x) ->
FeeLevel64 {
return x; };
191 auto explicitmake = [&](
auto x) ->
FeeLevel64 {
198 BEAST_EXPECT(test.fee() == 0);
200 test = explicitmake(beast::zero);
201 BEAST_EXPECT(test.fee() == 0);
204 BEAST_EXPECT(test.fee() == 0);
206 test = explicitmake(100u);
207 BEAST_EXPECT(test.fee() == 100);
210 FeeLevel32
const targetOther{300u};
211 test = make(targetSame);
212 BEAST_EXPECT(test.fee() == 200);
213 BEAST_EXPECT(test == targetSame);
216 test = make(targetOther);
217 BEAST_EXPECT(test.fee() == 300);
218 BEAST_EXPECT(test == targetOther);
221 BEAST_EXPECT(test.fee() == 200);
223 BEAST_EXPECT(test.fee() == 300);
226 BEAST_EXPECT(test.fee() == 200);
227 test = targetOther.fee();
228 BEAST_EXPECT(test.fee() == 300);
229 BEAST_EXPECT(test == targetOther);
231 test = targetSame * 2;
232 BEAST_EXPECT(test.fee() == 400);
233 test = 3 * targetSame;
234 BEAST_EXPECT(test.fee() == 600);
235 test = targetSame / 10;
236 BEAST_EXPECT(test.fee() == 20);
239 BEAST_EXPECT(test.fee() == 220);
242 BEAST_EXPECT(test.fee() == 20);
245 BEAST_EXPECT(test.fee() == 21);
247 BEAST_EXPECT(test.fee() == 22);
249 BEAST_EXPECT(test.fee() == 21);
251 BEAST_EXPECT(test.fee() == 20);
254 BEAST_EXPECT(test.fee() == 100);
256 BEAST_EXPECT(test.fee() == 50);
258 BEAST_EXPECT(test.fee() == 11);
271 BEAST_EXPECT(test.signum() == 0);
273 BEAST_EXPECT(test.signum() == 1);
285 BEAST_EXPECT(test.fee() == 0);
287 test = explicitmake(beast::zero);
288 BEAST_EXPECT(test.fee() == 0);
291 BEAST_EXPECT(test.fee() == 0);
293 test = explicitmake(100.0);
294 BEAST_EXPECT(test.fee() == 100);
298 test = make(targetSame);
299 BEAST_EXPECT(test.fee() == 200);
300 BEAST_EXPECT(test == targetSame);
303 test = targetOther.fee();
304 BEAST_EXPECT(test.fee() == 300);
305 BEAST_EXPECT(test == targetOther);
308 BEAST_EXPECT(test.fee() == 200);
310 BEAST_EXPECT(test.fee() == 300);
313 BEAST_EXPECT(test.fee() == 200);
315 test = targetSame * 2;
316 BEAST_EXPECT(test.fee() == 400);
317 test = 3 * targetSame;
318 BEAST_EXPECT(test.fee() == 600);
319 test = targetSame / 10;
320 BEAST_EXPECT(test.fee() == 20);
323 BEAST_EXPECT(test.fee() == 220);
326 BEAST_EXPECT(test.fee() == 20);
329 BEAST_EXPECT(test.fee() == 21);
331 BEAST_EXPECT(test.fee() == 22);
333 BEAST_EXPECT(test.fee() == 21);
335 BEAST_EXPECT(test.fee() == 20);
338 BEAST_EXPECT(test.fee() == 100);
340 BEAST_EXPECT(test.fee() == 50);
348 BEAST_EXPECT(test.fee() == -50);
349 BEAST_EXPECT(test.signum() == -1);
350 BEAST_EXPECT(
to_string(test) ==
"-50.000000");
355 BEAST_EXPECT(test.signum() == 0);
357 BEAST_EXPECT(test.signum() == 1);
358 BEAST_EXPECT(
to_string(test) ==
"200.000000");
367 BEAST_EXPECT(INITIAL_XRP == XRPAmount{100'000
'000'000
'000'000});