mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
- Remove `[?]` syntax. - Change `int!` to `int?` syntax. - New `fault` declarations. - Enum associated values can reference the calling enum.
33 lines
831 B
Plaintext
33 lines
831 B
Plaintext
module arraytests @test;
|
|
|
|
fn void find()
|
|
{
|
|
int[3] a = { 1, 2, 3 };
|
|
assert(array::index_of(a, 2)!! == 1);
|
|
assert(array::index_of(a, 1)!! == 0);
|
|
assert(array::index_of(a, 3)!! == 2);
|
|
assert(@catch(array::index_of(a, 4)) == NOT_FOUND);
|
|
}
|
|
|
|
fn void find_subarray()
|
|
{
|
|
int[] a = { 1, 2, 3 };
|
|
assert(array::index_of(a, 2)!! == 1);
|
|
assert(array::index_of(a, 1)!! == 0);
|
|
assert(array::index_of(a, 3)!! == 2);
|
|
assert(@catch(array::index_of(a, 4)) == NOT_FOUND);
|
|
}
|
|
|
|
fn void concat()
|
|
{
|
|
int[3] a = { 1, 2, 3 };
|
|
free(array::concat(mem, a, a));
|
|
free(array::concat(mem, a[..], a[..]));
|
|
free(array::concat(mem, a[:0], a[:0]));
|
|
free(array::concat(mem, (int[2]) { 1, 2 }, a[:0]));
|
|
free(array::concat(mem, a[:0], (int[2]) { 1, 2 }));
|
|
int[] c = array::concat(mem, a[1..2], a);
|
|
defer free(c);
|
|
assert (c == (int[]){ 2, 3, 1, 2, 3 });
|
|
}
|