Neljanda kodutöö kaitsmine paaristööna

  1. 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.
  2. 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
  3. Õ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.
  4. 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.
  5. 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()
  6. 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!
  7. Jagage oma koodi paarilisega, pange programm ja testid tööle mõlemas arvutis.
  8. 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.
  9. Näidake koos paarilisega see viimane commit bitbucket'is (või github'is) ning testide ja näidete töötamine õppejõule ette.
  10. 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
  1. Õppejõud vestleb ja küsib küsimusi teie töö kohta.
  2. Õppejõud kannab hinded ÕISi.

Jaanus Pöial