Viienda kodutöö kaitsmine paaristööna
- Kui teil pole oma töö viimast seisu bitbucket'is (või
github'is), siis looge kohe praktikumi alguses versioon (commit)
ning laadige see üles. Vajadusel vaadake esimese praktikumi
materjale.
- Õppejõud/assistent määrab teile paarilise, see peaks olema
keegi, kellega te varem selles aines paaristööd teinud ei ole.
Paaritu arvu osalejate korral teeb üksijäänu arendaja töö ning
paneb näited main-meetodisse.
- Avage oma kodutöö IntelliJ's (vm. IDEs, et seda oleks võimalik
muuta ja testida). Ka testid peavad töötama ja fail TnodeTest.java
peab olema versioonihalduses.
- Seletage paarilisele oma programmi tööpõhimõtet. 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 Tnode.java eest, teine paariline ("testija")
faili TnodeTest.java eest.
- Arendamine: Täiendage meetodit buildFromRPN
nii, et see aktsepteeriks sisendis veel operatsioone DUP, SWAP
ja ROT, millel on järgmine tähendus:
- DUP loob viimasest alampuust sõltumatu uue koopia
(kontrollida, et puu leidub)
- SWAP vahetab kaks viimast alampuud (kontrollida, et leidub
kaks alampuud)
- ROT roteerib kolme viimast alampuud, tõstes kolmanda
esimeseks (kontrollida, et leidub kolm alampuud)
Vaadake nende operatsioonide tähendust kolmanda kodutöö
kaitsmise juhendist - puu väljaarvutamisel peab tulemus olema
sama, mille väljastaks sama sisendi korral meetod interpret.
Näited:
- "2 5 SWAP -" peab vahetama alampuud 2 ja 5
ning andma puu (mille vasakpoolne suluesitus on) "-(5,2)"
- "3 DUP *" peab kopeerima puu 3 ning andma
puu "*(3,3)"
- "2 5 9 ROT - +" peab tõstma puu 2 esimeseks
ning andma puu "+(5,-(9,2))"
- "2 5 9 ROT + SWAP -" peab andma puu
"-(+(9,2),5)"
- "2 5 DUP ROT - + DUP *" peab andma
puu "*(+(5,-(5,2)),+(5,-(5,2)))"
- "-3 -5 -7 ROT - SWAP DUP * +" peab andma
puu "+(-(-7,-3),*(-5,-5))"
Realiseerige muudatused meetodis buildFromRPN. Kindlasti
proovige eelnevaid näiteid.
- Testimine: kirjutage kõigi eelmises punktis toodud
näidete kohta junit4
testid (täiendage faili TnodeTest.java seal
olemasolevate näidete põhjal). Lisage veel meetodite
alatäitumist (DUP vajab üht, SWAP kaht ja ROT kolme elementi)
kontrollivad testid (vähemalt kolm negatiivset).
- Tehke uus versioon (commit) "Arendaja:
Perekonnanimi, Testija: Perekonnanimi"
ning laadige see bitbucket'isse (või github'i), paariline teeb
oma koodiga sama. Tehke seda alles siis, KUI TESTIMISE OSA
TÖÖTAB.
- Olge mõlemad paarilised eraldi valmis näitama paari poolt
tunnis tehtud tööd (commit ning loodud lahendus koos
testidega), versiooniajalugu peab näitama, et tegite töö selle
praktikumi ajal.
- Täitke Moodle ülesanne "Kodutöö 5 kaitsmine".
Jaanus Pöial