Test amount ops that involve an integer
From the amount types `Div`, `Mul`, and `Rem` can have an integer on one side. Test them - includes commented out test for one missing combo.
This commit is contained in:
parent
851080d3b1
commit
501c9ab89e
|
@ -1207,7 +1207,10 @@ fn signed_addition() {
|
|||
assert_eq!(ssat(-307) + ssat(461), NumOpResult::from(ssat(154)));
|
||||
assert_eq!(ssat(307) + ssat(-461), NumOpResult::from(ssat(-154)));
|
||||
assert_eq!(ssat(-307) + ssat(-461), NumOpResult::from(ssat(-768)));
|
||||
assert_eq!(SignedAmount::MAX_MONEY + -SignedAmount::MAX_MONEY, NumOpResult::from(SignedAmount::ZERO));
|
||||
assert_eq!(
|
||||
SignedAmount::MAX_MONEY + -SignedAmount::MAX_MONEY,
|
||||
NumOpResult::from(SignedAmount::ZERO)
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -1236,6 +1239,47 @@ fn signed_subtraction() {
|
|||
assert_eq!(ssat(-307) - ssat(-461), NumOpResult::from(ssat(154)));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn op_int_combos() {
|
||||
let sat = Amount::from_sat;
|
||||
let ssat = SignedAmount::from_sat;
|
||||
|
||||
let res = |sat| NumOpResult::from(Amount::from_sat(sat));
|
||||
let sres = |ssat| NumOpResult::from(SignedAmount::from_sat(ssat));
|
||||
|
||||
assert_eq!(sat(23) * 31, res(713));
|
||||
assert_eq!(ssat(23) * 31, sres(713));
|
||||
assert_eq!(res(23) * 31, res(713));
|
||||
assert_eq!(sres(23) * 31, sres(713));
|
||||
|
||||
// assert_eq!(31 * sat(23), res(713));
|
||||
// assert_eq!(31 * ssat(23), sres(713));
|
||||
|
||||
// No remainder.
|
||||
assert_eq!(sat(1897) / 7, res(271));
|
||||
assert_eq!(ssat(1897) / 7, sres(271));
|
||||
assert_eq!(res(1897) / 7, res(271));
|
||||
assert_eq!(sres(1897) / 7, sres(271));
|
||||
|
||||
// Truncation works as expected.
|
||||
assert_eq!(sat(1901) / 7, res(271));
|
||||
assert_eq!(ssat(1901) / 7, sres(271));
|
||||
assert_eq!(res(1901) / 7, res(271));
|
||||
assert_eq!(sres(1901) / 7, sres(271));
|
||||
|
||||
// No remainder.
|
||||
assert_eq!(sat(1897) % 7, res(0));
|
||||
assert_eq!(ssat(1897) % 7, sres(0));
|
||||
assert_eq!(res(1897) % 7, res(0));
|
||||
assert_eq!(sres(1897) % 7, sres(0));
|
||||
|
||||
// Remainder works as expected.
|
||||
assert_eq!(sat(1901) % 7, res(4));
|
||||
assert_eq!(ssat(1901) % 7, sres(4));
|
||||
assert_eq!(res(1901) % 7, res(4));
|
||||
assert_eq!(sres(1901) % 7, sres(4));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn check_const() {
|
||||
assert_eq!(SignedAmount::ONE_BTC.to_sat(), 100_000_000);
|
||||
|
|
Loading…
Reference in New Issue