code: def test_decrease(self):
      o = specdesc("decrease")
      c = cvec()
      assert_equal(0.0, o(c))
      a = arange(c.length * 2, 0, -2, dtype=float_type)
      k = arange(c.length, dtype=float_type)
      c.norm = a
      decrease = sum((a[1:] - a[0]) / k[1:]) / sum(a[1:])
      assert_almost_equal(decrease, o(c), decimal=5)
  
      a = arange(0, c.length * 2, +2, dtype=float_type)
      c.norm = a
      decrease = sum((a[1:] - a[0]) / k[1:]) / sum(a[1:])
      assert_almost_equal(decrease, o(c), decimal=5)
  
      a = arange(0, c.length * 2, +2, dtype=float_type)
      c.norm = a * 2
      decrease = sum((a[1:] - a[0]) / k[1:]) / sum(a[1:])
      assert_almost_equal(decrease, o(c), decimal=5)
  
imports: from numpy.testing import TestCase, assert_equal, assert_almost_equal
  from numpy import random, arange, log, zeros
  from aubio import specdesc, cvec, float_type
label_desc: Use image node_id 14 for calling the aubio_specdesc obj's underlying member method code with example usage: obj.test_decrease() without return types