Paaristöö
Viienda töö kaitsmine
- 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.
- Õppejõud määrab teile paarilise selleks praktikumiks. Liikuge
oma paarilise juurde.
- 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 -(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.
- 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