@@ -3,97 +3,115 @@ const testing = std.testing;
33
44const slices = @import ("series.zig" ).slices ;
55
6- fn free (arr : [][]u8 ) void {
7- for (arr ) | s | {
8- testing .allocator .free (s );
9- }
10- testing .allocator .free (arr );
11- }
12-
136test "slices of one from one" {
147 const series = "1" ;
15- const expected = [_ ][]const u8 {"1" };
8+ const expected = [_ ][1 ]u8 {
9+ "1" [0.. 1].* , //
10+ };
1611 const actual = try slices (1 , testing .allocator , series );
17- defer free (actual );
12+ defer testing . allocator . free (actual );
1813 try testing .expectEqual (expected .len , actual .len );
1914 for (expected , 0.. ) | expected_slice , i | {
20- try testing .expectEqualStrings (expected_slice , actual [i ]);
15+ try testing .expectEqualStrings (& expected_slice , & actual [i ]);
2116 }
2217}
2318
2419test "slices of one from two" {
2520 const series = "12" ;
26- const expected = [_ ][]const u8 { "1" , "2" };
21+ const expected = [_ ][1 ]u8 {
22+ "1" [0.. 1].* , //
23+ "2" [0.. 1].* , //
24+ };
2725 const actual = try slices (1 , testing .allocator , series );
28- defer free (actual );
26+ defer testing . allocator . free (actual );
2927 try testing .expectEqual (expected .len , actual .len );
3028 for (expected , 0.. ) | expected_slice , i | {
31- try testing .expectEqualStrings (expected_slice , actual [i ]);
29+ try testing .expectEqualStrings (& expected_slice , & actual [i ]);
3230 }
3331}
3432
3533test "slices of two" {
3634 const series = "35" ;
37- const expected = [_ ][]const u8 {"35" };
35+ const expected = [_ ][2 ]u8 {
36+ "35" [0.. 2].* , //
37+ };
3838 const actual = try slices (2 , testing .allocator , series );
39- defer free (actual );
39+ defer testing . allocator . free (actual );
4040 try testing .expectEqual (expected .len , actual .len );
4141 for (expected , 0.. ) | expected_slice , i | {
42- try testing .expectEqualStrings (expected_slice , actual [i ]);
42+ try testing .expectEqualStrings (& expected_slice , & actual [i ]);
4343 }
4444}
4545
4646test "slices of two overlap" {
4747 const series = "9142" ;
48- const expected = [_ ][]const u8 { "91" , "14" , "42" };
48+ const expected = [_ ][2 ]u8 {
49+ "91" [0.. 2].* , //
50+ "14" [0.. 2].* , //
51+ "42" [0.. 2].* , //
52+ };
4953 const actual = try slices (2 , testing .allocator , series );
50- defer free (actual );
54+ defer testing . allocator . free (actual );
5155 try testing .expectEqual (expected .len , actual .len );
5256 for (expected , 0.. ) | expected_slice , i | {
53- try testing .expectEqualStrings (expected_slice , actual [i ]);
57+ try testing .expectEqualStrings (& expected_slice , & actual [i ]);
5458 }
5559}
5660
5761test "slices can include duplicates" {
5862 const series = "777777" ;
59- const expected = [_ ][]const u8 { "777" , "777" , "777" , "777" };
63+ const expected = [_ ][3 ]u8 {
64+ "777" [0.. 3].* , //
65+ "777" [0.. 3].* , //
66+ "777" [0.. 3].* , //
67+ "777" [0.. 3].* , //
68+ };
6069 const actual = try slices (3 , testing .allocator , series );
61- defer free (actual );
70+ defer testing . allocator . free (actual );
6271 try testing .expectEqual (expected .len , actual .len );
6372 for (expected , 0.. ) | expected_slice , i | {
64- try testing .expectEqualStrings (expected_slice , actual [i ]);
73+ try testing .expectEqualStrings (& expected_slice , & actual [i ]);
6574 }
6675}
6776
6877test "slices of a long series" {
6978 const series = "918493904243" ;
70- const expected = [_ ][]const u8 { "91849" , "18493" , "84939" , "49390" , "93904" , "39042" , "90424" , "04243" };
79+ const expected = [_ ][5 ]u8 {
80+ "91849" [0.. 5].* , //
81+ "18493" [0.. 5].* , //
82+ "84939" [0.. 5].* , //
83+ "49390" [0.. 5].* , //
84+ "93904" [0.. 5].* , //
85+ "39042" [0.. 5].* , //
86+ "90424" [0.. 5].* , //
87+ "04243" [0.. 5].* , //
88+ };
7189 const actual = try slices (5 , testing .allocator , series );
72- defer free (actual );
90+ defer testing . allocator . free (actual );
7391 try testing .expectEqual (expected .len , actual .len );
7492 for (expected , 0.. ) | expected_slice , i | {
75- try testing .expectEqualStrings (expected_slice , actual [i ]);
93+ try testing .expectEqualStrings (& expected_slice , & actual [i ]);
7694 }
7795}
7896
7997test "slice length is too large" {
8098 const series = "12345" ;
81- const expected = [_ ][] const u8 {};
99+ const expected = [_ ][6 ] u8 {};
82100 const actual = try slices (6 , testing .allocator , series );
83- defer free (actual );
101+ defer testing . allocator . free (actual );
84102 try testing .expectEqual (expected .len , actual .len );
85103 for (expected , 0.. ) | expected_slice , i | {
86- try testing .expectEqualStrings (expected_slice , actual [i ]);
104+ try testing .expectEqualStrings (& expected_slice , & actual [i ]);
87105 }
88106}
89107
90108test "slice length is way too large" {
91109 const series = "12345" ;
92- const expected = [_ ][] const u8 {};
110+ const expected = [_ ][42 ] u8 {};
93111 const actual = try slices (42 , testing .allocator , series );
94- defer free (actual );
112+ defer testing . allocator . free (actual );
95113 try testing .expectEqual (expected .len , actual .len );
96114 for (expected , 0.. ) | expected_slice , i | {
97- try testing .expectEqualStrings (expected_slice , actual [i ]);
115+ try testing .expectEqualStrings (& expected_slice , & actual [i ]);
98116 }
99117}
0 commit comments