code: def test_run_non_json_serializable_args(serve_instance):
      # Test that we can capture and bind non-json-serializable arguments.
      arr1 = array.array("d", [1.0, 2.0, 3.0])
      arr2 = array.array("d", [2.0, 3.0, 4.0])
      arr3 = array.array("d", [3.0, 4.0, 5.0])
  
      @serve.deployment
      class A:
          def __init__(self, arr1, *, arr2):
              self.arr1 = arr1
              self.arr2 = arr2
              self.arr3 = arr3
  
          def __call__(self, *args):
              return self.arr1, self.arr2, self.arr3
  
      handle = serve.run(A.bind(arr1, arr2=arr2))
      ret1, ret2, ret3 = handle.remote().result()
      assert all(
          [
              ret1 == arr1,
              ret2 == arr2,
              ret3 == arr3,
          ]
      )
  
imports: import array
  import asyncio
  import os
  import sys
  from typing import Dict, Union
  import pytest
  import requests
  import starlette.requests
  from ray import serve
  from ray.serve._private.deployment_graph_build import build
  from ray.serve.handle import DeploymentHandle
label_desc: Use image node_id 14 for calling a global function with example usage: test_run_non_json_serializable_args(serve_instance) and returns: self,  self,  self