// Vectors mirror ref/hare/bytes/contains.ha (task #5 @test conversion). package bytes_test; import bytes; @test fn contains_cases() void = { let a: [4]u8; a[0] = 1u8; a[1] = 3u8; a[2] = 3u8; a[3] = 7u8; assert(!(!bytes.contains(a[0:4], 7u8))); assert(!( bytes.contains(a[0:4], 42u8))); let n: [2]u8; n[0] = 3u8; n[1] = 3u8; assert(!(!bytes.contains(a[0:4], n[0:2]))); let m: [2]u8; m[0] = 9u8; m[1] = 9u8; assert(!( bytes.contains(a[0:4], m[0:2]))); // Variadic rows. ref/hare/bytes/contains.ha:6. assert(!( bytes.contains(a[0:4]))); assert(!(!bytes.contains(a[0:4], n[0:2]))); assert(!(!bytes.contains(a[0:4], 7u8))); assert(!(!bytes.contains(a[0:4], m[0:2], n[0:2], 42u8))); assert(!( bytes.contains(a[0:4], m[0:2], 42u8, m[0:2]))); }; // ref/hare/bytes/contains.ha:25. @test fn hasprefix_cases() void = { let z: [1]u8; assert(!(!bytes.hasprefix(z[0:0], z[0:0]))); let one: [1]u8; one[0] = 0u8; assert(!(!bytes.hasprefix(one[0:1], z[0:0]))); assert(!( bytes.hasprefix(z[0:0], one[0:1]))); let a: [3]u8; a[0] = 1u8; a[1] = 2u8; a[2] = 3u8; let p12: [2]u8; p12[0] = 1u8; p12[1] = 2u8; assert(!(!bytes.hasprefix(a[0:3], p12[0:2]))); let p11: [2]u8; p11[0] = 1u8; p11[1] = 1u8; assert(!( bytes.hasprefix(a[0:3], p11[0:2]))); let pl: [4]u8; pl[0] = 1u8; pl[1] = 2u8; pl[2] = 3u8; pl[3] = 4u8; assert(!( bytes.hasprefix(a[0:3], pl[0:4]))); }; // ref/hare/bytes/contains.ha:40. @test fn hassuffix_cases() void = { let z: [1]u8; assert(!(!bytes.hassuffix(z[0:0], z[0:0]))); let one: [1]u8; one[0] = 0u8; assert(!(!bytes.hassuffix(one[0:1], z[0:0]))); assert(!( bytes.hassuffix(z[0:0], one[0:1]))); let a: [3]u8; a[0] = 1u8; a[1] = 2u8; a[2] = 3u8; let s23: [2]u8; s23[0] = 2u8; s23[1] = 3u8; assert(!(!bytes.hassuffix(a[0:3], s23[0:2]))); let s22: [2]u8; s22[0] = 2u8; s22[1] = 2u8; assert(!( bytes.hassuffix(a[0:3], s22[0:2]))); let a4: [4]u8; a4[0] = 1u8; a4[1] = 2u8; a4[2] = 3u8; a4[3] = 4u8; let s234: [3]u8; s234[0] = 2u8; s234[1] = 3u8; s234[2] = 4u8; assert(!(!bytes.hassuffix(a4[0:4], s234[0:3]))); };