diff options
Diffstat (limited to 'v_windows/v/old/vlib/v/tests/array_map_or_test.v')
-rw-r--r-- | v_windows/v/old/vlib/v/tests/array_map_or_test.v | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/v_windows/v/old/vlib/v/tests/array_map_or_test.v b/v_windows/v/old/vlib/v/tests/array_map_or_test.v new file mode 100644 index 0000000..6c46382 --- /dev/null +++ b/v_windows/v/old/vlib/v/tests/array_map_or_test.v @@ -0,0 +1,118 @@ +fn test_array_or() { + m := [3, 4, 5] + mut testvar := 17 + el := m[4] or { + testvar = -43 + 999 + } + good := m[1] or { + testvar = 11 + 0 + } + assert testvar == -43 + assert el == 999 + assert good == 4 +} + +[direct_array_access] +fn test_array_or_direct() { + m := [3, 4, 5] + mut testvar := 17 + el := m[4] or { + testvar = -43 + 999 + } + good := m[1] or { + testvar = 11 + 0 + } + assert testvar == -43 + assert el == 999 + assert good == 4 +} + +fn test_map_or() { + m := map{ + 'as': 3 + 'qw': 4 + 'kl': 5 + } + mut testvar := -21 + el := m['pp'] or { + testvar = 7931 + 7 + } + good := m['kl'] or { + testvar = -45 + 999 + } + assert testvar == 7931 + assert el == 7 + assert good == 5 +} + +fn get_map_el(key string) ?int { + m := map{ + 'as': 3 + 'qw': 4 + 'kl': 5 + } + r := m[key] ? + return r +} + +fn get_arr_el(i int) ?int { + m := [3, 4, 5] + r := m[i] ? + return r +} + +[direct_array_access] +fn get_arr_el_direct(i int) ?int { + m := [3, 4, 5] + r := m[i] ? + return r +} + +fn test_propagation() { + mut testvar1 := 12 + mut testvar2 := 78 + e := get_map_el('vv') or { + testvar1 = -34 + 7 + } + f := get_map_el('as') or { + testvar1 = 67 + 23 + } + g := get_arr_el(3) or { + testvar2 = 99 + 12 + } + h := get_arr_el(0) or { + testvar2 = 177 + int(-67) + } + m := get_arr_el_direct(3) or { 17 } + n := get_arr_el_direct(0) or { -73 } + assert testvar1 == -34 + assert testvar2 == 99 + assert e == 7 + assert f == 3 + assert g == 12 + assert h == 3 + assert m == 17 + assert n == 3 +} + +fn get_arr_el_nested(i int) ?int { + ind := [2, 1, 0, 5] + m := [3, 4, 5] + r := m[ind[i]] ? + return r +} + +fn test_nested_array_propagation() { + g := get_arr_el_nested(3) or { 12 } + assert g == 12 +} |