package course;

import java.util.List;
import questions.*;

/**
* This class represents a test, which is a list of questions,
* that can be taken by a user.
* This class relates to the Test Generation requirements document (section 2.3), as well as
* the Test Grading requirements document (section 2.6), as it pertains to creating and grading
* tests. 
*/
public abstract class Test
{
	List<Question> questions;
	public Test(List<Question> questions)
	{

	}

	public abstract List<Question> getQuestions();

	/**
	* Creates a QuestionAttempt from the student's response on this test
	post:
		// make sure the return value has the correct test, question,
		// and response associated with it
		(return.test.equals(this)) &&
			(return.question.equals(q)) &&
			(return.response.equals(r));
	*/
	public abstract QuestionAttempt answerQuestion(Question q, Response r);
}