Skip to content

Commit

Permalink
Fix formatting in CHANGELOG; add more cases to saturating_ tests to i…
Browse files Browse the repository at this point in the history
…ncrease coverage
  • Loading branch information
ueco-jb committed Jul 12, 2022
1 parent a2d9897 commit 5bfe2d1
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 1 deletion.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ and this project adheres to
`Decimal`/`Decimal256`.
- cosmwasm-std: Implement `pow`/`saturating_pow` for `Decimal`/`Decimal256`.
- cosmwasm-std: Implement `ceil`/`floor` for `Decimal`/`Decimal256`.
- cosmwasm-std: Implement `saturating_add`/`sub`/`mul` for `Decimal`/`Decimal256`.
- cosmwasm-std: Implement `saturating_add`/`sub`/`mul` for
`Decimal`/`Decimal256`.

[#1334]: https://github.com/CosmWasm/cosmwasm/pull/1334

Expand Down
16 changes: 16 additions & 0 deletions packages/std/src/math/decimal.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1911,18 +1911,34 @@ mod tests {

#[test]
fn decimal_saturating_works() {
assert_eq!(
Decimal::percent(200).saturating_add(Decimal::percent(200)),
Decimal::percent(400)
);
assert_eq!(
Decimal::MAX.saturating_add(Decimal::percent(200)),
Decimal::MAX
);
assert_eq!(
Decimal::percent(200).saturating_sub(Decimal::percent(100)),
Decimal::percent(100)
);
assert_eq!(
Decimal::zero().saturating_sub(Decimal::percent(200)),
Decimal::zero()
);
assert_eq!(
Decimal::percent(200).saturating_mul(Decimal::percent(50)),
Decimal::percent(100)
);
assert_eq!(
Decimal::MAX.saturating_mul(Decimal::percent(200)),
Decimal::MAX
);
assert_eq!(
Decimal::percent(400).saturating_pow(2u32),
Decimal::percent(1600)
);
assert_eq!(Decimal::MAX.saturating_pow(2u32), Decimal::MAX);
}

Expand Down
16 changes: 16 additions & 0 deletions packages/std/src/math/decimal256.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2061,18 +2061,34 @@ mod tests {

#[test]
fn decimal256_saturating_works() {
assert_eq!(
Decimal256::percent(200).saturating_add(Decimal256::percent(200)),
Decimal256::percent(400)
);
assert_eq!(
Decimal256::MAX.saturating_add(Decimal256::percent(200)),
Decimal256::MAX
);
assert_eq!(
Decimal256::percent(200).saturating_sub(Decimal256::percent(100)),
Decimal256::percent(100)
);
assert_eq!(
Decimal256::zero().saturating_sub(Decimal256::percent(200)),
Decimal256::zero()
);
assert_eq!(
Decimal256::percent(200).saturating_mul(Decimal256::percent(50)),
Decimal256::percent(100)
);
assert_eq!(
Decimal256::MAX.saturating_mul(Decimal256::percent(200)),
Decimal256::MAX
);
assert_eq!(
Decimal256::percent(400).saturating_pow(2u32),
Decimal256::percent(1600)
);
assert_eq!(Decimal256::MAX.saturating_pow(2u32), Decimal256::MAX);
}

Expand Down
4 changes: 4 additions & 0 deletions packages/std/src/math/uint256.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1472,6 +1472,10 @@ mod tests {
Uint256::MAX.saturating_mul(Uint256::from(2u32)),
Uint256::MAX
);
assert_eq!(
Uint256::from(4u32).saturating_pow(2u32),
Uint256::from(16u32)
);
assert_eq!(Uint256::MAX.saturating_pow(2u32), Uint256::MAX);
}

Expand Down
4 changes: 4 additions & 0 deletions packages/std/src/math/uint512.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1107,6 +1107,10 @@ mod tests {
Uint512::MAX.saturating_mul(Uint512::from(2u32)),
Uint512::MAX
);
assert_eq!(
Uint512::from(4u32).saturating_pow(2u32),
Uint512::from(16u32)
);
assert_eq!(Uint512::MAX.saturating_pow(2u32), Uint512::MAX);
}

Expand Down

0 comments on commit 5bfe2d1

Please sign in to comment.