def METHOD_NAME(self):
    trackball = Trackball(
        pose=g.np.eye(4),
        size=(640, 480),
        scale=1.0,
        target=g.np.array([0, 0, 0])
    )
    # rotates around z-axis
    trackball.set_state(Trackball.STATE_ROLL)
    trackball.down((321, 241))
    trackball.drag((320, 241))
    assert trackball.pose[0, 0] < 1
    assert trackball.pose[0, 1] > 0
    assert trackball.pose[0, 2] == 0
    assert trackball.pose[1, 0] < 0
    assert trackball.pose[1, 1] < 1
    assert trackball.pose[1, 2] == 0
    assert trackball.pose[2, 0] == 0
    assert trackball.pose[2, 1] == 0
    assert trackball.pose[2, 2] == 1
    g.np.testing.assert_allclose(trackball.pose[:, 3], [0, 0, 0, 1])
    g.np.testing.assert_allclose(trackball.pose[3, :], [0, 0, 0, 1])
    # rotate back
    trackball.drag((321, 241))
    g.np.testing.assert_allclose(trackball.pose, g.np.eye(4))