v2 / vlib / v / tests / generics / generics_from_modules / inference_test.v
35 lines · 30 sloc · 894 bytes · 6488041a749df9762348d019c4223908c476f2e2
Raw
1module main
2
3import v.tests.generics.generics_from_modules.genericmodule
4
5fn test_generic_function_from_another_module() {
6 v1 := genericmodule.take[int](true, 10, 20)
7 assert typeof(v1).name == 'int'
8 assert v1 == 10
9 v2 := genericmodule.take[int](false, 10, 20)
10 assert v2 == 20
11}
12
13fn test_generic_type_inference_from_another_module() {
14 v1 := genericmodule.take(true, 10, 20)
15 assert typeof(v1).name == 'int'
16 assert v1 == 10
17 v2 := genericmodule.take(false, 10, 20)
18 assert v2 == 20
19}
20
21fn test_inference_with_strings() {
22 v1 := genericmodule.take(true, 'abc', 'def')
23 assert typeof(v1).name == 'string'
24 assert v1 == 'abc'
25 v2 := genericmodule.take(false, 'abc', 'def')
26 assert v2 == 'def'
27}
28
29fn test_inference_with_f64() {
30 v1 := genericmodule.take(true, f64(123), 345)
31 assert typeof(v1).name == 'f64'
32 assert v1 == 123
33 v2 := genericmodule.take(false, f64(123), 345)
34 assert v2 == 345
35}
36