bytes: make search linear and splits consistent
This commit is contained in:
41
lib/bytes/mutate_test.ww
Normal file
41
lib/bytes/mutate_test.ww
Normal file
@@ -0,0 +1,41 @@
|
||||
// Mutation primitives mirror ref/hare/bytes/{reverse,zero}.ha.
|
||||
|
||||
package bytes_test;
|
||||
|
||||
import bytes;
|
||||
|
||||
@test fn reverse_cases() void = {
|
||||
let z: [1]u8;
|
||||
bytes.reverse(z[0:0]);
|
||||
|
||||
let one: [1]u8; one[0] = 7u8;
|
||||
bytes.reverse(one[0:1]);
|
||||
assert(!(one[0] != 7u8));
|
||||
|
||||
let odd: [5]u8;
|
||||
let i: i32 = 0;
|
||||
for (i < 5) { odd[i] = (i + 1): u8; i += 1; };
|
||||
bytes.reverse(odd[0:5]);
|
||||
assert(!(odd[0] != 5u8 || odd[1] != 4u8 || odd[2] != 3u8 ||
|
||||
odd[3] != 2u8 || odd[4] != 1u8));
|
||||
|
||||
let even: [4]u8;
|
||||
i = 0;
|
||||
for (i < 4) { even[i] = (i + 1): u8; i += 1; };
|
||||
bytes.reverse(even[0:4]);
|
||||
assert(!(even[0] != 4u8 || even[1] != 3u8 || even[2] != 2u8 ||
|
||||
even[3] != 1u8));
|
||||
};
|
||||
|
||||
@test fn zero_cases() void = {
|
||||
let z: [1]u8; z[0] = 9u8;
|
||||
bytes.zero(z[0:0]);
|
||||
assert(!(z[0] != 9u8));
|
||||
|
||||
let v: [5]u8;
|
||||
let i: i32 = 0;
|
||||
for (i < 5) { v[i] = (i + 1): u8; i += 1; };
|
||||
bytes.zero(v[0:5]);
|
||||
i = 0;
|
||||
for (i < 5) { assert(!(v[i] != 0u8)); i += 1; };
|
||||
};
|
||||
Reference in New Issue
Block a user