code: def test_SMA(ford_2012):
      expected = func.SMA(ford_2012["close"], 10)
      assert_array_equal(
          expected, abstract.Function("sma", ford_2012, 10).outputs
      )
      assert_array_equal(
          expected,
          abstract.Function("sma")(ford_2012, 10, price="close"),
      )
      assert_array_equal(
          expected, abstract.Function("sma")(ford_2012, timeperiod=10)
      )
      expected = func.SMA(ford_2012["open"], 10)
      assert_array_equal(
          expected,
          abstract.Function("sma", ford_2012, 10, price="open").outputs,
      )
      assert_array_equal(
          expected,
          abstract.Function("sma", price="low")(
              ford_2012, 10, price="open"
          ),
      )
      assert_array_not_equal(
          expected,
          abstract.Function("sma", ford_2012, 10, price="open")(
              timeperiod=20
          ),
      )
      assert_array_not_equal(
          expected,
          abstract.Function("sma", ford_2012)(10, price="close"),
      )
      assert_array_not_equal(
          expected,
          abstract.Function("sma", 10)(ford_2012, price="high"),
      )
      assert_array_not_equal(
          expected, abstract.Function("sma", price="low")(ford_2012, 10)
      )
      input_arrays = {"foobarbaz": ford_2012["open"]}
      assert_array_equal(
          expected, abstract.SMA(input_arrays, 10, price="foobarbaz")
      )
  
imports: import copy
  import re
  import threading
  import time
  import numpy
  import pytest
  from numpy.testing import assert_array_equal, assert_raises
  import talib
  from talib import abstract, func
label_desc: Use image node_id 4 for calling a global function with example usage: test_SMA(ford_2012) without return types