|
1 | 1 | const std = @import("std");
|
2 | 2 | const expect = std.testing.expect;
|
| 3 | +const expectEqual = std.testing.expectEqual; |
3 | 4 |
|
4 |
| -const mat4x4 = [4][4]f32{ |
5 |
| - [_]f32{ 1.0, 0.0, 0.0, 0.0 }, |
6 |
| - [_]f32{ 0.0, 1.0, 0.0, 1.0 }, |
7 |
| - [_]f32{ 0.0, 0.0, 1.0, 0.0 }, |
8 |
| - [_]f32{ 0.0, 0.0, 0.0, 1.0 }, |
| 5 | +const mat4x5 = [4][5]f32{ |
| 6 | + [_]f32{ 1.0, 0.0, 0.0, 0.0, 0.0 }, |
| 7 | + [_]f32{ 0.0, 1.0, 0.0, 1.0, 0.0 }, |
| 8 | + [_]f32{ 0.0, 0.0, 1.0, 0.0, 0.0 }, |
| 9 | + [_]f32{ 0.0, 0.0, 0.0, 1.0, 9.9 }, |
9 | 10 | };
|
10 | 11 | test "multidimensional arrays" {
|
| 12 | + // mat4x5 itself is a one-dimensional array of arrays. |
| 13 | + try expectEqual(mat4x5[1], [_]f32{ 0.0, 1.0, 0.0, 1.0, 0.0 }); |
| 14 | + |
11 | 15 | // Access the 2D array by indexing the outer array, and then the inner array.
|
12 |
| - try expect(mat4x4[1][1] == 1.0); |
| 16 | + try expect(mat4x5[3][4] == 9.9); |
13 | 17 |
|
14 | 18 | // Here we iterate with for loops.
|
15 |
| - for (mat4x4, 0..) |row, row_index| { |
| 19 | + for (mat4x5, 0..) |row, row_index| { |
16 | 20 | for (row, 0..) |cell, column_index| {
|
17 | 21 | if (row_index == column_index) {
|
18 | 22 | try expect(cell == 1.0);
|
19 | 23 | }
|
20 | 24 | }
|
21 | 25 | }
|
22 | 26 |
|
23 |
| - // initialize a multidimensional array to zeros |
24 |
| - const all_zero: [4][4]f32 = .{.{0} ** 4} ** 4; |
| 27 | + // Initialize a multidimensional array to zeros. |
| 28 | + const all_zero: [4][5]f32 = .{.{0} ** 5} ** 4; |
25 | 29 | try expect(all_zero[0][0] == 0);
|
26 | 30 | }
|
27 | 31 |
|
|
0 commit comments