solutions and tests