def METHOD_NAME():
    """Build and test first order linear
    and time-invariant coeff. ds
    """
    ndof = 3
    x0 = np.random.random(ndof)
    time = 1.2
    ds_list = []
    a_mat = np.random.random((ndof, ndof))
    b_vec = np.random.random((ndof,))
    ds_list.append(sk.FirstOrderLinearDS(x0))
    ds_list.append(sk.FirstOrderLinearDS(x0, a_mat))
    ds_list.append(sk.FirstOrderLinearDS(x0, a_mat, b_vec))
    for ds in ds_list:
        assert ds.isLinear()
        assert ds.dimension() == ndof
        assert np.allclose(ds.x0(), x0)
        assert np.allclose(ds.x(), x0)
        assert np.allclose(ds.r(), 0.0)
        rhs = np.zeros_like(ds.x())
        jac_ref = np.zeros((ndof, ndof), dtype=np.float64)
        if isinstance(ds.A(), np.ndarray):
            jac_ref += a_mat
            rhs += np.dot(a_mat, ds.x())
        if isinstance(ds.b(), np.ndarray):
            rhs += ds.b()
        ds.computef(time, ds.x())
        if ds.f() is not None:
            assert np.allclose(rhs, ds.f())
        ds.initRhs(time)
        assert np.allclose(rhs, ds.rhs())
        if ds.A() is not None:
            assert np.allclose(ds.jacobianRhsx(), jac_ref)
            assert np.allclose(ds.jacobianRhsx(), ds.jacobianfx())