code: def test_softmax_expr():
      expr = ast.SoftmaxExpr([ast.NumVal(2.0), ast.NumVal(3.0)])
  
      expected_code = """
  import "math"
  func score(input []float64) []float64 {
      return softmax([]float64{2.0, 3.0})
  }
  func softmax(x []float64) []float64 {
      size := len(x)
      result := make([]float64, size)
      max := x[0]
      for _, v := range x {
          if (v > max) {
              max = v
          }
      }
      sum := 0.0
      for i := 0; i < size; i++ {
          result[i] = math.Exp(x[i] - max)
          sum += result[i]
      }
      for i := 0; i < size; i++ {
          result[i] /= sum
      }
      return result
  }
  """
  
      interpreter = GoInterpreter()
      assert_code_equal(interpreter.interpret(expr), expected_code)
  
imports: from itertools import product
  import pytest
  from m2cgen import ast
  from m2cgen.interpreters import GoInterpreter
  from tests.utils import assert_code_equal
label_desc: Use image node_id 18 for calling a global function with example usage: test_softmax_expr() without return types