1const std = @import("std");
2const string = []const u8;
3const extras = @import("./lib.zig");
4
5pub fn sum(comptime T: type, slice: []const T) T {
6 var res: T = 0;
7 for (slice) |item| res += item;
8 return res;
9}
10
11test {
12 try std.testing.expect(sum(u8, &.{ 4, 3, 0, 9, 6, 7, 1, 2, 5, 8 }) == 45);
13}
14test {
15 try std.testing.expect(sum(u16, &.{ 8, 6, 7, 3, 2, 1, 5, 0, 9, 4 }) == 45);
16}
17test {
18 try std.testing.expect(sum(u21, &.{ 5, 4, 6, 1, 8, 3, 2, 9, 0, 7 }) == 45);
19}
20test {
21 try std.testing.expect(sum(u32, &.{ 3, 4, 5, 1, 9, 0, 6, 2, 7, 8 }) == 45);
22}
23test {
24 try std.testing.expect(sum(u40, &.{ 0, 5, 6, 7, 1, 2, 4, 9, 3, 8 }) == 45);
25}
26test {
27 try std.testing.expect(sum(u64, &.{ 5, 4, 3, 9, 1, 7, 6, 2, 0, 8 }) == 45);
28}