aboutsummaryrefslogtreecommitdiff
path: root/test/cases/array.zig
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2016-12-26 03:44:59 -0500
committerAndrew Kelley <superjoe30@gmail.com>2016-12-26 03:44:59 -0500
commitaee7ad3de2e3c334ec5aac2d355e4eed086f1cdf (patch)
tree8577f02b3514539a2accc91e3ebbcb144d0f1208 /test/cases/array.zig
parent73a751911e2c2be646287eb8c8d579dded25afe3 (diff)
downloadzig-aee7ad3de2e3c334ec5aac2d355e4eed086f1cdf.tar.gz
zig-aee7ad3de2e3c334ec5aac2d355e4eed086f1cdf.zip
IR: port all passing tests over
Diffstat (limited to 'test/cases/array.zig')
-rw-r--r--test/cases/array.zig27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/cases/array.zig b/test/cases/array.zig
index d27b611a9d..7839db9bb9 100644
--- a/test/cases/array.zig
+++ b/test/cases/array.zig
@@ -55,6 +55,19 @@ const ArrayDotLenConstExpr = struct {
const some_array = []u8 {0, 1, 2, 3};
+fn nestedArrays() {
+ @setFnTest(this);
+
+ const array_of_strings = [][]u8 {"hello", "this", "is", "my", "thing"};
+ for (array_of_strings) |s, i| {
+ if (i == 0) assert(memeql(s, "hello"));
+ if (i == 1) assert(memeql(s, "this"));
+ if (i == 2) assert(memeql(s, "is"));
+ if (i == 3) assert(memeql(s, "my"));
+ if (i == 4) assert(memeql(s, "thing"));
+ }
+}
+
// TODO const assert = @import("std").debug.assert;
@@ -62,3 +75,17 @@ fn assert(ok: bool) {
if (!ok)
@unreachable();
}
+
+// TODO import from std.str
+pub fn memeql(a: []const u8, b: []const u8) -> bool {
+ sliceEql(u8, a, b)
+}
+
+// TODO import from std.str
+pub fn sliceEql(inline T: type, a: []const T, b: []const T) -> bool {
+ if (a.len != b.len) return false;
+ for (a) |item, index| {
+ if (b[index] != item) return false;
+ }
+ return true;
+}