package h00; import org.sourcegrade.jagr.api.rubric.Criterion; import org.sourcegrade.jagr.api.rubric.JUnitTestRef; import org.sourcegrade.jagr.api.rubric.Rubric; import org.sourcegrade.jagr.api.rubric.RubricProvider; import org.tudalgo.algoutils.tutor.general.json.JsonParameterSet; import static org.tudalgo.algoutils.tutor.general.jagr.RubricUtils.criterion; public class H00_RubricProvider implements RubricProvider { public static final Rubric RUBRIC = Rubric.builder() .title("H00 | Hands on mit Java & FopBot").addChildCriteria( Criterion.builder() .shortDescription("H0.1 | Matrikelnummer in Moodle") .build(), Criterion.builder() .shortDescription("H0.4 | Initializing FOPBot") .addChildCriteria( criterion( "Der Konstruktor von Robot wurde für Alfred und Kaspar mit korrekten Parametern aufgerufen.", JUnitTestRef.ofMethod(() -> MainTest.class.getDeclaredMethod("testRobotInit", JsonParameterSet.class)) ) ) .build(), Criterion.builder() .shortDescription("H0.5 | Let’s start with turning") .addChildCriteria( criterion( "Beide Roboter haben die korrekte Anzahl an Drehungen durch geführt.", JUnitTestRef.ofMethod(() -> MainTest.class.getDeclaredMethod("testH0_5_1", JsonParameterSet.class)), JUnitTestRef.ofMethod(() -> MainTest.class.getDeclaredMethod("testH0_5_2", JsonParameterSet.class)), JUnitTestRef.ofMethod(() -> MainTest.class.getDeclaredMethod("testH0_5_3", JsonParameterSet.class)) ), criterion( "Es wurden bis hierhin genau eine for- und eine while-Schleife benutzt.", -1, JUnitTestRef.ofMethod(() -> MainTest.class.getDeclaredMethod("testH0_5VA")) ) ) .minPoints(0) .build(), Criterion.builder() .shortDescription("H0.6 | Now we move, put, and pick") .addChildCriteria( criterion( "Beide Roboter haben die korrekten Bewegungen durchgeführt (move, turnLeft, pick, put).", JUnitTestRef.ofMethod(() -> MainTest.class.getDeclaredMethod("testH0_6_1", JsonParameterSet.class)), JUnitTestRef.ofMethod(() -> MainTest.class.getDeclaredMethod("testH0_6_2", JsonParameterSet.class)), JUnitTestRef.ofMethod(() -> MainTest.class.getDeclaredMethod("testH0_6_3", JsonParameterSet.class)) ), criterion( "Es wurde genau eine zusätzliche for-Schleife benutzt.", -1, JUnitTestRef.ofMethod(() -> MainTest.class.getDeclaredMethod("testH0_6VA")) ) ) .minPoints(0) .build(), Criterion.builder() .shortDescription("H0.7 | Let’s repeat that") .addChildCriteria( criterion( "Beide Roboter haben die korrekten Bewegungen durchgeführt (move, turnLeft, pick, put).", JUnitTestRef.ofMethod(() -> MainTest.class.getDeclaredMethod("testH0_7_1", JsonParameterSet.class)), JUnitTestRef.ofMethod(() -> MainTest.class.getDeclaredMethod("testH0_7_2", JsonParameterSet.class)), JUnitTestRef.ofMethod(() -> MainTest.class.getDeclaredMethod("testH0_7_3", JsonParameterSet.class)) ), criterion( "Es wurden genau eine zusätzliche for-Schleife und zwei zusätzliche while-Schleifen benutzt.", -1, JUnitTestRef.ofMethod(() -> MainTest.class.getDeclaredMethod("testH0_7VA")) ), criterion( "Die Läufervariable der for-Schleife verringert sich.", -1, JUnitTestRef.ofMethod(() -> MainTest.class.getDeclaredMethod("testH0_7VA_ForLoop")) ) ) .minPoints(0) .build() ).build(); @Override public Rubric getRubric() { return RUBRIC; } }