From aee7ad3de2e3c334ec5aac2d355e4eed086f1cdf Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 26 Dec 2016 03:44:59 -0500 Subject: IR: port all passing tests over --- test/cases/array.zig | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'test/cases/array.zig') 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; +} -- cgit v1.2.3