package org.teachingkidsprogramming.recipes.quizzes.tests; import org.junit.Test; import org.teachingextensions.approvals.lite.reporters.DelayedClipboardReporter; import org.teachingextensions.approvals.lite.reporters.DiffReporter; import org.teachingextensions.approvals.lite.reporters.UseReporter; import org.teachingextensions.approvals.lite.util.JUnitUtils; import org.teachingextensions.logo.Tortoise; import org.teachingextensions.logo.Turtle; import org.teachingextensions.logo.utils.TortoiseUtils; import org.teachingkidsprogramming.recipes.quizzes.graders.SpiderQuiz; import org.teachingkidsprogramming.recipes.quizzes.graders.SpiderWebQuizGrader; @UseReporter({DelayedClipboardReporter.class, DiffReporter.class}) public class SpiderWebQuizTest { public static class SpiderWebCorrectQuiz extends SpiderQuiz { @Override public void question1() { // Do the following the current number of times for (int i = 0; i < number; i++) { // Call circle() circle(); } } // Create a method called circleAround which public void circleAround() { // Does the following 3 times for (int i = 0; i < 3; i++) { // Call adjust() adjust(); // Call question1 question1(); } } // Create a method called grow which public void grow() { // Changes the current length so it is multiplied by 2.5 length *= 2.5; } // Create a method called shrink which public void shrink() { // Decreases the current length by 9 pixels length -= 9; } // Create a method called expand which public void expand() { // Increases the current number by 12 number += 12; } } @Test public void testCorrect() throws Exception { JUnitUtils.assumeNotHeadless(); SpiderWebQuizGrader.TURTLE_SPEED = Turtle.TEST_SPEED; new SpiderWebQuizGrader().grade(new SpiderWebCorrectQuiz()); TortoiseUtils.verifyForOs(); } public static class SpiderWebIncorrectQuiz extends SpiderQuiz { public void question1() { for (int i = 0; i <= 3; i++) { circle(); } } public void circleAround() { for (int i = 0; i < 1; i++) { adjust(); question1(); } } public void grow() { length *= 3.4; } public void shrink() { length -= 6; } public void expand() { number += 8; } } @Test public void testIncorrect() throws Exception { JUnitUtils.assumeNotHeadless(); SpiderWebQuizGrader.TURTLE_SPEED = Turtle.TEST_SPEED; new SpiderWebQuizGrader().grade(new SpiderWebIncorrectQuiz()); TortoiseUtils.verifyForOs(); } @Test public void testCircle() throws Exception { JUnitUtils.assumeNotHeadless(); Tortoise.setSpeed(Turtle.TEST_SPEED); SpiderWebQuizGrader grader = new SpiderWebQuizGrader(); SpiderWebCorrectQuiz quiz = new SpiderWebCorrectQuiz(); quiz.grader = grader; grader.initialize(quiz); quiz.question1(); TortoiseUtils.verifyForOs(); } }