Paaristöö
Kolmanda 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. Kindlasti peab versioonihalduses
olema ka testfail DoubleStackTest.java
- Õppejõud määrab teile paarilise selleks praktikumiks. Liikuge
oma paarilise juurde.
- 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.
- Seletage oma paarilisele meetodi interpret tööpõhimõtet.
Näidake, et kõik bitbucket'is olevad testid lähevad teie arvutis
läbi (vajadusel vaadake esimese praktikumi materjale) ja
et töö on esitatud tähtajaks ning et õppejõu kommentaar sisaldab
"ok". Paariline teeb sama.
- Edasi on kaks tööd, mida võite vabalt omavahel jagada: arendamine
ja testimine. Üks paariline ("arendaja") vastutab
faili DoubleStack.java eest, teine paariline
("testija") faili DoubleStackTest.java eest.
- Arendamine: täiendage meetodit interpret nii,
et see aktsepteeriks sisendis veel operatsioone, millel on
järgmine tähendus (ingliskeelne
selgitus). Tipp on loetelu lõpus.
- SWAP vahetab magasinis kaks pealmist elementi: a b -- b a
(kontrollida, et leidub kaks elementi)
- DUP loob koopia pealmisest elemendist: a -- a a
(kontrollida, et leidub element)
- ROT tõstab kolmanda elemendi pealmiseks: a b c --- b c a
(kontrollida, et vähemalt kolm elementi leidub)
Näited: "2. 5. SWAP -" peab andma tulemuseks 3.
"3. DUP *" peab andma 9.
"2. 5. 9. ROT - -" peab andma -2.
"-3. -5. -7. ROT - SWAP DUP * +" peab andma 21.
Realiseerige muudatused meetodis interpret.
Kindlasti proovige eelnevaid näiteid.
- Testimine: kirjutage eelmises punktis toodud näidete
kohta junit4
testid (täiendage faili DoubleStackTest.java seal
olemasolevate näidete põhjal). Lisage meetodite alatäitumist
(DUP vajab ühte, SWAP kahte ja ROT kolme elementi) kontrollivad
testid.
- Jagage enda koodi partneriga ja pange programm ning testid
käima mõlemas arvutis.
- Tehke uus versioon (commit)
"Arendaja: Nimi; Testija: Nimi"
ning laadige see bitbucket'isse (või github'i), paariline teeb
oma koodiga sama. Kasutage perekonnanime. Tehke commit
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.
- Õppejõud kannab hinded ÕISi.
Neljanda 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. Kindlasti peab versioonihalduses
olema ka testfail LfractionTest.java
- Õppejõud määrab teile paarilise selleks praktikumiks. Liikuge
oma paarilise juurde.
- Avage (mõlemad paarilised) oma kodutöö IntelliJ's (vm. IDEs,
et seda oleks võimalik muuta ja testida). Täna on testide
töötamine teie arvutis oluline.
- Väljendage murdude lahutamise meetod vastandarvu liitmise
kaudu (vajadusel muuta ka vastandarvu leidmise meetodit).
- Väljendage murdude jagamise meetod pöördarvuga korrutamise
kaudu (vajadusel muuta ka pöördarvu leidmise meetodit).
- Viige murru taandamine ja märgi muutmine konstruktorisse - iga
uus loodud murd on taandatud ja murru märk on lugejas. Vajadusel
lisage staatiline SÜT leidmise meetod soovitavalt Eukleidese
algoritmiga. 0 nimetaja on 1 (0/1).
- Avaldage meetod equals meetodi compareTo
kaudu (vajadusel muuta compareTo meetodit, võrdluses
tohib kasutada ainult pikki täisarve).
- Edasi on kaks tööd, mida võite vabalt omavahel jagada:
arendamine ja testimine. Üks paariline ("arendaja") vastutab
faili Lfraction.java eest, teine paariline ("testija")
faili LfractionTest.java eest.
- Arendamine: Lisage meetod pow murru
tõstmiseks täisarvulisele astmele (korrutamise abil):
- m.pow(0) on murd 1/1: new Lfraction(1,
1)
- m.pow(1) on võrdne (aga mitte identne) m-ga
- m.pow(-1) on m.inverse(),
kontrollida ka nulliga jagamist
- m.pow(n) on defineeritud n > 1 jaoks
reegliga: m.times(m.pow(n-1))
- m.pow(-n) on m.pow(n).inverse(),
kontrollida ka nulliga jagamist.
- Testimine: Kirjutage 5 - 7 testjuhtumit meetodi
pow jaoks, mis kataksid kõik eelneva punkti reeglid, s.h.
nulliga jagamise testid, ja lisage need olemasolevatele
testidele (kasutage junit4
raamistikku, näitena vaadake testifaili LfractionTest.java).
- 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