Skip to content

Commit d55225f

Browse files
committed
treemap: add more tests for set difference
1 parent ad16fec commit d55225f

File tree

1 file changed

+21
-16
lines changed

1 file changed

+21
-16
lines changed

src/libstd/treemap.rs

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1141,25 +1141,30 @@ mod test_set {
11411141

11421142
#[test]
11431143
fn test_difference() {
1144-
let mut a = TreeSet::new();
1145-
let mut b = TreeSet::new();
1146-
1147-
fail_unless!(a.insert(1));
1148-
fail_unless!(a.insert(3));
1149-
fail_unless!(a.insert(5));
1150-
fail_unless!(a.insert(9));
1151-
fail_unless!(a.insert(11));
1144+
fn check_difference(a: &[int], b: &[int], expected: &[int]) {
1145+
let mut set_a = TreeSet::new();
1146+
let mut set_b = TreeSet::new();
11521147

1153-
fail_unless!(b.insert(3));
1154-
fail_unless!(b.insert(9));
1148+
for a.each |x| { fail_unless!(set_a.insert(*x)) }
1149+
for b.each |y| { fail_unless!(set_b.insert(*y)) }
11551150

1156-
let mut i = 0;
1157-
let expected = [1, 5, 11];
1158-
for a.difference(&b) |x| {
1159-
fail_unless!(*x == expected[i]);
1160-
i += 1
1151+
let mut i = 0;
1152+
for set_a.difference(&set_b) |x| {
1153+
fail_unless!(*x == expected[i]);
1154+
i += 1;
1155+
}
1156+
fail_unless!(i == expected.len());
11611157
}
1162-
fail_unless!(i == expected.len());
1158+
1159+
check_difference([], [], []);
1160+
check_difference([1, 12], [], [1, 12]);
1161+
check_difference([], [1, 2, 3, 9], []);
1162+
check_difference([1, 3, 5, 9, 11],
1163+
[3, 9],
1164+
[1, 5, 11]);
1165+
check_difference([-5, 11, 22, 33, 40, 42],
1166+
[-12, -5, 14, 23, 34, 38, 39, 50],
1167+
[11, 22, 33, 40, 42]);
11631168
}
11641169

11651170
#[test]

0 commit comments

Comments
 (0)