Paaristöö

Kolmanda kodutöö kaitsmine

  1. 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.
  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 LongStackTest.java
  3. Õppejõud määrab teile paarilise selleks praktikumiks.
  4. Seletage oma paarilisele meetodi interpret tööpõhimõtet. Näidake, 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 ja siis võrrelge lahendusi ning otsustage, kumb lahendus võtta aluseks lisatööle.
  5. Edasi on kaks tööd, mida võite vabalt omavahel jagada: arendamine ja testimine. Üks paariline ("arendaja") vastutab faili LongStack.java eest, teine paariline ("testija") faili LongStackTest.java eest.
  6. Arendamine: täiendage meetodit interpret nii, et see aktsepteeriks sisendis veel operatsioone, millel on järgmine tähendus (ingliskeelne selgitus): Järgnevates kirjeldustes on pinu põhi vasakul ja tipp paremal.
    Näited: Realiseerige muudatused meetodis interpret. Kindlasti proovige eelnevaid näiteid.
  7. Testimine: kirjutage eelmises punktis toodud näidete kohta junit4 testid (täiendage faili LongStackTest.java seal olemasolevate näidete põhjal). Lisage meetodite alatäitumist (DUP ja DROP vajavad üht, SWAP kaht ja ROT kolme elementi) kontrollivad testid. Kokku peaks olema vähemalt viis testi: "positiivne" test, mis sisaldab kõiki toodud näiteid ning üks "negatiivne" test iga operatsiooni jaoks olukorras, kus pinus ei jätku elemente.
  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. Teste saab käivitada ka käsurealt, kui IDEs on mingi probleem.
  10. Õppejõud vestleb ja küsib küsimusi teie töö kohta, kui kõik on korras, siis kannab hinded ÕISi.

Neljanda kodutöö kaitsmine

  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. Õppejõud vestleb ja küsib küsimusi teie töö kohta.
  11. Õppejõud kannab hinded ÕISi.

Jaanus Pöial