Harjoitustyö

Julkaistu

Tehtävänanto ja muuta materiaalia

Esimerkkiajot

Esimerkit ovat saatavilla kahdessa muodossa:

Esimerkeistä ei ole versioita eri merkistöille, koska tiedostoissa on vain 7-bittisen ASCII-merkistön ”näkyviä” merkkejä, joiden esitystapa on sama niin Latin 1 (ISO 8859-1) kuin UTF-8-koodatussa Unicode-merkistöissä.

Oman ohjelman tulosteita kannattaa vertailla esimerkkitiedostoihin ennen WETO-palautuksia.

Brain_check1-, brain_check2-, dilate_rectangle-, erode_rectangle-, spot-, spots, cat- ja errors-esimerkkeihin liittyy neljä tiedostoa. Ohjelmalle komentoriviparametrina annettava kuvatiedosto on image-alkuisessa tiedostossa. Input-alkuisessa tiedostossa ovat ohjelmalle annettavat komennot ja vastaavassa output-alkuisessa tiedostossa ovat komentoja vastaavat näyttötulosteet. Syötteet ja niitä vastaavat tulosteet on yhdistetty combination-alkuiseen tiedostoon ajamalla malliohjelma echo-komentoriviparametrilla.

Virheellisiin komentoriviparametreihin liittyvien args1-, args2– ja args3-testien sekä puuttuvaan tiedostoon liittyvään x-file-testin ja virheellisiin tiedostoihin liittyvien image_too_colourful-, image_too_short-, image_too_tall-, image_too_thin-, image_too_wide– ja image_too_twisted-esimerkkien osalta ei ole annettu input– ja combination-tiedostoja, koska ohjelmalle ei päästä antamaan komentoja ennen ohjelman pysähtymistä.

Alla olevassa taulukossa on annettu komennot, joilla ohjelma on käynnistetty tai yritetty käynnistää kussakin testissä. Komennosta selviää testissä käytetyn kuvatiedoston nimi, jos sellainen on määritelty.

Testi Kuva
brain_check1 java BimEdit image_x.txt
brain_check2 java BimEdit image_plus.txt
dilate_rectangle java BimEdit image_small_rectangle.txt
erode_rectangle java BimEdit image_large_rectangle.txt
spot java BimEdit image_spot.txt
spots java BimEdit image_spots.txt
cat java BimEdit image_cat.txt
errors java BimEdit image_spot.txt
args1 java BimEdit
args2 java BimEdit spot.txt b c
args3 java BimEdit spot.txt abc
x-file java BimEdit x-file.txt
too_colourful java BimEdit image_too_colourful.txt
too_short java BimEdit image_too_short.txt
too_tall java BimEdit image_too_tall.txt
too_thin java BimEdit image_too_thin.txt
too_wide java BimEdit image_too_wide.txt
too_twisted java BimEdit image_too_twisted.txt

Omaa ohjelmaa voi testata omatoimisesti WETO:n tapaan uudelleenohjausta käyttämällä. Uudelleenohjauksesta on kerrottu luentorungon luvussa 4.2.

Esimerkiksi brain_check1-testin voi ajaa seuraavasti:

java BimEdit image_x.txt < input_brain_check1.txt

jolloin ohjelma lukee syötteet input_brain_check1.txt-tiedostosta ilman, että tiedoston syötteitä tarvitsee antaa ohjelmalle käsin. Ohjelma tulostaa normaaliin tapaan näytölle. Edellä oletetaan, että syötetiedosto on samassa hakemistossa kuin harjoitustyöohjelma.

Echo-komentoriviparametria käyttämällä:

java BimEdit image_x.txt echo < input_brain_check1.txt

näytölle tulostuvat limittäin komennot ja ohjelman tulosteet, jolloin ohjelman toimintaa on helpompi seurata.

Uudelleenohjausta voi hyödyntää laajemmin näin:

java BimEdit image_x.txt < input_brain_check1.txt > out.txt

Yllä testin syötteet ohjataan syötetiedostosta ohjelmalle ja ohjelman tuloste kaapataan out.txt-tiedostoon uudelleenohjauksen avulla.

Out.txt-tiedoston sisältöä voi vertailla output_brain_check1.txt-tiedostossa oleviin malliohjelman tulosteisiin joko silmämääräisesti tai tiedostoja vertailevalla käyttöjärjestelmän komennolla. Windowsissa tällainen komento on fc ja Mac- ja Linux-järjestelmissä monimutkaisempi diff.

Edellisen esimerkin tulosteita voisi vertailla Windowsissa näin:

fc output_brain_check1.txt out.txt

kun myös testin tulostiedosto on harjoitustyöohjelman hakemistossa.

Input_brain_check1-testi kaksisuuntaisella uudelleenohjauksella ja komentojen kaiutuksella:

java BimEdit image_x.txt echo < input_brain_check1.txt > out.txt

Out.txt-tiedoston sisältöä on tässä tapauksessa verrattava combination_brain_check1.txt-tiedostoon.

Lähdekoodin ja testitiedostot voi pitää erillään tallentamalla tiedostot omaan hakemistoonsa. Oletetaan, että testitiedostot ovat Windows-järjestelmässä lähdekoodihakemiston esimerkit-alihakemistossa. Tällöin edellä annetut komennot olisivat:

java BimEdit esimerkit\image_x.txt < esimerkit\input_brain_check1.txt

java BimEdit esimerkit\image_x.txt echo < esimerkit\input_brain_check1.txt

java BimEdit esimerkit\image_x.txt < esimerkit\input_brain_check1.txt > out.txt

fc esimerkit\output_brain_check1.txt out.txt

java BimEdit esimerkit\image_x.txt echo < esimerkit\input_brain_check1.txt > out.txt

Salaiset testit

Salaiset testit ovat julkisessa testauksessa käytettyjen esimerkkien tapaan saatavilla kahdessa muodossa:

Alla olevassa taulukossa on annettu komennot, joilla ohjelma on käynnistetty salaisissa testissä. Komennosta selviää testissä käytetyn kuvatiedoston nimi.

Testi Kuva
secret1
java BimEdit image_homer.txt
secret2
java BimEdit image_footprint.txt