xrpld
Loading...
Searching...
No Matches
xrpl::test::AMM_test Struct Reference

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

Inheritance diagram for xrpl::test::AMM_test:
Collaboration diagram for xrpl::test::AMM_test:

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)
 DEPRECATED.
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 SuitethisSuite ()
 Returns the "current" running suite.

Public Attributes

NumberMantissaScaleGuard const sg {xrpl::MantissaRange::MantissaScale::Small}
LogOs< char > log
 Logging output stream.
TestcaseT testcase
 Memberspace for declaring test cases.

Protected Member Functions

jtx::Env pathTestEnv ()
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={testableAmendments()})
 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)
Runner & runner () const
 Lets a suite compose other suites (e.g.

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 testOverflowOffer (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 testStaleAuthAccountsAfterReinit (FeatureBitset features)
void testDepositIntegralOverflow ()
void testDepositEPriceIntegralOverflow ()
void testWithdrawIntegralNoOverflow ()
void run () override
 Runs the suite.
void propagateAbort () const

Static Private Member Functions

static FeatureBitset testableAmendments ()
static std::vector< FeatureBitsetamendmentCombinations (std::initializer_list< uint256 > features)
static Suite ** pThisSuite ()

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 76 of file AMM_test.cpp.

Member Function Documentation

◆ testableAmendments()

FeatureBitset xrpl::test::AMM_test::testableAmendments ( )
staticprivate

Definition at line 83 of file AMM_test.cpp.

◆ amendmentCombinations()

std::vector< FeatureBitset > xrpl::test::AMM_test::amendmentCombinations ( std::initializer_list< uint256 > features)
staticprivate

Definition at line 92 of file AMM_test.cpp.

◆ testInstanceCreate()

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

Definition at line 98 of file AMM_test.cpp.

◆ testInvalidInstance()

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

Definition at line 198 of file AMM_test.cpp.

◆ testInvalidDeposit()

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

Definition at line 472 of file AMM_test.cpp.

◆ testDeposit()

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

Definition at line 1194 of file AMM_test.cpp.

◆ testInvalidWithdraw()

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

Definition at line 1476 of file AMM_test.cpp.

◆ testWithdraw()

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

Definition at line 1945 of file AMM_test.cpp.

◆ testInvalidFeeVote()

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

Definition at line 2313 of file AMM_test.cpp.

◆ testFeeVote()

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

Definition at line 2359 of file AMM_test.cpp.

◆ testInvalidBid()

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

Definition at line 2476 of file AMM_test.cpp.

◆ testBid()

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

Definition at line 2700 of file AMM_test.cpp.

◆ testInvalidAMMPayment()

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

Definition at line 3263 of file AMM_test.cpp.

◆ testBasicPaymentEngine()

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

Definition at line 3409 of file AMM_test.cpp.

◆ testAMMTokens()

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

Definition at line 4322 of file AMM_test.cpp.

◆ testAmendment()

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

Definition at line 4426 of file AMM_test.cpp.

◆ testFlags()

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

Definition at line 4447 of file AMM_test.cpp.

◆ testRippling()

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

Definition at line 4463 of file AMM_test.cpp.

◆ testAMMAndCLOB()

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

Definition at line 4513 of file AMM_test.cpp.

◆ testTradingFee()

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

Definition at line 4584 of file AMM_test.cpp.

◆ testAdjustedTokens()

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

Definition at line 4941 of file AMM_test.cpp.

◆ testAutoDelete()

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

Definition at line 5164 of file AMM_test.cpp.

◆ testClawback()

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

Definition at line 5264 of file AMM_test.cpp.

◆ testAMMID()

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

Definition at line 5276 of file AMM_test.cpp.

◆ testSelection()

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

Definition at line 5325 of file AMM_test.cpp.

◆ testFixDefaultInnerObj()

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

Definition at line 5737 of file AMM_test.cpp.

◆ testFixChangeSpotPriceQuality()

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

Definition at line 5780 of file AMM_test.cpp.

◆ testMalformed()

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

Definition at line 5984 of file AMM_test.cpp.

◆ testOverflowOffer()

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

Definition at line 6044 of file AMM_test.cpp.

◆ testSwapRounding()

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

Definition at line 6354 of file AMM_test.cpp.

◆ testFixAMMOfferBlockedByLOB()

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

Definition at line 6389 of file AMM_test.cpp.

◆ testLPTokenBalance()

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

Definition at line 6534 of file AMM_test.cpp.

◆ testAMMClawback()

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

Definition at line 6640 of file AMM_test.cpp.

◆ testAMMDepositWithFrozenAssets()

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

Definition at line 6690 of file AMM_test.cpp.

◆ testFixReserveCheckOnWithdrawal()

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

Definition at line 6751 of file AMM_test.cpp.

◆ testFailedPseudoAccount()

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

Definition at line 6793 of file AMM_test.cpp.

◆ testDepositAndWithdrawRounding()

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

Definition at line 6833 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 6884 of file AMM_test.cpp.

◆ testDepositRounding()

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

Definition at line 6904 of file AMM_test.cpp.

◆ testWithdrawRounding()

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

Definition at line 7053 of file AMM_test.cpp.

◆ testStaleAuthAccountsAfterReinit()

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

Definition at line 7170 of file AMM_test.cpp.

◆ testDepositIntegralOverflow()

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

Definition at line 7259 of file AMM_test.cpp.

◆ testDepositEPriceIntegralOverflow()

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

Definition at line 7315 of file AMM_test.cpp.

◆ testWithdrawIntegralNoOverflow()

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

Definition at line 7376 of file AMM_test.cpp.

◆ run()

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

Runs the suite.

Implements beast::unit_test::Suite.

Definition at line 7425 of file AMM_test.cpp.

◆ reserve()

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

Definition at line 198 of file AMMTest.cpp.

◆ ammCrtFee()

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

Definition at line 204 of file AMMTest.cpp.

◆ pathTestEnv()

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

Definition at line 210 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 = {testableAmendments()} )
protectedinherited

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

Definition at line 120 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 131 of file AMMTest.cpp.

◆ thisSuite()

Suite * beast::unit_test::Suite::thisSuite ( )
staticinherited

Returns the "current" running suite.

If no suite is running, nullptr is returned.

Definition at line 162 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 420 of file suite.h.

◆ pass()

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

Record a successful test condition.

Definition at line 532 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 554 of file suite.h.

◆ fail() [2/2]

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

Definition at line 541 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 235 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 437 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 246 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 450 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 465 of file suite.h.

◆ except() [2/4]

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

Definition at line 265 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 482 of file suite.h.

◆ except() [4/4]

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

Definition at line 274 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 499 of file suite.h.

◆ unexcept() [2/2]

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

Definition at line 283 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 292 of file suite.h.

◆ runner()

Runner & beast::unit_test::Suite::runner ( ) const
protectedinherited

Lets a suite compose other suites (e.g.

an aggregator that reruns a group of related suites under its own name) via SuiteInfo::run.

Returns
The runner this suite is executing under.

Definition at line 305 of file suite.h.

◆ unexpected() [1/2]

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

DEPRECATED.

Returns
true if the test condition indicates success(a false value)

Definition at line 516 of file suite.h.

◆ unexpected() [2/2]

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

Definition at line 321 of file suite.h.

◆ pThisSuite()

Suite ** beast::unit_test::Suite::pThisSuite ( )
staticprivateinherited

Definition at line 330 of file suite.h.

◆ propagateAbort()

void beast::unit_test::Suite::propagateAbort ( ) const
privateinherited

Definition at line 560 of file suite.h.

Member Data Documentation

◆ sg

Definition at line 79 of file AMM_test.cpp.

◆ gw_

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

Definition at line 84 of file AMMTest.h.

◆ carol_

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

Definition at line 85 of file AMMTest.h.

◆ alice_

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

Definition at line 86 of file AMMTest.h.

◆ bob_

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

Definition at line 87 of file AMMTest.h.

◆ USD

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

Definition at line 88 of file AMMTest.h.

◆ EUR

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

Definition at line 89 of file AMMTest.h.

◆ GBP

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

Definition at line 90 of file AMMTest.h.

◆ BTC

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

Definition at line 91 of file AMMTest.h.

◆ BAD

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

Definition at line 92 of file AMMTest.h.

◆ abort_

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

Definition at line 54 of file suite.h.

◆ aborted_

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

Definition at line 55 of file suite.h.

◆ runner_

Runner* beast::unit_test::Suite::runner_ = nullptr
privateinherited

Definition at line 56 of file suite.h.

◆ log

LogOs<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 150 of file suite.h.

◆ testcase

TestcaseT beast::unit_test::Suite::testcase
inherited

Memberspace for declaring test cases.

Definition at line 155 of file suite.h.