Commit e1145f95 authored by Artem Baranovskyi's avatar Artem Baranovskyi
Browse files

Small Test structure refactoring.

parent 14748951
<?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
]
],
];
...@@ -58,50 +58,7 @@ class quiz_api_test extends advanced_testcase ...@@ -58,50 +58,7 @@ class quiz_api_test extends advanced_testcase
]); ]);
// Create questions and answers // Create questions and answers
$questions = [ $questions = include_once 'fakedata/questions.php';
[
'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
]
],
];
// Create a question category // Create a question category
$context = context_course::instance($coursegen->id); $context = context_course::instance($coursegen->id);
...@@ -110,13 +67,13 @@ class quiz_api_test extends advanced_testcase ...@@ -110,13 +67,13 @@ class quiz_api_test extends advanced_testcase
foreach ($questions as $questiondata) { foreach ($questions as $questiondata) {
// Create a question // Create a question
$question = $questiongen->create_question($questiondata['qtype'], null, [ $question = $questiongen->create_question($questiondata['qtype'], null, [
'category' => $category->id, // категория вопроса 'category' => $category->id, // question category
'questiontext' => [ 'questiontext' => [
'text' => $questiondata['questiontext'], 'text' => $questiondata['questiontext'],
'format' => FORMAT_HTML, 'format' => FORMAT_HTML,
], ],
'name' => 'Test Question', '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, 'modifiedby' => $teacher->id,
]); ]);
......
...@@ -30,8 +30,12 @@ Now the preinstalled MOODLE LMS is available at https://www.moodle.loc ...@@ -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. **Note**: Bind https://www.moodle.loc to your localhost at **hosts** file depending on your OS.
## Running Unit Tests ## 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 ~~~bash
vendor/bin/phpunit --testsuite local_asystgrade_testsuite vendor/bin/phpunit --testsuite local_asystgrade_testsuite
~~~ ~~~
or run outside it:
~~~bash
docker-compose exec moodle vendor/bin/phpunit --testsuite local_asystgrade_testsuite
~~~
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment