From 12db4de554faf8e2f6baca4514b1e5983cb60783 Mon Sep 17 00:00:00 2001 From: Joseph Crail Date: Fri, 7 Nov 2014 18:46:29 -0500 Subject: [PATCH] Add tests for BitAnd and BitXor. --- src/libcollections/enum_set.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/libcollections/enum_set.rs b/src/libcollections/enum_set.rs index 0737620690b6f..b2b26914b441a 100644 --- a/src/libcollections/enum_set.rs +++ b/src/libcollections/enum_set.rs @@ -403,9 +403,29 @@ mod test { let elems = e_intersection.iter().collect(); assert_eq!(vec![C], elems) + // Another way to express intersection + let e_intersection = e1 - (e1 - e2); + let elems = e_intersection.iter().collect(); + assert_eq!(vec![C], elems) + let e_subtract = e1 - e2; let elems = e_subtract.iter().collect(); assert_eq!(vec![A], elems) + + // Bitwise XOR of two sets, aka symmetric difference + let e_symmetric_diff = e1 ^ e2; + let elems = e_symmetric_diff.iter().collect(); + assert_eq!(vec![A,B], elems) + + // Another way to express symmetric difference + let e_symmetric_diff = (e1 - e2) | (e2 - e1); + let elems = e_symmetric_diff.iter().collect(); + assert_eq!(vec![A,B], elems) + + // Yet another way to express symmetric difference + let e_symmetric_diff = (e1 | e2) - (e1 & e2); + let elems = e_symmetric_diff.iter().collect(); + assert_eq!(vec![A,B], elems) } #[test]