Skip to content

Commit

Permalink
examples
Browse files Browse the repository at this point in the history
  • Loading branch information
BTWS2 committed Nov 17, 2023
1 parent 04fb3e3 commit 6ac56b4
Show file tree
Hide file tree
Showing 10 changed files with 46 additions and 51 deletions.
4 changes: 2 additions & 2 deletions en/references/tested/dsl/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ In most cases, it is fine to leave the description empty.
Each context must have at least one test case.
Since each context is executed separately, the following two constraints apply:

- Only the first test case may have a "main call", i.e. command line arguments or stdin.
- Only the first test case may have a "main call", i.e. command line arguments or _stdin_.
- Only the last test case may have a test for the program's exit code.

Do note that the first and last test case may be the same one:
Expand All @@ -84,7 +84,7 @@ if you only have one test case, it may be a main call and have a check for the e
Test cases are the building blocks of a test suite, and contain some input and the expected outputs (the _tests_).
Within each context, the following constraints apply to test cases:

- Only the first test case may have a "main call", i.e. command line arguments or stdin.
- Only the first test case may have a "main call", i.e. command line arguments or _stdin_.
- Only the last test case may have a test for the program's exit code.

Do note that the first and last test case may be the same one:
Expand Down
6 changes: 3 additions & 3 deletions en/references/tested/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ We'll explain how to create a simple programming exercise that uses TESTed to pr
and how to make the exercise available on Dodona.
The exercise is called "echo" and has the following problem statement:

> Define a function `echo` that outputs its string argument to stdout.
> Define a function `echo` that outputs its string argument to _stdout_.
Here are some correct submissions for this exercise in a couple of different programming languages:

Expand Down Expand Up @@ -203,7 +203,7 @@ We'll use the problem statement from above and add an example.
Create a file `echo/description/description.en.md` with the following content:

````markdown
Define a function `echo` that outputs its string argument to stdout.
Define a function `echo` that outputs its string argument to _stdout_.

### Example in Python

Expand Down Expand Up @@ -250,7 +250,7 @@ This test suite specifies that:
1. All feedback is included in a single tab called _Echo_.
2. The tab contains feedback on a single test case.
3. The test case calls the function `echo` with a string argument `"input-1"`.
4. The expected behavior of the test case is that the text `input-1` is generated on stdout.
4. The expected behavior of the test case is that the text `input-1` is generated on _stdout_.


The file structure now looks like this:
Expand Down
10 changes: 5 additions & 5 deletions en/references/tested/json/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ A test case is a statement or an expression that will be executed and evaluated.
Each context has at least one test case.
The following two constraints apply:

- Only the first test case may have a "main call", i.e. command line arguments or stdin.
- Only the first test case may have a "main call", i.e. command line arguments or _stdin_.
- Only the last test case may have a test for the program's exit code.

Do note that the first and last test case may be the same one:
Expand Down Expand Up @@ -255,7 +255,7 @@ Here's an overview of all output channels currently supported by TESTed:

### EmptyChannel

An `EmptyChannel` describes that no output is expected on a specific file descriptor (e.g. stdout or stderr).
An `EmptyChannel` describes that no output is expected on a specific file descriptor (e.g. _stdout_ or _stderr_).
Any output generated will be considered as incorrect by TESTed.
The `EmptyChannel` is represented by a string constant `none`.

Expand All @@ -273,7 +273,7 @@ For most output types, this is the default value, meaning you don't need to spec

### IgnoredChannel

An IgnoredChannel object describes that no output is expected on a specific file descriptor (e.g. stdout or stderr).
An IgnoredChannel object describes that no output is expected on a specific file descriptor (e.g. _stdout_ or _stderr_).
Any output generated on the file descriptor will be ignored, and is considered correct by TESTed.
In other words, if you do not want output, you should use [`EmptyChannel`](#emptychannel),
while if you don't care about the output, you should use `IgnoredChannel`.
Expand Down Expand Up @@ -422,8 +422,8 @@ TESTed currently supports the following two oracles:

### TextOutputChannel

A `TextOutputChannel` object represents text that is expected to be generated on an output channel (e.g. stdout or
stderr).
A `TextOutputChannel` object represents text that is expected to be generated on an output channel (e.g. _stdout_ or
_stderr_).

For example, if the text `"Hello world"` must be written to `stdout`:

Expand Down
2 changes: 1 addition & 1 deletion nl/guides/exercises/creating-exercises/exercise/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Doe dit als volgt:
1. Klik aan de linkerkant op het icoontje voor _Source Control_.
2. Klik bovenaan de lijst met wijzigingen op de knop met `+` om alle bestanden klaar te zetten (_Stage All Changes_).
3. Kies bovenaan een _commit message_. Hierin beschrijf je wat je gedaan hebt, zoals "Voeg mijn eerste oefening toe".
4. Klik op de knop `Commit & Push`.
4. Klik op de knop `Commit & Push`. Als je een pop-up krijgt, kies je voor `Sync (Push & Pull)`.

Als alles goed gegaan is, werd dit venster leeg.

Expand Down
6 changes: 3 additions & 3 deletions nl/guides/exercises/examples/_common.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ Elke oefening in Dodona komt overeen met een bepaalde map in de oefeningenreposi
Die map heeft een [vaste structuur](/nl/references/exercise-directory-structure), die we nu zullen maken.

Maak dus eerst een nieuwe map voor de oefening, die we `minimum` zullen noemen.
Maak daarna, in deze nieuwe map, nog twee mappen:
- `description`: de map waarin de opgave komt
Maak daarna, in deze nieuwe map, nog drie mappen:
- `description`: map waarin de opgave komt
- `evaluation`: map met informatie over hoe een oplossing beoordeeld moet worden
- `solution`: map waarin een voorbeeldoplossing komt

Expand Down Expand Up @@ -110,7 +110,7 @@ repository/
## 4. Een testplan maken

We willen dat deze oefening automatisch getest wordt.
Hiervoor moeten we een testplan schrijven, waarin we Dodona vertellen welke testen we allemaal willen uitvoeren.
Hiervoor moeten we een testplan schrijven, waarin we Dodona vertellen welke testen we allemaal willen uitvoeren. Als alle testgevallen geslaagd zijn, is de indiening van de student volgens Dodona correct.

In dit geval houden we het testplan kort, met slechts een beperkt aantal testgevallen.
In een echte oefening wil je waarschijnlijk meer testgevallen voorzien.
Expand Down
17 changes: 8 additions & 9 deletions nl/guides/exercises/examples/class/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ Elke oefening in Dodona komt overeen met een bepaalde map in de oefeningenreposi
Die map heeft een [vaste structuur](/nl/references/exercise-directory-structure), die we nu zullen maken.

Maak dus eerst een nieuwe map voor de oefening, die we `counter` zullen noemen.
Maak daarna, in deze nieuwe map, nog twee mappen:
- `description`: de map waarin de opgave komt
Maak daarna, in deze nieuwe map, nog drie mappen:
- `description`: map waarin de opgave komt
- `evaluation`: map met informatie over hoe een oplossing beoordeeld moet worden
- `solution`: map waarin een voorbeeldoplossing komt

Expand Down Expand Up @@ -58,10 +58,9 @@ Maak het bestand `config.json` in de map `counter` met de volgende inhoud:

In dit bestand worden drie dingen gespecifieerd:

- De naam van de oefening zoals getoond door Dodona in het Nederlands en in het Engels.
- We stellen de naam van het testplan in (later meer hierover). Dit is een bestand relatief ten opzicht van de map `evaluation`.
- De programmeertaal van de oefening: hier kies je in welke programmeertaal je de oplossingen wilt. In dit geval is dat Python.
- Het toegangsniveau: hier _private_. We kiezen voor een private oefening omdat dit maar een handleiding is, maar we moedigen aan om je oefeningen publiek te zetten: dan kunnen andere leerkrachten er ook gebruik van maken (net zoals jij de keuze hebt uit duizenden publieke oefeningen op Dodona).
- De **namen** (_names_) van de oefening zoals getoond door Dodona in het Nederlands (_nl_) en in het Engels (_en_).
- De **programmeertaal** (_programming_language_) van de oefening: hier kies je in welke programmeertaal je de oplossingen wilt. In dit geval is dat Python.
- Het **toegangsniveau** (_access_): hier _private_. We kiezen voor een private oefening omdat dit maar een handleiding is, maar we moedigen aan om je oefeningen publiek (_public_) te zetten: dan kunnen andere leerkrachten er ook gebruik van maken (net zoals jij de keuze hebt uit duizenden publieke oefeningen op Dodona).

Nadat je dit bestand gemaakt hebt, zal je repository er zo uitzien:

Expand Down Expand Up @@ -108,7 +107,7 @@ Daarnaast moet de klasse de volgende methoden ondersteunen:
```
````

De `nl` in de naam van de opgave kan je vervangen door `en` als je ook een Engelstalige opgave wilt maken.
Als je ook een Engelstalige opgave wilt maken, gebruik je de naam `description.en.md` voor het tweede bestand.
De opgave zelf wordt geschreven in Markdown, een redelijk eenvoudig opmaakformaat. Meer informatie over Markdown is [hier](/nl/references/exercise-description) te vinden.

We voegen ook direct een voorbeeldoplossing toe.
Expand Down Expand Up @@ -147,7 +146,7 @@ repository/
## 4. Een testplan maken

We willen dat deze oefening automatisch getest wordt.
Hiervoor moeten we een testplan schrijven, waarin we Dodona vertellen welke testen we allemaal willen uitvoeren.
Hiervoor moeten we een testplan schrijven, waarin we Dodona vertellen welke testen we allemaal willen uitvoeren. Als alle testgevallen geslaagd zijn, is de indiening van de student volgens Dodona correct.

Om dit kort te houden, beperken we ons testplan tot een aantal testen.
Maak een bestand `suite.yaml` in de map `evaluation` met volgende inhoud:
Expand All @@ -159,7 +158,7 @@ Maak een bestand `suite.yaml` in de map `evaluation` met volgende inhoud:
- statement: "counter = Counter(5)"
- statement: "counter.report()"
stdout: "5"
- expression: "counter.count()"
- statement: "counter.count()"
- statement: "counter.report()"
stdout: "6"
- statement: "counter.count().count().count().count().report()"
Expand Down
21 changes: 10 additions & 11 deletions nl/guides/exercises/examples/command-line/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ order: 4

# Oefening op de commandoregel

In deze handleiding stellen we een oefening op die gebruik maakt argumenten op de commandoregel.
In deze handleiding stellen we een oefening op die gebruik maakt van argumenten op de commandoregel.

We zullen een programma implementeren dat een aantal getallen binnenkrijgt als argumenten op de commandoregel.
Het programma moet vervolgens de som van deze getallen uitschrijven op stdout.
Het programma moet vervolgens de som van deze getallen uitschrijven op _stdout_.

We gaan er in deze handleiding van uit dat je al een werkende oefeningenrepository hebt.
Is dat niet het geval, volg dan eerst de handleiding [_Oefeningen opstellen_](/nl/guides/exercises/creating-exercises/introduction/).
Expand All @@ -22,8 +22,8 @@ Elke oefening in Dodona komt overeen met een bepaalde map in de oefeningenreposi
Die map heeft een [vaste structuur](/nl/references/exercise-directory-structure), die we nu zullen maken.

Maak dus eerst een nieuwe map voor de oefening, die we `sum` zullen noemen.
Maak daarna, in deze nieuwe map, nog twee mappen:
- `description`: de map waarin de opgave komt
Maak daarna, in deze nieuwe map, nog drie mappen:
- `description`: map waarin de opgave komt
- `evaluation`: map met informatie over hoe een oplossing beoordeeld moet worden
- `solution`: map waarin een voorbeeldoplossing komt

Expand All @@ -42,7 +42,7 @@ repository/
Dodona eist voor elke oefeningen ook een [configuratiebestand](/nl/references/exercise-config).
Dit bestand bevat metadata, die door Dodona gebruikt worden.

Maak het bestand `config.json` in de map `counter` met de volgende inhoud:
Maak het bestand `config.json` in de map `sum` met de volgende inhoud:

```json
{
Expand All @@ -59,10 +59,9 @@ Maak het bestand `config.json` in de map `counter` met de volgende inhoud:

In dit bestand worden drie dingen gespecifieerd:

- De naam van de oefening zoals getoond door Dodona in het Nederlands en in het Engels.
- We stellen de naam van het testplan in (later meer hierover). Dit is een bestand relatief ten opzicht van de map `evaluation`.
- De programmeertaal van de oefening: hier kies je in welke programmeertaal je de oplossingen wilt. In dit geval is dat Python.
- Het toegangsniveau: hier _private_. We kiezen voor een private oefening omdat dit maar een handleiding is, maar we moedigen aan om je oefeningen publiek te zetten: dan kunnen andere leerkrachten er ook gebruik van maken (net zoals jij de keuze hebt uit duizenden publieke oefeningen op Dodona).
- De **namen** (_names_) van de oefening zoals getoond door Dodona in het Nederlands (_nl_) en in het Engels (_en_).
- De **programmeertaal** (_programming_language_) van de oefening: hier kies je in welke programmeertaal je de oplossingen wilt. In dit geval is dat Python.
- Het **toegangsniveau** (_access_): hier _private_. We kiezen voor een private oefening omdat dit maar een handleiding is, maar we moedigen aan om je oefeningen publiek (_public_) te zetten: dan kunnen andere leerkrachten er ook gebruik van maken (net zoals jij de keuze hebt uit duizenden publieke oefeningen op Dodona).

Nadat je dit bestand gemaakt hebt, zal je repository er zo uitzien:

Expand Down Expand Up @@ -101,7 +100,7 @@ invalid arguments
```
````

De `nl` in de naam van de opgave kan je vervangen door `en` als je ook een Engelstalige opgave wilt maken.
Als je ook een Engelstalige opgave wilt maken, gebruik je de naam `description.en.md` voor het tweede bestand.
De opgave zelf wordt geschreven in Markdown, een redelijk eenvoudig opmaakformaat. Meer informatie over Markdown is [hier](/nl/references/exercise-description) te vinden.

We voegen ook direct een voorbeeldoplossing toe.
Expand Down Expand Up @@ -142,7 +141,7 @@ repository/
## 4. Een testplan maken

We willen dat deze oefening automatisch getest wordt.
Hiervoor moeten we een testplan schrijven, waarin we Dodona vertellen welke testen we allemaal willen uitvoeren.
Hiervoor moeten we een testplan schrijven, waarin we Dodona vertellen welke testen we allemaal willen uitvoeren. Als alle testgevallen geslaagd zijn, is de indiening van de student volgens Dodona correct.

Om dit kort te houden, beperken we ons testplan tot een aantal testen.
Maak een bestand `suite.yaml` in de map `evaluation` met volgende inhoud:
Expand Down
23 changes: 10 additions & 13 deletions nl/guides/exercises/examples/input-output/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ Elke oefening in Dodona komt overeen met een bepaalde map in de oefeningenreposi
Die map heeft een [vaste structuur](/nl/references/exercise-directory-structure), die we nu zullen maken.

Maak dus eerst een nieuwe map voor de oefening, die we `hello-world` zullen noemen.
Maak daarna, in deze nieuwe map, nog twee mappen:
- `description`: de map waarin de opgave komt
Maak daarna, in deze nieuwe map, nog drie mappen:
- `description`: map waarin de opgave komt
- `evaluation`: map met informatie over hoe een oplossing beoordeeld moet worden
- `solution`: map waarin een voorbeeldoplossing komt

Expand Down Expand Up @@ -59,10 +59,9 @@ Maak het bestand `config.json` in de map `hello-world` met de volgende inhoud:

In dit bestand worden drie dingen gespecifieerd:

- De naam van de oefening zoals getoond door Dodona in het Nederlands en in het Engels (in dit geval zijn beide namen hetzelfde).
- We stellen de naam van het testplan in (later meer hierover). Dit is een bestand relatief ten opzicht van de map `evaluation`.
- De programmeertaal van de oefening: hier kies je in welke programmeertaal je de oplossingen wilt. In dit geval is dat Python.
- Het toegangsniveau: hier _private_. We kiezen voor een private oefening omdat dit maar een handleiding is, maar we moedigen aan om je oefeningen publiek te zetten: dan kunnen andere leerkrachten er ook gebruik van maken (net zoals jij de keuze hebt uit duizenden publieke oefeningen op Dodona).
- De **namen** (_names_) van de oefening zoals getoond door Dodona in het Nederlands (_nl_) en in het Engels (_en_) (in dit geval zijn beide namen hetzelfde).
- De **programmeertaal** (_programming_language_) van de oefening: hier kies je in welke programmeertaal je de oplossingen wilt. In dit geval is dat Python.
- Het **toegangsniveau** (_access_): hier _private_. We kiezen voor een private oefening omdat dit maar een handleiding is, maar we moedigen aan om je oefeningen publiek (_public_) te zetten: dan kunnen andere leerkrachten er ook gebruik van maken (net zoals jij de keuze hebt uit duizenden publieke oefeningen op Dodona).

Nadat je dit bestand gemaakt hebt, zal je repository er zo uitzien:

Expand All @@ -87,7 +86,7 @@ Schrijf een Python-programma dat de naam van de gebruiker vraagt
en vervolgens de gebruiker begroet met de zin `Hallo, [NAAM]!`,
waarbij `[NAAM]` de naam van de gebruiker is.

Het programma moet de naam dus inlezen van standaardinvoer (stdin)
Het programma moet de naam dus inlezen van standaardinvoer (_stdin_)
en de begroeting uitschrijven naar standaarduitvoer (stdout).

### Voorbeeld
Expand All @@ -99,7 +98,7 @@ Hallo, Jan!
```
````

De `nl` in de naam van de opgave kan je vervangen door `en` als je ook een Engelstalige opgave wilt maken.
Als je ook een Engelstalige opgave wilt maken, gebruik je de naam `description.en.md` voor het tweede bestand.
De opgave zelf wordt geschreven in Markdown, een redelijk eenvoudig opmaakformaat. Meer informatie over Markdown is [hier](/nl/references/exercise-description) te vinden.

We voegen ook direct een voorbeeldoplossing toe.
Expand Down Expand Up @@ -129,14 +128,13 @@ repository/
## 4. Een testplan maken

We willen dat deze oefening automatisch getest wordt.
Hiervoor moeten we een testplan schrijven, waarin we Dodona vertellen welke testen we allemaal willen uitvoeren.
Hiervoor moeten we een testplan schrijven, waarin we Dodona vertellen welke testen we allemaal willen uitvoeren. Als alle testgevallen geslaagd zijn, is de indiening van de student volgens Dodona correct.

Deze oefening heeft natuurlijk een aantal voor de hand liggende testen, waarbij verschillende namen geprobeerd worden.
Ook kunnen we eens een naam met cijfers of speciale tekens invullen.
Nog een leuke naam is om een naam met dubbelen en enkele aanhalingstekens te proberen.
Ook een naam met _escaped newlines_ kunnen we proberen.

Om dit kort te houden, beperken we ons testplan tot zeven testen.
Om dit kort te houden, beperken we ons testplan tot zes testen.
Maak een bestand `suite.yaml` in de map `evaluation` met volgende inhoud:

```yaml
Expand All @@ -157,13 +155,12 @@ Maak een bestand `suite.yaml` in de map `evaluation` met volgende inhoud:
```
Een testplan wordt geschreven in YAML, en moet ook voldoen aan een bepaalde structuur.
In het voorbeeld hierboven maken we één tabblad met als naam "Testen", en definiëren zeven testen in dat tabblad:
In het voorbeeld hierboven maken we één tabblad met als naam "Testen", en definiëren zes testen in dat tabblad:
- Testen 1 en 2 gebruiken twee namen.
- Test 3 gebruikt cijfers en leestekens.
- Test 4 gebruikt enkele aanhalingstekens.
- Test 5 gebruikt dubbele aanhalingstekens.
- Test 6 heeft een naam die enkel uit spaties bestaan.
- Test 7 heeft een naam met _escaped newlines_.
::: info Invoer met meerdere regels
In het voorbeeldje gebruiken we nu telkens één regel invoer.
Expand Down
6 changes: 3 additions & 3 deletions nl/references/tested/dsl/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ return:
#### `stdout` / `stderr`

Specifieert het verwachte resultaat op respectievelijk standaarduitvoer (stdout) en standaardfout (stderr).
Specifieert het verwachte resultaat op respectievelijk standaarduitvoer (_stdout_) en standaardfout (_stderr_).

De waarde van het attribuut is ofwel een string (dat dan het verwachte resultaat is), of een object voor meer complexe situaties.
Het object heeft volgende attributen:
Expand Down Expand Up @@ -253,8 +253,8 @@ Een configuratie-object op tabniveau gebruiken zal er bijvoorbeeld voor zorgen d

Een configuratie-object kan volgende attributen hebben:

- `stdout`: de [configuratieopties](#testopties) voor standaarduitvoer (stdout)
- `stderr`: de [configuratieopties](#testopties) voor standaardfout (stderr)
- `stdout`: de [configuratieopties](#testopties) voor standaarduitvoer (_stdout_)
- `stderr`: de [configuratieopties](#testopties) voor standaardfout (_stderr_)
- `return`: de [configuratieopties](#testopties) voor de verwachte returnwaarde

### Testopties
Expand Down
Loading

0 comments on commit 6ac56b4

Please sign in to comment.