code: def test_depth_threshold_with_reused_bin_expr():
      reused_expr = ast.BinNumExpr(
          ast.NumVal(1),
          ast.NumVal(1),
          ast.BinNumOpType.ADD,
          to_reuse=True,
      )
      expr = ast.BinNumExpr(
          ast.NumVal(1), reused_expr, ast.BinNumOpType.ADD
      )
      for _ in range(2):
          expr = ast.BinNumExpr(expr, expr, ast.BinNumOpType.ADD)
  
      expected_code = """
  public class Model {
      public static double score(double[] input) {
          return subroutine0(input) + subroutine1(input) + subroutine2(input) + subroutine3(input);
      }
      public static double subroutine0(double[] input) {
          double var0;
          var0 = 1.0 + 1.0;
          return 1.0 + var0;
      }
      public static double subroutine1(double[] input) {
          double var0;
          var0 = 1.0 + 1.0;
          return 1.0 + var0;
      }
      public static double subroutine2(double[] input) {
          double var0;
          var0 = 1.0 + 1.0;
          return 1.0 + var0;
      }
      public static double subroutine3(double[] input) {
          double var0;
          var0 = 1.0 + 1.0;
          return 1.0 + var0;
      }
  }
  """
  
      interpreter = CustomJavaInterpreter()
      assert_code_equal(interpreter.interpret(expr), expected_code)
  
imports: from itertools import product
  import pytest
  from m2cgen import ast
  from m2cgen.interpreters import JavaInterpreter
  from tests.utils import assert_code_equal
label_desc: Use image node_id 13 for calling a global function with example usage: test_depth_threshold_with_reused_bin_expr() without return types