diff options
| author | Alexis Beingessner <a.beingessner@gmail.com> | 2014-08-18 16:59:52 -0400 |
|---|---|---|
| committer | Alexis Beingessner <a.beingessner@gmail.com> | 2014-08-18 17:05:26 -0400 |
| commit | dcccf824b1096cc596671724ebf42b8d3ed35705 (patch) | |
| tree | 662c4941b393ef9c644cd428ab0c5233891c3896 | |
| parent | 40c45169b7b280bbe27380fc5f1c350d25946ec2 (diff) | |
| download | rust-dcccf824b1096cc596671724ebf42b8d3ed35705.tar.gz rust-dcccf824b1096cc596671724ebf42b8d3ed35705.zip | |
Fixing bitvset is_disjoint, fixes #16587
| -rw-r--r-- | src/libcollections/bitv.rs | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/libcollections/bitv.rs b/src/libcollections/bitv.rs index 800f9832226..6f973bb741e 100644 --- a/src/libcollections/bitv.rs +++ b/src/libcollections/bitv.rs @@ -1522,7 +1522,7 @@ impl Set<uint> for BitvSet { #[inline] fn is_disjoint(&self, other: &BitvSet) -> bool { - self.intersection(other).count() > 0 + self.intersection(other).next().is_none() } #[inline] @@ -2265,6 +2265,24 @@ mod tests { } #[test] + fn test_bitv_set_is_disjoint() { + let a = BitvSet::from_bitv(from_bytes([0b10100010])); + let b = BitvSet::from_bitv(from_bytes([0b01000000])); + let c = BitvSet::new(); + let d = BitvSet::from_bitv(from_bytes([0b00110000])); + + assert!(!a.is_disjoint(&d)); + assert!(!d.is_disjoint(&a)); + + assert!(a.is_disjoint(&b)) + assert!(a.is_disjoint(&c)) + assert!(b.is_disjoint(&a)) + assert!(b.is_disjoint(&c)) + assert!(c.is_disjoint(&a)) + assert!(c.is_disjoint(&b)) + } + + #[test] fn test_bitv_set_intersect_with() { // Explicitly 0'ed bits let mut a = BitvSet::from_bitv(from_bytes([0b10100010])); |
