19 #include <ripple/basics/FeeUnits.h>
20 #include <ripple/beast/unit_test.h>
21 #include <ripple/protocol/SystemParameters.h>
28 :
public beast::unit_test::suite
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);
82 feeunit::feelevelTag>));
85 BEAST_EXPECT(y.value() == 4096);
87 feeunit::feelevelTag>));
92 auto drops =
mulDiv(x, basefee, referencefee).second;
106 auto y = x.jsonClipped();
113 auto y = x.jsonClipped();
120 auto y = x.jsonClipped();
128 auto y = x.jsonClipped();
135 auto y = x.jsonClipped();
142 auto y = x.jsonClipped();
149 auto y = x.jsonClipped();
157 auto y = x.jsonClipped();
171 auto explicitmake = [&](
auto x) ->
FeeUnit64 {
178 BEAST_EXPECT(test.fee() == 0);
180 test = explicitmake(beast::zero);
181 BEAST_EXPECT(test.fee() == 0);
184 BEAST_EXPECT(test.fee() == 0);
186 test = explicitmake(100u);
187 BEAST_EXPECT(test.fee() == 100);
191 test = make(targetSame);
192 BEAST_EXPECT(test.fee() == 200);
193 BEAST_EXPECT(test == targetSame);
196 test = make(targetOther);
197 BEAST_EXPECT(test.fee() == 300);
198 BEAST_EXPECT(test == targetOther);
201 BEAST_EXPECT(test.fee() == 200);
203 BEAST_EXPECT(test.fee() == 300);
206 BEAST_EXPECT(test.fee() == 200);
207 test = targetOther.fee();
208 BEAST_EXPECT(test.fee() == 300);
209 BEAST_EXPECT(test == targetOther);
211 test = targetSame * 2;
212 BEAST_EXPECT(test.fee() == 400);
213 test = 3 * targetSame;
214 BEAST_EXPECT(test.fee() == 600);
215 test = targetSame / 10;
216 BEAST_EXPECT(test.fee() == 20);
219 BEAST_EXPECT(test.fee() == 220);
222 BEAST_EXPECT(test.fee() == 20);
225 BEAST_EXPECT(test.fee() == 21);
227 BEAST_EXPECT(test.fee() == 22);
229 BEAST_EXPECT(test.fee() == 21);
231 BEAST_EXPECT(test.fee() == 20);
234 BEAST_EXPECT(test.fee() == 100);
236 BEAST_EXPECT(test.fee() == 50);
238 BEAST_EXPECT(test.fee() == 11);
251 BEAST_EXPECT(test.signum() == 0);
253 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");
347 BEAST_EXPECT(INITIAL_XRP == XRPAmount{100'000
'000'000
'000'000});