rippled
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Public Attributes | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
xrpl::test::AMMCalc_test Class Reference

AMM Calculator. More...

Inheritance diagram for xrpl::test::AMMCalc_test:
Inheritance graph
[legend]
Collaboration diagram for xrpl::test::AMMCalc_test:
Collaboration graph
[legend]

Public Member Functions

template<class = void>
void operator() (runner &r)
 Invokes the test using the specified runner.
 
template<class = void>
void pass ()
 Record a successful test condition.
 
template<class F , class String >
bool except (F &&f, String const &reason)
 
template<class F >
bool except (F &&f)
 
template<class E , class F , class String >
bool except (F &&f, String const &reason)
 
template<class E , class F >
bool except (F &&f)
 
template<class F , class String >
bool unexcept (F &&f, String const &reason)
 
template<class F >
bool unexcept (F &&f)
 
std::string const & arg () const
 Return the argument associated with the runner.
 
template<class Condition , class String >
bool unexpected (Condition shouldBeFalse, String const &reason)
 
template<class Condition >
bool unexpected (Condition shouldBeFalse)
 
template<class String >
void fail (String const &reason, char const *file, int line)
 Record a failure.
 
template<class = void>
void fail (std::string const &reason="")
 
template<class Condition >
bool expect (Condition const &shouldBeTrue)
 Evaluate a test condition.
 
template<class Condition , class String >
bool expect (Condition const &shouldBeTrue, String const &reason)
 
template<class Condition >
bool expect (Condition const &shouldBeTrue, char const *file, int line)
 
template<class Condition , class String >
bool expect (Condition const &shouldBeTrue, String const &reason, char const *file, int line)
 

Static Public Member Functions

static suitethis_suite ()
 Returns the "current" running suite.
 

Public Attributes

log_os< char > log
 Logging output stream.
 
testcase_t testcase
 Memberspace for declaring test cases.
 

Private Types

using token_iter = boost::sregex_token_iterator
 
using steps = std::vector< std::pair< Amounts, bool > >
 
using transfer_rates = std::map< std::string, std::uint32_t >
 
using swapargs = std::tuple< steps, STAmount, transfer_rates, std::uint32_t >
 

Private Member Functions

std::optional< STAmountgetAmt (token_iter const &p, bool *delimited=nullptr)
 
std::optional< std::tuple< std::string, std::uint32_t, bool > > getRate (token_iter const &p)
 
std::uint32_t getFee (token_iter const &p)
 
std::optional< std::pair< Amounts, bool > > getAmounts (token_iter &p)
 
std::optional< transfer_ratesgetTransferRate (token_iter &p)
 
std::optional< swapargsgetSwap (token_iter &p)
 
void run () override
 Runs the suite.
 
void propagate_abort ()
 

Static Private Member Functions

static std::string toString (STAmount const &a)
 
static STAmount mulratio (STAmount const &amt, std::uint32_t a, std::uint32_t b, bool round)
 
static void swapOut (swapargs const &args)
 
static void swapIn (swapargs const &args)
 
static suite ** p_this_suite ()
 

Private Attributes

jtx::Account const gw {jtx::Account("gw")}
 
token_iter const end_
 
bool abort_ = false
 
bool aborted_ = false
 
runner * runner_ = nullptr
 

Detailed Description

AMM Calculator.

Uses AMM formulas to simulate the payment engine expected results. Assuming the formulas are correct some unit-tests can be verified. Currently supported operations are:

Definition at line 21 of file AMMCalc_test.cpp.

Member Typedef Documentation

◆ token_iter

using xrpl::test::AMMCalc_test::token_iter = boost::sregex_token_iterator
private

Definition at line 23 of file AMMCalc_test.cpp.

◆ steps

using xrpl::test::AMMCalc_test::steps = std::vector<std::pair<Amounts, bool> >
private

Definition at line 24 of file AMMCalc_test.cpp.

◆ transfer_rates

Definition at line 25 of file AMMCalc_test.cpp.

◆ swapargs

Definition at line 26 of file AMMCalc_test.cpp.

Member Function Documentation

◆ getAmt()

std::optional< STAmount > xrpl::test::AMMCalc_test::getAmt ( token_iter const &  p,
bool *  delimited = nullptr 
)
private

Definition at line 31 of file AMMCalc_test.cpp.

◆ getRate()

std::optional< std::tuple< std::string, std::uint32_t, bool > > xrpl::test::AMMCalc_test::getRate ( token_iter const &  p)
private

Definition at line 60 of file AMMCalc_test.cpp.

◆ getFee()

std::uint32_t xrpl::test::AMMCalc_test::getFee ( token_iter const &  p)
private

Definition at line 81 of file AMMCalc_test.cpp.

◆ getAmounts()

std::optional< std::pair< Amounts, bool > > xrpl::test::AMMCalc_test::getAmounts ( token_iter p)
private

Definition at line 92 of file AMMCalc_test.cpp.

◆ getTransferRate()

std::optional< transfer_rates > xrpl::test::AMMCalc_test::getTransferRate ( token_iter p)
private

Definition at line 108 of file AMMCalc_test.cpp.

◆ getSwap()

std::optional< swapargs > xrpl::test::AMMCalc_test::getSwap ( token_iter p)
private

Definition at line 135 of file AMMCalc_test.cpp.

◆ toString()

static std::string xrpl::test::AMMCalc_test::toString ( STAmount const &  a)
staticprivate

Definition at line 165 of file AMMCalc_test.cpp.

◆ mulratio()

static STAmount xrpl::test::AMMCalc_test::mulratio ( STAmount const &  amt,
std::uint32_t  a,
std::uint32_t  b,
bool  round 
)
staticprivate

Definition at line 173 of file AMMCalc_test.cpp.

◆ swapOut()

static void xrpl::test::AMMCalc_test::swapOut ( swapargs const &  args)
staticprivate

Definition at line 183 of file AMMCalc_test.cpp.

◆ swapIn()

static void xrpl::test::AMMCalc_test::swapIn ( swapargs const &  args)
staticprivate

Definition at line 246 of file AMMCalc_test.cpp.

◆ run()

void xrpl::test::AMMCalc_test::run ( )
overrideprivatevirtual

Runs the suite.

Implements beast::unit_test::suite.

Definition at line 309 of file AMMCalc_test.cpp.

◆ this_suite()

static suite * beast::unit_test::suite::this_suite ( )
staticinherited

Returns the "current" running suite.

If no suite is running, nullptr is returned.

Definition at line 156 of file suite.h.

◆ operator()()

template<class >
void beast::unit_test::suite::operator() ( runner r)
inherited

Invokes the test using the specified runner.

Data members are set up here instead of the constructor as a convenience to writing the derived class to avoid repetition of forwarded constructor arguments to the base. Normally this is called by the framework for you.

Definition at line 389 of file suite.h.

◆ pass()

template<class >
void beast::unit_test::suite::pass ( )
inherited

Record a successful test condition.

Definition at line 497 of file suite.h.

◆ fail() [1/2]

template<class String >
void beast::unit_test::suite::fail ( String const &  reason,
char const *  file,
int  line 
)
inherited

Record a failure.

Parameters
reasonOptional text added to the output on a failure.
fileThe source code file where the test failed.
lineThe source code line number where the test failed.

Definition at line 519 of file suite.h.

◆ fail() [2/2]

template<class >
void beast::unit_test::suite::fail ( std::string const &  reason = "")
inherited

Definition at line 506 of file suite.h.

◆ expect() [1/4]

template<class Condition >
bool beast::unit_test::suite::expect ( Condition const &  shouldBeTrue)
inherited

Evaluate a test condition.

This function provides improved logging by incorporating the file name and line number into the reported output on failure, as well as additional text specified by the caller.

Parameters
shouldBeTrueThe condition to test. The condition is evaluated in a boolean context.
reasonOptional added text to output on a failure.
fileThe source code file where the test failed.
lineThe source code line number where the test failed.
Returns
true if the test condition indicates success.

Definition at line 224 of file suite.h.

◆ expect() [2/4]

template<class Condition , class String >
bool beast::unit_test::suite::expect ( Condition const &  shouldBeTrue,
String const &  reason 
)
inherited

Definition at line 406 of file suite.h.

◆ expect() [3/4]

template<class Condition >
bool beast::unit_test::suite::expect ( Condition const &  shouldBeTrue,
char const *  file,
int  line 
)
inherited

Definition at line 235 of file suite.h.

◆ expect() [4/4]

template<class Condition , class String >
bool beast::unit_test::suite::expect ( Condition const &  shouldBeTrue,
String const &  reason,
char const *  file,
int  line 
)
inherited

Definition at line 419 of file suite.h.

◆ except() [1/4]

template<class F , class String >
bool beast::unit_test::suite::except ( F &&  f,
String const &  reason 
)
inherited

Definition at line 434 of file suite.h.

◆ except() [2/4]

template<class F >
bool beast::unit_test::suite::except ( F &&  f)
inherited

Definition at line 254 of file suite.h.

◆ except() [3/4]

template<class E , class F , class String >
bool beast::unit_test::suite::except ( F &&  f,
String const &  reason 
)
inherited

Definition at line 451 of file suite.h.

◆ except() [4/4]

template<class E , class F >
bool beast::unit_test::suite::except ( F &&  f)
inherited

Definition at line 263 of file suite.h.

◆ unexcept() [1/2]

template<class F , class String >
bool beast::unit_test::suite::unexcept ( F &&  f,
String const &  reason 
)
inherited

Definition at line 468 of file suite.h.

◆ unexcept() [2/2]

template<class F >
bool beast::unit_test::suite::unexcept ( F &&  f)
inherited

Definition at line 272 of file suite.h.

◆ arg()

std::string const & beast::unit_test::suite::arg ( ) const
inherited

Return the argument associated with the runner.

Definition at line 279 of file suite.h.

◆ unexpected() [1/2]

template<class Condition , class String >
bool beast::unit_test::suite::unexpected ( Condition  shouldBeFalse,
String const &  reason 
)
inherited

Definition at line 485 of file suite.h.

◆ unexpected() [2/2]

template<class Condition >
bool beast::unit_test::suite::unexpected ( Condition  shouldBeFalse)
inherited

Definition at line 292 of file suite.h.

◆ p_this_suite()

static suite ** beast::unit_test::suite::p_this_suite ( )
staticprivateinherited

Definition at line 301 of file suite.h.

◆ propagate_abort()

void beast::unit_test::suite::propagate_abort ( )
privateinherited

Definition at line 525 of file suite.h.

Member Data Documentation

◆ gw

jtx::Account const xrpl::test::AMMCalc_test::gw {jtx::Account("gw")}
private

Definition at line 27 of file AMMCalc_test.cpp.

◆ end_

token_iter const xrpl::test::AMMCalc_test::end_
private

Definition at line 28 of file AMMCalc_test.cpp.

◆ abort_

bool beast::unit_test::suite::abort_ = false
privateinherited

Definition at line 53 of file suite.h.

◆ aborted_

bool beast::unit_test::suite::aborted_ = false
privateinherited

Definition at line 54 of file suite.h.

◆ runner_

runner* beast::unit_test::suite::runner_ = nullptr
privateinherited

Definition at line 55 of file suite.h.

◆ log

log_os<char> beast::unit_test::suite::log
inherited

Logging output stream.

Text sent to the log output stream will be forwarded to the output stream associated with the runner.

Definition at line 147 of file suite.h.

◆ testcase

testcase_t beast::unit_test::suite::testcase
inherited

Memberspace for declaring test cases.

Definition at line 150 of file suite.h.