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 = """
  List<double> score(List<double> input) {
      return addVectors([1.0, 2.0], [3.0, 4.0]);
  }
  List<double> addVectors(List<double> v1, List<double> v2) {
      List<double> result = new List<double>.filled(v1.length, 0.0);
      for (int i = 0; i < v1.length; i++) {
          result[i] = v1[i] + v2[i];
      }
      return result;
  }
  List<double> mulVectorNumber(List<double> v1, double num) {
      List<double> result = new List<double>.filled(v1.length, 0.0);
      for (int i = 0; i < v1.length; i++) {
          result[i] = v1[i] * num;
      }
      return result;
  }
  """
  
      interpreter = DartInterpreter()
      assert_code_equal(interpreter.interpret(expr), expected_code)
  
imports: from itertools import product
  import pytest
  from m2cgen import ast
  from m2cgen.interpreters import DartInterpreter
  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