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 = """
  <?php
  function score(array $input) {
      return addVectors(array(1.0, 2.0), array(3.0, 4.0));
  }
  function addVectors(array $v1, array $v2) {
      $result = array();
      for ($i = 0; $i < count($v1); ++$i) {
          $result[] = $v1[$i] + $v2[$i];
      }
      return $result;
  }
  function mulVectorNumber(array $v1, $num) {
      $result = array();
      for ($i = 0; $i < count($v1); ++$i) {
          $result[] = $v1[$i] * $num;
      }
      return $result;
  }
  """
  
      interpreter = PhpInterpreter()
      assert_code_equal(interpreter.interpret(expr), expected_code)
  
imports: from itertools import product
  import pytest
  from m2cgen import ast
  from m2cgen.interpreters import PhpInterpreter
  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