19 #include <ripple/basics/FeeUnits.h>
20 #include <ripple/beast/unit_test.h>
21 #include <ripple/protocol/SystemParameters.h>
35 BEAST_EXPECT(x.drops() == 100);
39 BEAST_EXPECT(y.value() == 400);
44 BEAST_EXPECT(z.value() == 1600);
60 BEAST_EXPECT(x.value() == 100);
64 BEAST_EXPECT(y.value() == 400);
80 BEAST_EXPECT(x.value() == 1024);
85 BEAST_EXPECT(y.value() == 4096);
92 auto drops =
mulDiv(x, basefee, referencefee).second;
107 auto y = x.jsonClipped();
114 auto y = x.jsonClipped();
121 auto y = x.jsonClipped();
129 auto y = x.jsonClipped();
136 auto y = x.jsonClipped();
143 auto y = x.jsonClipped();
150 auto y = x.jsonClipped();
158 auto y = x.jsonClipped();
171 auto make = [&](
auto x) ->
FeeUnit64 {
return x; };
172 auto explicitmake = [&](
auto x) ->
FeeUnit64 {
179 BEAST_EXPECT(test.fee() == 0);
181 test = explicitmake(beast::zero);
182 BEAST_EXPECT(test.fee() == 0);
185 BEAST_EXPECT(test.fee() == 0);
187 test = explicitmake(100u);
188 BEAST_EXPECT(test.fee() == 100);
192 test = make(targetSame);
193 BEAST_EXPECT(test.fee() == 200);
194 BEAST_EXPECT(test == targetSame);
197 test = make(targetOther);
198 BEAST_EXPECT(test.fee() == 300);
199 BEAST_EXPECT(test == targetOther);
202 BEAST_EXPECT(test.fee() == 200);
204 BEAST_EXPECT(test.fee() == 300);
207 BEAST_EXPECT(test.fee() == 200);
208 test = targetOther.fee();
209 BEAST_EXPECT(test.fee() == 300);
210 BEAST_EXPECT(test == targetOther);
212 test = targetSame * 2;
213 BEAST_EXPECT(test.fee() == 400);
214 test = 3 * targetSame;
215 BEAST_EXPECT(test.fee() == 600);
216 test = targetSame / 10;
217 BEAST_EXPECT(test.fee() == 20);
220 BEAST_EXPECT(test.fee() == 220);
223 BEAST_EXPECT(test.fee() == 20);
226 BEAST_EXPECT(test.fee() == 21);
228 BEAST_EXPECT(test.fee() == 22);
230 BEAST_EXPECT(test.fee() == 21);
232 BEAST_EXPECT(test.fee() == 20);
235 BEAST_EXPECT(test.fee() == 100);
237 BEAST_EXPECT(test.fee() == 50);
239 BEAST_EXPECT(test.fee() == 11);
252 BEAST_EXPECT(test.signum() == 0);
254 BEAST_EXPECT(test.signum() == 1);
266 BEAST_EXPECT(test.fee() == 0);
268 test = explicitmake(beast::zero);
269 BEAST_EXPECT(test.fee() == 0);
272 BEAST_EXPECT(test.fee() == 0);
274 test = explicitmake(100.0);
275 BEAST_EXPECT(test.fee() == 100);
279 test = make(targetSame);
280 BEAST_EXPECT(test.fee() == 200);
281 BEAST_EXPECT(test == targetSame);
284 test = targetOther.fee();
285 BEAST_EXPECT(test.fee() == 300);
286 BEAST_EXPECT(test == targetOther);
289 BEAST_EXPECT(test.fee() == 200);
291 BEAST_EXPECT(test.fee() == 300);
294 BEAST_EXPECT(test.fee() == 200);
296 test = targetSame * 2;
297 BEAST_EXPECT(test.fee() == 400);
298 test = 3 * targetSame;
299 BEAST_EXPECT(test.fee() == 600);
300 test = targetSame / 10;
301 BEAST_EXPECT(test.fee() == 20);
304 BEAST_EXPECT(test.fee() == 220);
307 BEAST_EXPECT(test.fee() == 20);
310 BEAST_EXPECT(test.fee() == 21);
312 BEAST_EXPECT(test.fee() == 22);
314 BEAST_EXPECT(test.fee() == 21);
316 BEAST_EXPECT(test.fee() == 20);
319 BEAST_EXPECT(test.fee() == 100);
321 BEAST_EXPECT(test.fee() == 50);
329 BEAST_EXPECT(test.fee() == -50);
330 BEAST_EXPECT(test.signum() == -1);
331 BEAST_EXPECT(
to_string(test) ==
"-50.000000");
336 BEAST_EXPECT(test.signum() == 0);
338 BEAST_EXPECT(test.signum() == 1);
339 BEAST_EXPECT(
to_string(test) ==
"200.000000");
348 BEAST_EXPECT(INITIAL_XRP == XRPAmount{100'000
'000'000
'000'000});