Neljanda kodutöö kaitsmine paaristööna
- Avage oma kodutöö 4 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 QuaternionTest.java
- Õppejõud määrab teile paarilise selleks praktikumiks.Näidake
paarilisele, 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.
- Edasi on kaks ülesannet, mida võite vabalt omavahel jagada: arendamine
ja testimine. Üks paariline ("arendaja") vastutab faili Quaternion.java
eest, teine paariline ("testija") faili QuaternionTest.java
eest. Lõpuks lisage see funktsionaalsus mõlemasse töösse.
- Arendamine: Lisage uus meetod pow
kvaterniooni astendamiseks täisarvulise astmega korrutamise
kaudu:
q.pow(0) on 1: new
Quaternion(1, 0, 0, 0)
q.pow(1) on
võrdne kvaterniooniga q (aga mitte sellega identne, s.t.
tulemuseks peab olema uus kvaternioon)
q.pow(-1) on
q.inverse() (mitte unustada nulliga jagamise kontrolli)
q.pow(n) on n
> 1 korral: q.times(q.pow(n-1))
q.pow(-n) on q.pow(n).inverse()
- Testimine: kirjutage kõigi eelmises punktis toodud
reeglite kohta junit4
testid (täiendage faili QuaternionTest.java seal
olemasolevate näidete põhjal). Nullkvaterniooni ei saa astendada
negatiivse astmega, lisage vastav test!
- Jagage oma koodi paarilisega, pange programm ja testid tööle
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. 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.
- Väljakutse: täiendage meetodit valueOf nii, et see
aktsepteeriks sisendis miinusmärkidega ja lühendatud sõnesid
kujul:
"-1-2i-3j-4k" (ei sisalda plussmärke negatiivsete
komponentide korral)
"-1-2i" tähenduses -1-2i+0j+0k (mõne osa puudumine
tähendab, et vastav komponent on 0), näiteks: "-1-2i-3j"
tähendab -1-2i-3j+0k ja "-1"
tähendab -1+0i+0j+0k
"i" tähenduses 0+1i+0j+0k (imaginaarosa kordaja puudumine
tähendab, et see kordaja on 1), näiteks "i-j-k" tähendab
0+1i-1j-1k
- Õppejõud vestleb ja küsib küsimusi teie töö kohta.
- Õppejõud kannab hinded ÕISi.
Jaanus Pöial