v/vlib/builtin/fixed_array_index_test.v

60 lines
1.0 KiB
V

fn test_index_of_ints() {
ia := [1, 2, 3]!
mut ii := ia.index(2)
dump(ii)
assert ii == 1
assert [1, 2, 3]!.index(2) == 1
ii = ia.index(5)
dump(ii)
assert ii == -1
assert [1, 2, 3]!.index(5) == -1
}
fn test_index_of_strings() {
sa := ['a', 'b', 'c']!
mut si := sa.index('b')
dump(si)
assert si == 1
assert ['a', 'b', 'c']!.index('b') == 1
si = sa.index('v')
dump(si)
assert si == -1
assert ['a', 'b', 'c']!.index('v') == -1
}
fn test_index_of_voidptrs() {
pa := [voidptr(123), voidptr(45), voidptr(99)]!
mut pi := pa.index(voidptr(45))
dump(pi)
assert pi == 1
assert [voidptr(123), voidptr(45), voidptr(99)]!.index(voidptr(45)) == 1
pi = pa.index(unsafe { nil })
dump(pi)
assert pi == -1
assert [voidptr(123), voidptr(45), voidptr(99)]!.index(unsafe { nil }) == -1
}
fn a() {}
fn b() {}
fn c() {}
fn v() {}
fn test_index_of_fns() {
fa := [a, b, c]!
mut fi := fa.index(b)
dump(fi)
assert fi == 1
assert [a, b, c]!.index(b) == 1
fi = fa.index(v)
dump(fi)
assert fi == -1
assert [a, b, c]!.index(v) == -1
}