Kolmanda kodutöö kaitsmine paaristööna
- Avage oma kodutöö 3 IntelliJ's (vm. IDEs, et seda oleks
võimalik muuta ja testida). Täna on testide töötamine
teie arvutis oluline.
- Kui teil pole oma töö viimast seisu bitbucket'is (või
github'is), siis looge KOHE PRAKTIKUMI ALGUSES versioon (commit)
"Enne kaitsmist" ning laadige see üles. Vajadusel vaadake
esimese praktikumi materjale. Kindlasti peab versioonihalduses
olema ka testfail LongStackTest.java
- Õppejõud määrab teile paarilise selleks praktikumiks.
- Seletage oma paarilisele meetodi interpret
tööpõhimõtet. Näidake, et kõik bitbucketis olevad testid lähevad
teie arvutis läbi (vajadusel vaadake esimese praktikumi
materjale) ja et töö on esitatud tähtajaks (või siis
mitte) ning et kõik "checklisti" punktid on täidetud.
Paariline teeb sama ja siis võrrelge lahendusi ning otsustage,
kumb lahendus võtta aluseks lisatööle.
- Edasi on kaks tööd, mida võite vabalt omavahel jagada:
arendamine ja testimine. Üks paariline ("arendaja")
vastutab faili LongStack.java eest, teine paariline
("testija") faili LongStackTest.java eest.
- Arendamine: täiendage meetodit interpret nii,
et see aktsepteeriks sisendis veel operatsioone, millel on
järgmine tähendus (ingliskeelne
selgitus):
Järgnevates kirjeldustes on pinu põhi vasakul ja tipp paremal.
- SWAP vahetab kaks pealmist elementi: a b -- b a
(kontrollida, et leidub kaks elementi)
- ROT roteerib kolme pealmist elementi, tõstes kolmanda
esimeseks: a b c -- b c a (kontrollida, et leidub kolm
elementi)
- DUP loob koopia pealmisest elemendist: a -- a a
(kontrollida, et leidub element)
- DROP eemaldab pealmise elemendi: a -- (kontrollida,
et leidub element)
Näited:
- "2 5 SWAP -" peab tulemuseks andma 3.
- "2 5 9 ROT - +" peab andma 12.
- "3 DUP *" peab andma 9.
- "3 7 DROP" peab andma 3.
- "9 11 17 ROT - SWAP -" peab andma -3.
- "-3 -5 -7 ROT - SWAP DUP * +" peab andma 21.
- "9 11 17 DUP ROT - SWAP DROP -" peab andma 3.
Realiseerige muudatused meetodis interpret. Kindlasti
proovige eelnevaid näiteid.
- Testimine: kirjutage eelmises punktis toodud näidete
kohta junit4
testid (täiendage faili LongStackTest.java seal
olemasolevate näidete põhjal). Lisage meetodite alatäitumist
(DUP ja DROP vajavad üht, SWAP kaht ja ROT kolme elementi)
kontrollivad testid. Kokku peaks olema vähemalt viis testi:
"positiivne" test, mis sisaldab kõiki toodud näiteid ning üks
"negatiivne" test iga operatsiooni jaoks olukorras, kus pinus ei
jätku elemente.
- Tehke uus versioon (commit)
"Arendaja: Nimi; Testija: Nimi"
ning laadige see bitbucket'isse (või github'i), paariline
teeb oma koodiga sama. Tehke seda alles siis, KUI TESTIMISE OSA
TÖÖTAB.
- Näidake koos paarilisega see viimane commit
bitbucket'is (või github'is) ning testide ja näidete
töötamine õppejõule ette. Teste saab käivitada ka
käsurealt, kui IDEs on mingi probleem.
- Õppejõud vestleb ja küsib küsimusi teie töö kohta, kui kõik on
korras, siis kannab hinded ÕISi.
Jaanus Pöial