diff --git a/asystgrade/tests/fakedata/questions.php b/asystgrade/tests/fakedata/questions.php new file mode 100644 index 0000000000000000000000000000000000000000..120c75937fe35743b0f8e9147ec10be2b26e40e7 --- /dev/null +++ b/asystgrade/tests/fakedata/questions.php @@ -0,0 +1,46 @@ +<?php + +return [ + [ + 'questiontext' => 'Warum kann Ihr Programm durch die Verwendung von Threads schneller werden, auch wenn Sie nur einen einzigen Prozessor zur Verfügung haben?', + 'qtype' => 'essay', + 'answers' => [ + 'Die Ausführung wird schneller, weil der Prozessor zwischen verschiedenen Teilaufgaben hin- und herspringen kann und so z.B. Wartezeiten auf Daten in einem Thread zur Bearbeitung anderer Threads genutzt werden können.' => 1 + ] + ], + [ + 'questiontext' => 'Warum wird Ihr Programm durch die Verwendung von Threads schneller, auch wenn Sie nur einen einzigen Prozessor zur Verfügung haben?', + 'qtype' => 'essay', + 'answers' => [ + 'Die Ausführung wird schneller, weil der Prozessor zwischen verschiedenen Teilaufgaben hin- und herspringen kann und so z.B. Wartezeiten auf Daten in einem Thread zur Bearbeitung anderer Threads genutzt werden können.' => 1 + ] + ], + [ + 'questiontext' => 'Beschreiben Sie die Struktur einer Stream-Pipeline. Woher kommen die Daten, was geschieht im Stream mit ihnen, wie endet der Stream? Geben Sie für jeden Streamabschnitt mindestens eine Beispielkomponente an.', + 'qtype' => 'essay', + 'answers' => [ + 'Datenquelle: Collections, Arrays, Generatoren (z.B. Datenbankabfragen, eigene Methoden). Verarbeitung: Filtern, Umformung, Begrenzung. Datensenke: Minimum / Maximum / Durchschnitt / Anzahl, Ausgabe in Collection oder Array / Reduktion / Auswertung.' => 1 + ] + ], + [ + 'questiontext' => 'Welche Auswirkungen hat die Model-View-Aufteilung bei Swing-Komponenten? Nennen Sie Beispiele anhand der Klasse JTable.', + 'qtype' => 'essay', + 'answers' => [ + 'Datenhaltung und Darstellung werden getrennt, so dass dieselben Daten flexibel dargestellt werden können. Datenhaltung findet in der Klasse TableModel statt: Welche Information steht in welcher Zelle? Information z.B. über die Editierbarkeit der Zellen, den zu verwendenden Editor und die Spaltenreihenfolge werden in JTable bzw. TableColumnModel gehalten.' => 3 + ] + ], + [ + 'questiontext' => 'Warum braucht man bei der Arbeit mit Threads Synchronisation?', + 'qtype' => 'essay', + 'answers' => [ + 'Man muss vermeiden, dass verschiedene Threads gleichzeitig auf Daten oder Objekte zugreifen, weil es dadurch zur Zerstörung von Werten und zu inkonsistenten Zuständen kommen kann.' => 1 + ] + ], + [ + 'questiontext' => 'Beantworten Sie kurz die 3 Fragen 1 - Was wird unter einem Thread verstanden / wann werden Threads benutzt ? (3 Pkt) 2 - Welche Ressourcen nutzt ein Thread exklusiv ? (2 Pkt) 3 - Welche Ressourcen teilen sich die Threads eines Programms ? (2 Pkt)', + 'qtype' => 'essay', + 'answers' => [ + 'Thread: 1 PT Ablauffaden, Ablaufeinheit, Ausführung etc. 1Pt Parallel, Quasi Parallel, Core, 1Pt Geschwindigkeit, Resourcenauslastung, parallele Ausführung' => 7 + ] + ], +]; diff --git a/asystgrade/tests/quiz_api_test.php b/asystgrade/tests/quiz_api_test.php index cf34328fb77f988b863b4a22e94d73658da8aaca..cc9427093dc1fd86a70bcda958e8a27cfc5cc329 100755 --- a/asystgrade/tests/quiz_api_test.php +++ b/asystgrade/tests/quiz_api_test.php @@ -58,50 +58,7 @@ class quiz_api_test extends advanced_testcase ]); // Create questions and answers - $questions = [ - [ - 'questiontext' => 'Warum kann Ihr Programm durch die Verwendung von Threads schneller werden, auch wenn Sie nur einen einzigen Prozessor zur Verfügung haben?', - 'qtype' => 'essay', - 'answers' => [ - 'Die Ausführung wird schneller, weil der Prozessor zwischen verschiedenen Teilaufgaben hin- und herspringen kann und so z.B. Wartezeiten auf Daten in einem Thread zur Bearbeitung anderer Threads genutzt werden können.' => 1 - ] - ], - [ - 'questiontext' => 'Warum wird Ihr Programm durch die Verwendung von Threads schneller, auch wenn Sie nur einen einzigen Prozessor zur Verfügung haben?', - 'qtype' => 'essay', - 'answers' => [ - 'Die Ausführung wird schneller, weil der Prozessor zwischen verschiedenen Teilaufgaben hin- und herspringen kann und so z.B. Wartezeiten auf Daten in einem Thread zur Bearbeitung anderer Threads genutzt werden können.' => 1 - ] - ], - [ - 'questiontext' => 'Beschreiben Sie die Struktur einer Stream-Pipeline. Woher kommen die Daten, was geschieht im Stream mit ihnen, wie endet der Stream? Geben Sie für jeden Streamabschnitt mindestens eine Beispielkomponente an.', - 'qtype' => 'essay', - 'answers' => [ - 'Datenquelle: Collections, Arrays, Generatoren (z.B. Datenbankabfragen, eigene Methoden). Verarbeitung: Filtern, Umformung, Begrenzung. Datensenke: Minimum / Maximum / Durchschnitt / Anzahl, Ausgabe in Collection oder Array / Reduktion / Auswertung.' => 1 - ] - ], - [ - 'questiontext' => 'Welche Auswirkungen hat die Model-View-Aufteilung bei Swing-Komponenten? Nennen Sie Beispiele anhand der Klasse JTable.', - 'qtype' => 'essay', - 'answers' => [ - 'Datenhaltung und Darstellung werden getrennt, so dass dieselben Daten flexibel dargestellt werden können. Datenhaltung findet in der Klasse TableModel statt: Welche Information steht in welcher Zelle? Information z.B. über die Editierbarkeit der Zellen, den zu verwendenden Editor und die Spaltenreihenfolge werden in JTable bzw. TableColumnModel gehalten.' => 3 - ] - ], - [ - 'questiontext' => 'Warum braucht man bei der Arbeit mit Threads Synchronisation?', - 'qtype' => 'essay', - 'answers' => [ - 'Man muss vermeiden, dass verschiedene Threads gleichzeitig auf Daten oder Objekte zugreifen, weil es dadurch zur Zerstörung von Werten und zu inkonsistenten Zuständen kommen kann.' => 1 - ] - ], - [ - 'questiontext' => 'Beantworten Sie kurz die 3 Fragen 1 - Was wird unter einem Thread verstanden / wann werden Threads benutzt ? (3 Pkt) 2 - Welche Ressourcen nutzt ein Thread exklusiv ? (2 Pkt) 3 - Welche Ressourcen teilen sich die Threads eines Programms ? (2 Pkt)', - 'qtype' => 'essay', - 'answers' => [ - 'Thread: 1 PT Ablauffaden, Ablaufeinheit, Ausführung etc. 1Pt Parallel, Quasi Parallel, Core, 1Pt Geschwindigkeit, Resourcenauslastung, parallele Ausführung' => 7 - ] - ], - ]; + $questions = include_once 'fakedata/questions.php'; // Create a question category $context = context_course::instance($coursegen->id); @@ -110,13 +67,13 @@ class quiz_api_test extends advanced_testcase foreach ($questions as $questiondata) { // Create a question $question = $questiongen->create_question($questiondata['qtype'], null, [ - 'category' => $category->id, // ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ Ð²Ð¾Ð¿Ñ€Ð¾Ñа + 'category' => $category->id, // question category 'questiontext' => [ 'text' => $questiondata['questiontext'], 'format' => FORMAT_HTML, ], 'name' => 'Test Question', - 'contextid' => $context->id, // УбедитеÑÑŒ, что контекÑÑ‚ передаетÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¾ + 'contextid' => $context->id, // https://www.examulator.com/er/output/tables/question_usages.html - a contextid of question usage 'modifiedby' => $teacher->id, ]); diff --git a/readme.md b/readme.md index 79770466d85284873fcf30682272674ae0b36feb..ee8b6b6ecb77b8c476e90e37114bdc93785fc41a 100755 --- a/readme.md +++ b/readme.md @@ -30,8 +30,12 @@ Now the preinstalled MOODLE LMS is available at https://www.moodle.loc **Note**: Bind https://www.moodle.loc to your localhost at **hosts** file depending on your OS. ## Running Unit Tests -To run only Plugin's Test please run at project's CLI: +To run only Plugin's Test please run at project's CLI (inside container): ~~~bash vendor/bin/phpunit --testsuite local_asystgrade_testsuite ~~~ +or run outside it: +~~~bash +docker-compose exec moodle vendor/bin/phpunit --testsuite local_asystgrade_testsuite +~~~