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};
62 BEAST_EXPECT(x.value() == 100);
66 BEAST_EXPECT(y.value() == 400);
82 BEAST_EXPECT(x.value() == 1024);
87 BEAST_EXPECT(y.value() == 4096);
94 auto drops =
mulDiv(x, basefee, referencefee).second;
111 auto y = x.jsonClipped();
118 auto y = x.jsonClipped();
125 auto y = x.jsonClipped();
133 auto y = x.jsonClipped();
140 auto y = x.jsonClipped();
147 auto y = x.jsonClipped();
154 auto y = x.jsonClipped();
162 auto y = x.jsonClipped();
177 auto make = [&](
auto x) ->
FeeLevel64 {
return x; };
178 auto explicitmake = [&](
auto x) ->
FeeLevel64 {
185 BEAST_EXPECT(test.fee() == 0);
187 test = explicitmake(beast::zero);
188 BEAST_EXPECT(test.fee() == 0);
191 BEAST_EXPECT(test.fee() == 0);
193 test = explicitmake(100u);
194 BEAST_EXPECT(test.fee() == 100);
197 FeeLevel32
const targetOther{300u};
198 test = make(targetSame);
199 BEAST_EXPECT(test.fee() == 200);
200 BEAST_EXPECT(test == targetSame);
203 test = make(targetOther);
204 BEAST_EXPECT(test.fee() == 300);
205 BEAST_EXPECT(test == targetOther);
208 BEAST_EXPECT(test.fee() == 200);
210 BEAST_EXPECT(test.fee() == 300);
213 BEAST_EXPECT(test.fee() == 200);
214 test = targetOther.fee();
215 BEAST_EXPECT(test.fee() == 300);
216 BEAST_EXPECT(test == targetOther);
218 test = targetSame * 2;
219 BEAST_EXPECT(test.fee() == 400);
220 test = 3 * targetSame;
221 BEAST_EXPECT(test.fee() == 600);
222 test = targetSame / 10;
223 BEAST_EXPECT(test.fee() == 20);
226 BEAST_EXPECT(test.fee() == 220);
229 BEAST_EXPECT(test.fee() == 20);
232 BEAST_EXPECT(test.fee() == 21);
234 BEAST_EXPECT(test.fee() == 22);
236 BEAST_EXPECT(test.fee() == 21);
238 BEAST_EXPECT(test.fee() == 20);
241 BEAST_EXPECT(test.fee() == 100);
243 BEAST_EXPECT(test.fee() == 50);
245 BEAST_EXPECT(test.fee() == 11);
258 BEAST_EXPECT(test.signum() == 0);
260 BEAST_EXPECT(test.signum() == 1);
272 BEAST_EXPECT(test.fee() == 0);
274 test = explicitmake(beast::zero);
275 BEAST_EXPECT(test.fee() == 0);
278 BEAST_EXPECT(test.fee() == 0);
280 test = explicitmake(100.0);
281 BEAST_EXPECT(test.fee() == 100);
285 test = make(targetSame);
286 BEAST_EXPECT(test.fee() == 200);
287 BEAST_EXPECT(test == targetSame);
290 test = targetOther.fee();
291 BEAST_EXPECT(test.fee() == 300);
292 BEAST_EXPECT(test == targetOther);
295 BEAST_EXPECT(test.fee() == 200);
297 BEAST_EXPECT(test.fee() == 300);
300 BEAST_EXPECT(test.fee() == 200);
302 test = targetSame * 2;
303 BEAST_EXPECT(test.fee() == 400);
304 test = 3 * targetSame;
305 BEAST_EXPECT(test.fee() == 600);
306 test = targetSame / 10;
307 BEAST_EXPECT(test.fee() == 20);
310 BEAST_EXPECT(test.fee() == 220);
313 BEAST_EXPECT(test.fee() == 20);
316 BEAST_EXPECT(test.fee() == 21);
318 BEAST_EXPECT(test.fee() == 22);
320 BEAST_EXPECT(test.fee() == 21);
322 BEAST_EXPECT(test.fee() == 20);
325 BEAST_EXPECT(test.fee() == 100);
327 BEAST_EXPECT(test.fee() == 50);
335 BEAST_EXPECT(test.fee() == -50);
336 BEAST_EXPECT(test.signum() == -1);
337 BEAST_EXPECT(
to_string(test) ==
"-50.000000");
342 BEAST_EXPECT(test.signum() == 0);
344 BEAST_EXPECT(test.signum() == 1);
345 BEAST_EXPECT(
to_string(test) ==
"200.000000");
354 BEAST_EXPECT(INITIAL_XRP == XRPAmount{100'000
'000'000
'000'000});