code: def test_bad_args(self):
      firls = signal.firls
  
      # even numtaps
      assert_raises(ValueError, firls, 10, [0.1, 0.2], [0, 0])
      # odd bands
      assert_raises(ValueError, firls, 11, [0.1, 0.2, 0.4], [0, 0, 0])
      # len(bands) != len(desired)
      assert_raises(
          ValueError, firls, 11, [0.1, 0.2, 0.3, 0.4], [0, 0, 0]
      )
      # non-monotonic bands
      # assert_raises(ValueError, firls, 11, [0.2, 0.1], [0, 0])
      # assert_raises(ValueError, firls, 11, [0.1, 0.2, 0.3, 0.3], [0] * 4)
      # assert_raises(ValueError, firls, 11, [0.3, 0.4, 0.1, 0.2], [0] * 4)
      # assert_raises(ValueError, firls, 11, [0.1, 0.3, 0.2, 0.4], [0] * 4)
      # negative desired
      # assert_raises(ValueError, firls, 11, [0.1, 0.2], [-1, 1])
      # len(weight) != len(pairs)
      assert_raises(ValueError, firls, 11, [0.1, 0.2], [0, 0], [1, 2])
  
imports: import cupy
  import cupyx.scipy.signal
  from cupy import testing
  import pytest
  from pytest import raises
label_desc: Use image node_id 1 for calling the TestFirls obj's underlying member method code with example usage: obj.test_bad_args() without return types