Esimerkit

Julkaistu

Esimerkkitiedostot 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.

Esimerkkeihin liittyy neljä tiedostoa pois lukien testit, joissa ohjelman käyttöliittymää ei päästä käynnistämään virheellisten komentoriviparametrien vuoksi. Testissä ohjelmalle annettavat komennot ovat input-alkuisessa tiedostossa. Komentoja vastaavat näyttötulosteet ovat vastaavassa output-alkuisessa tiedostossa. Testit ajetaan aina siten, että syötetiedoston ensimmäinen komento on echo, jolloin syötteet limittyvät tulosten väliin ja tulos on sama kuin testiä komentoikkunassa ajettaessa. Tässä työssä ei ole siksi saatavilla erikseen pelkästään tulosteet sisältäviä tiedostoja.

Ohjelmalle komentoriviparametrina annettavat kokoelma ja sulkusanalista ovat omissa tiedostoissaan. Näet kussakin testissä käytetyt kokoelma- ja sulkusanatiedostot alla olevasta taulukosta, jossa on annettu komentoparametrien arvot, joilla ohjelma on käynnistetty tai yritetty käynnistää kussakin testissä. Taulukossa on kerrottu myös, jos testi on tarkoitettu vain työn laajalle versiolle.

Ohjelmalle annetaan args1-, args2– ja args3-testeissä väärä määrä komentoriviparametreja, kun taas x_file1-, x_file2– ja x_file3-testeissä jompikumpi tai molemmat tiedostot ovat hukassa. Näihin testeihin ei liity input-tiedostoja.

Testi Komentoriviparametrit Vain laajan työn testi
brain_check jokes_oldies.txt stop_words.txt ei
print1 jokes_oldies.txt stop_words.txt ei
print2 news_reuters.txt stop_words.txt ei
args1 ei
args2 jokes_oldies.txt ei
args3 jokes_oldies.txt stop_words.txt news_reuters.txt ei
x_file1 x_file1.txt stop_words.txt ei
x_file2 jokes_oldies.txt x_file2.txt ei
x_file3 x_file1.txt x_file2.txt ei
assignment1 jokes_oldies.txt stop_words.txt ei
assignment2 jokes_oldies.txt stop_words.txt kyllä
add1 jokes_oldies.txt stop_words.txt ei
add2 news_reuters.txt stop_words.txt ei
find1 jokes_oldies.txt stop_words.txt ei
find2 news_reuters.txt stop_words.txt ei
remove1 jokes_oldies.txt stop_words.txt ei
remove2 news_reuters.txt stop_words.txt ei
reset1 jokes_oldies.txt stop_words.txt ei
reset2 news_reuters.txt stop_words.txt ei
polish1 jokes_oldies.txt stop_words.txt ei
polish2 news_reuters.txt stop_words.txt ei
use_case1 jokes_bad.txt stop_words_mysql.txt ei
use_case2 news_bbc.txt stop_words_insight.txt ei
freqs1 jokes_oldies.txt stop_words.txt kyllä
freqs2 news_reuters.txt stop_words.txt kyllä
sort1 jokes_oldies.txt stop_words.txt kyllä
sort2 news_reuters.txt stop_words.txt kyllä
pprint1 jokes_oldies.txt stop_words.txt kyllä
pprint2 news_reuters.txt stop_words.txt kyllä
use_case3 jokes_bad.txt stop_words_mysql.txt kyllä
use_case4 news_bbc.txt stop_words_insight.txt kyllä

Omaa ohjelmaa voi testata omatoimisesti komentoikkunassa WETO:n tapaan uudelleenohjausta käyttämällä.

Esimerkiksi brain_check-testin voi ajaa seuraavasti:

java Oope2HT jokes_oldies.txt stop_words.txt < input_brain_check.txt

jolloin ohjelma lukee syötteet input_brain_check.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.

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

java Oope2HT jokes_oldies.txt stop_words.txt < input_brain_check.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_check.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_check.txt out.txt

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

Tämän työn testitiedostot kannattaa pitää pois versionhallinnan piiristä, jotta oma lähdekoodi ja opettajan luomat testitiedostot olisivat selvemmin erillään. Oletetaan, että testitiedostot ovat Windows-järjestelmässä työhakemiston ylihakemiston esimerkit-nimisessä alihakemistossa. Tällöin edellä annetut komennot olisivat:

java Oope2HT ..\esimerkit\jokes_oldies.txt ..\esimerkit\stop_words.txt < ..\esimerkit\input_brain_check.txt

java Oope2HT ..\esimerkit\jokes_oldies.txt ..\esimerkit\stop_words.txt < ..\esimerkit\input_brain_check.txt> ..\out.txt

fc ..\esimerkit\output_brain_check.txt ..\out.txt