Every // ---- section banner dies (132 -> 0): names carry the WHAT. Narration deleted (filename restatements, run-with lines, what-the- next-line-does); every ref/hare cite, task cite, divergence, ABI/ layout contract, and ownership qualifier kept (borrowed-view lines restored where the sweep over-cut). Comment-only proven: all 442 walk-workdir .s and 32 import-probe .s byte-identical before/after; libbyteid 56-roster all-ID.
58 lines
2.0 KiB
Plaintext
58 lines
2.0 KiB
Plaintext
// 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])));
|
|
};
|