projects
/
rust-101.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
3b6f45e
)
test that subtraction appropriately panics
author
Ralf Jung
<post@ralfj.de>
Mon, 6 Jul 2015 15:17:32 +0000
(17:17 +0200)
committer
Ralf Jung
<post@ralfj.de>
Mon, 6 Jul 2015 15:17:32 +0000
(17:17 +0200)
solutions/src/bigint.rs
patch
|
blob
|
history
diff --git
a/solutions/src/bigint.rs
b/solutions/src/bigint.rs
index 7a61b4b5de9ccfac4a6dc717145055f181a88494..8d67a78efe5267a88930302292714ccad451da89 100644
(file)
--- a/
solutions/src/bigint.rs
+++ b/
solutions/src/bigint.rs
@@
-320,12
+320,24
@@
mod tests {
assert_eq!(&b2 - &b1, BigInt::from_vec(vec![u64::max_value() - (1 << 32) + 1]));
assert_eq!(&b3 - &b2, BigInt::from_vec(vec![0, u64::max_value(), 0]));
assert_eq!(&b2 - &b1, BigInt::from_vec(vec![u64::max_value() - (1 << 32) + 1]));
assert_eq!(&b3 - &b2, BigInt::from_vec(vec![0, u64::max_value(), 0]));
- assert_eq!(&b2 - &b4 - &b4, BigInt::
from_vec(vec![0]
));
+ assert_eq!(&b2 - &b4 - &b4, BigInt::
new(0
));
assert_eq!(&b3 - &b2 - &b4 - &b4, BigInt::from_vec(vec![0, u64::max_value() - 1]));
assert_eq!(&b3 - &b4 - &b2 - &b4, BigInt::from_vec(vec![0, u64::max_value() - 1]));
assert_eq!(&b3 - &b4 - &b4 - &b2, BigInt::from_vec(vec![0, u64::max_value() - 1]));
}
assert_eq!(&b3 - &b2 - &b4 - &b4, BigInt::from_vec(vec![0, u64::max_value() - 1]));
assert_eq!(&b3 - &b4 - &b2 - &b4, BigInt::from_vec(vec![0, u64::max_value() - 1]));
assert_eq!(&b3 - &b4 - &b4 - &b2, BigInt::from_vec(vec![0, u64::max_value() - 1]));
}
+ #[test]
+ #[should_panic(expected = "Wrapping subtraction of BigInt")]
+ fn test_sub_panic1() {
+ let _ = BigInt::new(1) - BigInt::new(5);
+ }
+
+ #[test]
+ #[should_panic(expected = "Wrapping subtraction of BigInt")]
+ fn test_sub_panic2() {
+ let _ = BigInt::from_vec(vec![5,8,3,33,1<<13,46,1<<49, 1, 583,1<<60,2533]) - BigInt::from_vec(vec![5,8,3,33,1<<13,46,1<<49, 5, 583,1<<60,2533]);
+ }
+
#[test]
fn test_inc1() {
let mut b = BigInt::new(0);
#[test]
fn test_inc1() {
let mut b = BigInt::new(0);