@@ -1964,14 +1964,27 @@ struct URIToken_test : public beast::unit_test::suite
1964
1964
auto const gw = Account{" gateway" };
1965
1965
auto const USD = gw[" USD" ];
1966
1966
1967
- // Rate between 1.0 & 2.0
1968
- std::array<double , 5 > testCases = {{1 , 1.1 , 1.0005 , 1.25 , 2 }};
1967
+ struct TestRateData
1968
+ {
1969
+ double rate;
1970
+ STAmount delta;
1971
+ std::string multiply;
1972
+ std::string divide;
1973
+ };
1974
+ std::array<TestRateData, 6 > testCases = {{
1975
+ {1 , USD (100 ), " 1100" , " 1100" },
1976
+ {1.1 , USD (100 ), " 1110" , " 1090.909090909091" },
1977
+ {1.0005 , USD (100 ), " 1100.05" , " 1099.950024987506" },
1978
+ {1.005 , USD (100 ), " 1100.4999999" , " 1099.502487661197" },
1979
+ {1.25 , USD (100 ), " 1125" , " 1080" },
1980
+ {2 , USD (100 ), " 1200" , " 1050" },
1981
+ }};
1969
1982
1970
1983
for (auto const & tc : testCases)
1971
1984
{
1972
1985
Env env{*this , features};
1973
1986
env.fund (XRP (10000 ), alice, bob, gw);
1974
- env (rate (gw, tc));
1987
+ env (rate (gw, tc. rate ));
1975
1988
env.close ();
1976
1989
env.trust (USD (100000 ), alice, bob);
1977
1990
env.close ();
@@ -1993,18 +2006,14 @@ struct URIToken_test : public beast::unit_test::suite
1993
2006
env (uritoken::buy (bob, id), uritoken::amt (delta));
1994
2007
env.close ();
1995
2008
auto xferRate = transferRate (*env.current (), gw);
2009
+ auto const postAlice = env.balance (alice, USD.issue ());
1996
2010
if (!env.current ()->rules ().enabled (fixXahauV1))
1997
2011
{
1998
- BEAST_EXPECT (
1999
- env.balance (alice, USD.issue ()) ==
2000
- preAlice +
2001
- multiplyRound (delta, xferRate, USD.issue (), true ));
2012
+ BEAST_EXPECT (to_string (postAlice.value ()) == tc.multiply );
2002
2013
}
2003
2014
else
2004
2015
{
2005
- BEAST_EXPECT (
2006
- env.balance (alice, USD.issue ()) ==
2007
- preAlice + divideRound (delta, xferRate, USD.issue (), true ));
2016
+ BEAST_EXPECT (to_string (postAlice.value ()) == tc.divide );
2008
2017
}
2009
2018
BEAST_EXPECT (env.balance (bob, USD.issue ()) == preBob - delta);
2010
2019
}
0 commit comments