def METHOD_NAME(self):
    @njit
    def foo(x):
        if x:
            return 10
        else:
            return 20
    # non-empty 0d, True
    z = np.array(1)
    self.assertEqual(foo(z), foo.py_func(z))
    self.assertEqual(foo.py_func(z), 10)
    # non-empty 0d, False
    z = np.array(0)
    self.assertEqual(foo(z), foo.py_func(z))
    self.assertEqual(foo.py_func(z), 20)
    # non-empty nd True
    z = np.array([[[1]]])
    self.assertEqual(foo(z), foo.py_func(z))
    self.assertEqual(foo.py_func(z), 10)
    # non-empty nd False
    z = np.array([[[0]]])
    self.assertEqual(foo(z), foo.py_func(z))
    self.assertEqual(foo.py_func(z), 20)
    # various problems:
    # empty, NumPy warns
    z = np.empty(0)
    self.assertEqual(foo(z), foo.py_func(z))
    self.assertEqual(foo.py_func(z), 20)
    # nd, NumPy raises
    z = np.array([1, 2])
    with self.assertRaises(ValueError) as raises:
        foo(z)
    msg = ("The truth value of an array with more than one element is "
           "ambiguous. Use a.any() or a.all()")
    self.assertIn(msg, str(raises.exception))