code: def test_softmax_expr():
      expr = ast.SoftmaxExpr([ast.NumVal(2.0), ast.NumVal(3.0)])
  
      expected_code = """
  Module Model
  Function Score(ByRef inputVector() As Double) As Double()
      Dim var0(1) As Double
      var0(0) = 2.0
      var0(1) = 3.0
      Score = Softmax(var0)
  End Function
  Function Softmax(ByRef x() As Double) As Double()
      Dim size As Integer
      size = UBound(x) - LBound(x)
      Dim result() As Double
      ReDim result(size)
      Dim max As Double
      max = x(LBound(x))
      Dim i As Integer
      For i = LBound(x) + 1 To UBound(x)
          If x(i) > max Then
              max = x(i)
          End If
      Next i
      Dim sum As Double
      sum = 0.0
      For i = LBound(x) To UBound(x)
          result(i) = Math.Exp(x(i) - max)
          sum = sum + result(i)
      Next i
      For i = LBound(x) To UBound(x)
          result(i) = result(i) / sum
      Next i
      Softmax = result
  End Function
  End Module
  """
  
      interpreter = VisualBasicInterpreter()
      assert_code_equal(interpreter.interpret(expr), expected_code)
  
imports: from itertools import product
  import pytest
  from m2cgen import ast
  from m2cgen.interpreters import VisualBasicInterpreter
  from tests.utils import assert_code_equal
label_desc: Use image node_id 19 for calling a global function with example usage: test_softmax_expr() without return types