code: def test_bin_vector_expr():
      expr = ast.BinVectorExpr(
          ast.VectorVal([ast.NumVal(1), ast.NumVal(2)]),
          ast.VectorVal([ast.NumVal(3), ast.NumVal(4)]),
          ast.BinNumOpType.ADD,
      )
  
      expected_code = """
  fn score(input: Vec<f64>) -> Vec<f64> {
      add_vectors(vec![1.0_f64, 2.0_f64], vec![3.0_f64, 4.0_f64])
  }
  fn add_vectors(v1: Vec<f64>, v2: Vec<f64>) -> Vec<f64> {
      v1.iter().zip(v2.iter()).map(|(&x, &y)| x + y).collect::<Vec<f64>>()
  }
  fn mul_vector_number(v1: Vec<f64>, num: f64) -> Vec<f64> {
      v1.iter().map(|&i| i * num).collect::<Vec<f64>>()
  }
  """
  
      interpreter = RustInterpreter()
      assert_code_equal(interpreter.interpret(expr), expected_code)
  
imports: from itertools import product
  import pytest
  from m2cgen import ast
  from m2cgen.interpreters import RustInterpreter
  from tests.utils import assert_code_equal
label_desc: Use image node_id 8 for calling a global function with example usage: test_bin_vector_expr() without return types