code: def test_bad_input(self):
      # incorrect number of args
      with pytest.raises(ValueError) as err:
          amp.blocks.Line(1, 2, 3)
      assert "Invalid data arguments" in str(err.value)
      with pytest.raises(ValueError) as err:
          amp.blocks.Line()
      assert "Invalid data arguments" in str(err.value)
  
      # No y data
      with pytest.raises(ValueError) as err:
          amp.blocks.Line(np.arange(5), None)
      assert "Must supply y data" in str(err.value)
      with pytest.raises(ValueError) as err:
          amp.blocks.Line(None)
      assert "Must supply y data" in str(err.value)
  
      # y data not 2d
      with pytest.raises(ValueError) as err:
          amp.blocks.Line(np.arange(5), np.random.randn(5, 2, 2))
      assert "y data must be 2-dimensional" in str(err.value)
  
      # 1d x doesn't match y
      with pytest.raises(ValueError) as err:
          amp.blocks.Line(np.arange(5), np.random.randn(4, 2))
      assert "dimensions of x must be compatible" in str(err.value)
  
      # 2d x doesn't match y
      with pytest.raises(ValueError) as err:
          x = np.array([np.arange(5), np.arange(5)])
          amp.blocks.Line(x, np.random.randn(4, 2), t_axis=1)
      assert "dimensions of x must be compatible" in str(err.value)
  
imports: from matplotlib.testing import setup
  import numpy
  import numpy.testing
  import matplotlib.pyplot
  import matplotlib
  import packaging.version
  import pytest
  import animatplot
  from tests.tools import animation_compare
  from animatplot.blocks import Block, Title
label_desc: Use image node_id 8 for calling the TestLineBlock obj's underlying member method code with example usage: obj.test_bad_input() without return types