| 1 | module main |
| 2 | |
| 3 | import v.tests.generics.generics_from_modules.genericmodule |
| 4 | |
| 5 | fn 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 | |
| 13 | fn 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 | |
| 21 | fn 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 | |
| 29 | fn 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 | |