rippled
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
xrpl::test::AMM_test Struct Reference

Basic tests of AMM that do not use offers. More...

Inheritance diagram for xrpl::test::AMM_test:
Inheritance graph
[legend]
Collaboration diagram for xrpl::test::AMM_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

NumberMantissaScaleGuard const sg_ {xrpl::MantissaRange::small}
 
log_os< char > log
 Logging output stream.
 
testcase_t testcase
 Memberspace for declaring test cases.
 

Protected Member Functions

jtx::Env pathTestEnv ()
 
Json::Value find_paths_request (jtx::Env &env, jtx::Account const &src, jtx::Account const &dst, STAmount const &saDstAmount, std::optional< STAmount > const &saSendMax=std::nullopt, std::optional< Currency > const &saSrcCurrency=std::nullopt)
 
std::tuple< STPathSet, STAmount, STAmountfind_paths (jtx::Env &env, jtx::Account const &src, jtx::Account const &dst, STAmount const &saDstAmount, std::optional< STAmount > const &saSendMax=std::nullopt, std::optional< Currency > const &saSrcCurrency=std::nullopt)
 
void testAMM (std::function< void(jtx::AMM &, jtx::Env &)> const &cb, std::optional< std::pair< STAmount, STAmount > > const &pool=std::nullopt, std::uint16_t tfee=0, std::optional< jtx::ter > const &ter=std::nullopt, std::vector< FeatureBitset > const &features={testable_amendments()})
 testAMM() funds 30,000XRP and 30,000IOU for each non-XRP asset to Alice and Carol
 
void testAMM (std::function< void(jtx::AMM &, jtx::Env &)> const &cb, TestAMMArg const &arg)
 

Static Protected Member Functions

static XRPAmount reserve (jtx::Env &env, std::uint32_t count)
 
static XRPAmount ammCrtFee (jtx::Env &env)
 

Protected Attributes

jtx::Account const gw
 
jtx::Account const carol
 
jtx::Account const alice
 
jtx::Account const bob
 
jtx::IOU const USD
 
jtx::IOU const EUR
 
jtx::IOU const GBP
 
jtx::IOU const BTC
 
jtx::IOU const BAD
 

Private Member Functions

void testInstanceCreate ()
 
void testInvalidInstance ()
 
void testInvalidDeposit (FeatureBitset features)
 
void testDeposit ()
 
void testInvalidWithdraw ()
 
void testWithdraw ()
 
void testInvalidFeeVote ()
 
void testFeeVote ()
 
void testInvalidBid ()
 
void testBid (FeatureBitset features)
 
void testInvalidAMMPayment ()
 
void testBasicPaymentEngine (FeatureBitset features)
 
void testAMMTokens ()
 
void testAmendment ()
 
void testFlags ()
 
void testRippling ()
 
void testAMMAndCLOB (FeatureBitset features)
 
void testTradingFee (FeatureBitset features)
 
void testAdjustedTokens (FeatureBitset features)
 
void testAutoDelete ()
 
void testClawback ()
 
void testAMMID ()
 
void testSelection (FeatureBitset features)
 
void testFixDefaultInnerObj ()
 
void testFixChangeSpotPriceQuality (FeatureBitset features)
 
void testMalformed ()
 
void testFixOverflowOffer (FeatureBitset featuresInitial)
 
void testSwapRounding ()
 
void testFixAMMOfferBlockedByLOB (FeatureBitset features)
 
void testLPTokenBalance (FeatureBitset features)
 
void testAMMClawback (FeatureBitset features)
 
void testAMMDepositWithFrozenAssets (FeatureBitset features)
 
void testFixReserveCheckOnWithdrawal (FeatureBitset features)
 
void testFailedPseudoAccount ()
 
void testDepositAndWithdrawRounding (FeatureBitset features)
 
void invariant (jtx::AMM &amm, jtx::Env &env, std::string const &msg, bool shouldFail)
 
void testDepositRounding (FeatureBitset all)
 
void testWithdrawRounding (FeatureBitset all)
 
void run () override
 Runs the suite.
 
void propagate_abort ()
 

Static Private Member Functions

static FeatureBitset testable_amendments ()
 
static suite ** p_this_suite ()
 

Private Attributes

bool abort_ = false
 
bool aborted_ = false
 
runner * runner_ = nullptr
 

Detailed Description

Basic tests of AMM that do not use offers.

Tests incorporating offers are in AMMExtended_test.

Definition at line 31 of file AMM_test.cpp.

Member Function Documentation

◆ testable_amendments()

static FeatureBitset xrpl::test::AMM_test::testable_amendments ( )
staticprivate

Definition at line 38 of file AMM_test.cpp.

◆ testInstanceCreate()

void xrpl::test::AMM_test::testInstanceCreate ( )
private

Definition at line 46 of file AMM_test.cpp.

◆ testInvalidInstance()

void xrpl::test::AMM_test::testInvalidInstance ( )
private

Definition at line 146 of file AMM_test.cpp.

◆ testInvalidDeposit()

void xrpl::test::AMM_test::testInvalidDeposit ( FeatureBitset  features)
private

Definition at line 415 of file AMM_test.cpp.

◆ testDeposit()

void xrpl::test::AMM_test::testDeposit ( )
private

Definition at line 1116 of file AMM_test.cpp.

◆ testInvalidWithdraw()

void xrpl::test::AMM_test::testInvalidWithdraw ( )
private

Definition at line 1398 of file AMM_test.cpp.

◆ testWithdraw()

void xrpl::test::AMM_test::testWithdraw ( )
private

Definition at line 1832 of file AMM_test.cpp.

◆ testInvalidFeeVote()

void xrpl::test::AMM_test::testInvalidFeeVote ( )
private

Definition at line 2174 of file AMM_test.cpp.

◆ testFeeVote()

void xrpl::test::AMM_test::testFeeVote ( )
private

Definition at line 2215 of file AMM_test.cpp.

◆ testInvalidBid()

void xrpl::test::AMM_test::testInvalidBid ( )
private

Definition at line 2332 of file AMM_test.cpp.

◆ testBid()

void xrpl::test::AMM_test::testBid ( FeatureBitset  features)
private

Definition at line 2556 of file AMM_test.cpp.

◆ testInvalidAMMPayment()

void xrpl::test::AMM_test::testInvalidAMMPayment ( )
private

Definition at line 3124 of file AMM_test.cpp.

◆ testBasicPaymentEngine()

void xrpl::test::AMM_test::testBasicPaymentEngine ( FeatureBitset  features)
private

Definition at line 3270 of file AMM_test.cpp.

◆ testAMMTokens()

void xrpl::test::AMM_test::testAMMTokens ( )
private

Definition at line 4177 of file AMM_test.cpp.

◆ testAmendment()

void xrpl::test::AMM_test::testAmendment ( )
private

Definition at line 4279 of file AMM_test.cpp.

◆ testFlags()

void xrpl::test::AMM_test::testFlags ( )
private

Definition at line 4305 of file AMM_test.cpp.

◆ testRippling()

void xrpl::test::AMM_test::testRippling ( )
private

Definition at line 4321 of file AMM_test.cpp.

◆ testAMMAndCLOB()

void xrpl::test::AMM_test::testAMMAndCLOB ( FeatureBitset  features)
private

Definition at line 4371 of file AMM_test.cpp.

◆ testTradingFee()

void xrpl::test::AMM_test::testTradingFee ( FeatureBitset  features)
private

Definition at line 4442 of file AMM_test.cpp.

◆ testAdjustedTokens()

void xrpl::test::AMM_test::testAdjustedTokens ( FeatureBitset  features)
private

Definition at line 4798 of file AMM_test.cpp.

◆ testAutoDelete()

void xrpl::test::AMM_test::testAutoDelete ( )
private

Definition at line 5021 of file AMM_test.cpp.

◆ testClawback()

void xrpl::test::AMM_test::testClawback ( )
private

Definition at line 5121 of file AMM_test.cpp.

◆ testAMMID()

void xrpl::test::AMM_test::testAMMID ( )
private

Definition at line 5133 of file AMM_test.cpp.

◆ testSelection()

void xrpl::test::AMM_test::testSelection ( FeatureBitset  features)
private

Definition at line 5181 of file AMM_test.cpp.

◆ testFixDefaultInnerObj()

void xrpl::test::AMM_test::testFixDefaultInnerObj ( )
private

Definition at line 5590 of file AMM_test.cpp.

◆ testFixChangeSpotPriceQuality()

void xrpl::test::AMM_test::testFixChangeSpotPriceQuality ( FeatureBitset  features)
private

Definition at line 5655 of file AMM_test.cpp.

◆ testMalformed()

void xrpl::test::AMM_test::testMalformed ( )
private

Definition at line 5859 of file AMM_test.cpp.

◆ testFixOverflowOffer()

void xrpl::test::AMM_test::testFixOverflowOffer ( FeatureBitset  featuresInitial)
private

Definition at line 5918 of file AMM_test.cpp.

◆ testSwapRounding()

void xrpl::test::AMM_test::testSwapRounding ( )
private

Definition at line 6233 of file AMM_test.cpp.

◆ testFixAMMOfferBlockedByLOB()

void xrpl::test::AMM_test::testFixAMMOfferBlockedByLOB ( FeatureBitset  features)
private

Definition at line 6268 of file AMM_test.cpp.

◆ testLPTokenBalance()

void xrpl::test::AMM_test::testLPTokenBalance ( FeatureBitset  features)
private

Definition at line 6380 of file AMM_test.cpp.

◆ testAMMClawback()

void xrpl::test::AMM_test::testAMMClawback ( FeatureBitset  features)
private

Definition at line 6486 of file AMM_test.cpp.

◆ testAMMDepositWithFrozenAssets()

void xrpl::test::AMM_test::testAMMDepositWithFrozenAssets ( FeatureBitset  features)
private

Definition at line 6536 of file AMM_test.cpp.

◆ testFixReserveCheckOnWithdrawal()

void xrpl::test::AMM_test::testFixReserveCheckOnWithdrawal ( FeatureBitset  features)
private

Definition at line 6597 of file AMM_test.cpp.

◆ testFailedPseudoAccount()

void xrpl::test::AMM_test::testFailedPseudoAccount ( )
private

Definition at line 6639 of file AMM_test.cpp.

◆ testDepositAndWithdrawRounding()

void xrpl::test::AMM_test::testDepositAndWithdrawRounding ( FeatureBitset  features)
private

Definition at line 6679 of file AMM_test.cpp.

◆ invariant()

void xrpl::test::AMM_test::invariant ( jtx::AMM amm,
jtx::Env env,
std::string const &  msg,
bool  shouldFail 
)
private

Definition at line 6730 of file AMM_test.cpp.

◆ testDepositRounding()

void xrpl::test::AMM_test::testDepositRounding ( FeatureBitset  all)
private

Definition at line 6749 of file AMM_test.cpp.

◆ testWithdrawRounding()

void xrpl::test::AMM_test::testWithdrawRounding ( FeatureBitset  all)
private

Definition at line 6886 of file AMM_test.cpp.

◆ run()

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

Runs the suite.

Implements beast::unit_test::suite.

Definition at line 7003 of file AMM_test.cpp.

◆ reserve()

XRPAmount xrpl::test::jtx::AMMTest::reserve ( jtx::Env env,
std::uint32_t  count 
)
staticprotectedinherited

Definition at line 152 of file AMMTest.cpp.

◆ ammCrtFee()

XRPAmount xrpl::test::jtx::AMMTest::ammCrtFee ( jtx::Env env)
staticprotectedinherited

Definition at line 158 of file AMMTest.cpp.

◆ pathTestEnv()

jtx::Env xrpl::test::jtx::AMMTest::pathTestEnv ( )
protectedinherited

Definition at line 164 of file AMMTest.cpp.

◆ find_paths_request()

Json::Value xrpl::test::jtx::AMMTest::find_paths_request ( jtx::Env env,
jtx::Account const &  src,
jtx::Account const &  dst,
STAmount const &  saDstAmount,
std::optional< STAmount > const &  saSendMax = std::nullopt,
std::optional< Currency > const &  saSrcCurrency = std::nullopt 
)
protectedinherited

Definition at line 178 of file AMMTest.cpp.

◆ find_paths()

std::tuple< STPathSet, STAmount, STAmount > xrpl::test::jtx::AMMTest::find_paths ( jtx::Env env,
jtx::Account const &  src,
jtx::Account const &  dst,
STAmount const &  saDstAmount,
std::optional< STAmount > const &  saSendMax = std::nullopt,
std::optional< Currency > const &  saSrcCurrency = std::nullopt 
)
protectedinherited

Definition at line 237 of file AMMTest.cpp.

◆ testAMM() [1/2]

void xrpl::test::jtx::AMMTestBase::testAMM ( std::function< void(jtx::AMM &, jtx::Env &)> const &  cb,
std::optional< std::pair< STAmount, STAmount > > const &  pool = std::nullopt,
std::uint16_t  tfee = 0,
std::optional< jtx::ter > const &  ter = std::nullopt,
std::vector< FeatureBitset > const &  features = {testable_amendments()} 
)
protectedinherited

testAMM() funds 30,000XRP and 30,000IOU for each non-XRP asset to Alice and Carol

Definition at line 84 of file AMMTest.cpp.

◆ testAMM() [2/2]

void xrpl::test::jtx::AMMTestBase::testAMM ( std::function< void(jtx::AMM &, jtx::Env &)> const &  cb,
TestAMMArg const &  arg 
)
protectedinherited

Definition at line 95 of file AMMTest.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

◆ sg_

NumberMantissaScaleGuard const xrpl::test::AMM_test::sg_ {xrpl::MantissaRange::small}

Definition at line 34 of file AMM_test.cpp.

◆ gw

jtx::Account const xrpl::test::jtx::AMMTestBase::gw
protectedinherited

Definition at line 59 of file AMMTest.h.

◆ carol

jtx::Account const xrpl::test::jtx::AMMTestBase::carol
protectedinherited

Definition at line 60 of file AMMTest.h.

◆ alice

jtx::Account const xrpl::test::jtx::AMMTestBase::alice
protectedinherited

Definition at line 61 of file AMMTest.h.

◆ bob

jtx::Account const xrpl::test::jtx::AMMTestBase::bob
protectedinherited

Definition at line 62 of file AMMTest.h.

◆ USD

jtx::IOU const xrpl::test::jtx::AMMTestBase::USD
protectedinherited

Definition at line 63 of file AMMTest.h.

◆ EUR

jtx::IOU const xrpl::test::jtx::AMMTestBase::EUR
protectedinherited

Definition at line 64 of file AMMTest.h.

◆ GBP

jtx::IOU const xrpl::test::jtx::AMMTestBase::GBP
protectedinherited

Definition at line 65 of file AMMTest.h.

◆ BTC

jtx::IOU const xrpl::test::jtx::AMMTestBase::BTC
protectedinherited

Definition at line 66 of file AMMTest.h.

◆ BAD

jtx::IOU const xrpl::test::jtx::AMMTestBase::BAD
protectedinherited

Definition at line 67 of file AMMTest.h.

◆ 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.