Skip to content

Commit 9819976

Browse files
committed
better merge sort tests
1 parent a7cbdfd commit 9819976

File tree

1 file changed

+31
-5
lines changed

1 file changed

+31
-5
lines changed

zig/src/sorting/merge_sort.zig

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -113,13 +113,39 @@ test {
113113
testing.refAllDecls(@This());
114114
}
115115

116-
test "merge_sort" {
117-
var empty = [_]u32{};
118-
merge_sort(u32, &empty, empty.len);
116+
test "empty" {
117+
var array = [_]u32{};
118+
merge_sort(u32, &array, array.len);
119+
}
120+
121+
test "single " {
122+
var array = [_]u32{42};
123+
merge_sort(u32, &array, array.len);
124+
}
125+
126+
test "worst-case, reversed" {
127+
var array = [_]u32{ 5, 4, 3, 2, 1 };
128+
merge_sort(u32, &array, array.len);
129+
130+
try testing.expectEqual(1, array[0]);
131+
try testing.expectEqual(2, array[1]);
132+
try testing.expectEqual(3, array[2]);
133+
try testing.expectEqual(4, array[3]);
134+
try testing.expectEqual(5, array[4]);
135+
}
119136

120-
var single = [_]u32{42};
121-
merge_sort(u32, &single, single.len);
137+
test "best-case, sorted" {
138+
var array = [_]u32{ 5, 4, 3, 2, 1 };
139+
merge_sort(u32, &array, array.len);
140+
141+
try testing.expectEqual(1, array[0]);
142+
try testing.expectEqual(2, array[1]);
143+
try testing.expectEqual(3, array[2]);
144+
try testing.expectEqual(4, array[3]);
145+
try testing.expectEqual(5, array[4]);
146+
}
122147

148+
test "random" {
123149
var array = [_]u32{ 1, 5, 4, 2, 3 };
124150
merge_sort(u32, &array, array.len);
125151

0 commit comments

Comments
 (0)