diff --git a/README.md b/README.md index b265f20..35d072d 100644 --- a/README.md +++ b/README.md @@ -5,9 +5,13 @@ [Testausdokumentti](https://github.com/ArcticCoder/markov-music-generator/blob/main/dokumentaatio/testausdokumentti.md) +[Toteutusdokumentti](https://github.com/ArcticCoder/markov-music-generator/blob/main/dokumentaatio/toteutusdokumentti.md) + ### Viikkoraportit [Viikko 1](https://github.com/ArcticCoder/markov-music-generator/blob/main/dokumentaatio/viikko1.md) [Viikko 2](https://github.com/ArcticCoder/markov-music-generator/blob/main/dokumentaatio/viikko2.md) [Viikko 3](https://github.com/ArcticCoder/markov-music-generator/blob/main/dokumentaatio/viikko3.md) + +[Viikko 4](https://github.com/ArcticCoder/markov-music-generator/blob/main/dokumentaatio/viikko4.md) diff --git a/dokumentaatio/kattavuus.png b/dokumentaatio/kattavuus.png index 7891f39..e71036b 100644 Binary files a/dokumentaatio/kattavuus.png and b/dokumentaatio/kattavuus.png differ diff --git a/dokumentaatio/testausdokumentti.md b/dokumentaatio/testausdokumentti.md index 457d22f..18b5590 100644 --- a/dokumentaatio/testausdokumentti.md +++ b/dokumentaatio/testausdokumentti.md @@ -1,9 +1,11 @@ # Testausdokumentti -## Testien toteutus +## Koodin testaus + +### Testien toteutus Automaattinen yksikkötestaus on toteutettu pytest-kirjastolla ja testikattavuuden raportoinnin hoitaa coverage-kirjasto. -## Ohjeet +### Ohjeet Ennen testien suorittamista tulee pytest- ja coverage-kirjastot olla asennettuna käytössä olevassa ympäristössä. Testit saa suoritettua kommennolla `pytest src` @@ -14,4 +16,11 @@ projektin juurikansiosta. Testikattavuusraportin voi luoda juurikansiosta komenn Tämän jälkeen raportti löytyy tiedostosta `htmlcov/index.html`. -![Testikattavuusraportti. Kokonaiskattavuus 99%](https://github.com/ArcticCoder/markov-music-generator/blob/main/dokumentaatio/kattavuus.png?raw=true) +![Testikattavuusraportti. Kokonaiskattavuus 93%](https://github.com/ArcticCoder/markov-music-generator/blob/main/dokumentaatio/kattavuus.png?raw=true) + +## Subjektiivinen testaus +Generoin koodin nykyisellä versiolla 4:nnen asteen Markovin ketjulla lyhyen melodian. Vertailukohtana generoin täysin sattumanvaraisen melodian. Mielestäni ero on huomattava, varsinkin kun otetaan huomioon Markovin ketjujen yksinkertaisuus. + +[Markovin ketju](https://github.com/ArcticCoder/markov-music-generator/blob/main/dokumentaatio/testi1-aste4.mp3) + +[Sattuma](https://github.com/ArcticCoder/markov-music-generator/blob/main/dokumentaatio/testi-sattuma.mp3) diff --git a/dokumentaatio/testi-sattuma.mp3 b/dokumentaatio/testi-sattuma.mp3 new file mode 100644 index 0000000..e0a7b25 Binary files /dev/null and b/dokumentaatio/testi-sattuma.mp3 differ diff --git a/dokumentaatio/testi1-aste4.mp3 b/dokumentaatio/testi1-aste4.mp3 new file mode 100644 index 0000000..843bdce Binary files /dev/null and b/dokumentaatio/testi1-aste4.mp3 differ diff --git a/dokumentaatio/toteutusdokumentti.md b/dokumentaatio/toteutusdokumentti.md new file mode 100644 index 0000000..c942855 --- /dev/null +++ b/dokumentaatio/toteutusdokumentti.md @@ -0,0 +1,16 @@ +# Toteutusdokumentti + +## Ohjelman rakenne +Ohjelman ytimessä ovat `trie` ja `markov_ketju` moduulit, jotka toteuttavat varsinaiset tietorakenteet ja keskeisimmät algoritmit. `midi_kasittelija` hoitaa MIDI-tiedostojen lukemisen ja kirjoittamisen. `musiikki-generaattori` hyödyntää kaikkia edellä mainittuja moduuleja ja toteuttaa niiden avulla varsinaisen toiminnallisuuden. `ui` toimii käyttöliittymänä `musiikki-generaattori`-moduulin käyttämiseksi. + +## Aika- ja tilavaativuudet +Nähdäkseni saavutin määrittelydokumentissa asetetun tavoitteet aika- ja tilavaativuuksien suhteen. + +## Lähteet +[Wikipedia: Trie](https://en.wikipedia.org/wiki/Trie) + +[Wikipedia: Markov chain](https://en.wikipedia.org/wiki/Markov_chain) + +[Albert Au Yeung "Implementing Trie in Python" (Luettu 15.09.2022)](https://albertauyeung.github.io/2020/06/15/python-trie.html/#implementing-trie-in-python-1) + +[Vijaykrishna Ram "Trie Data Structure in C/C++" (Luettu 15.09.2022)](https://www.digitalocean.com/community/tutorials/trie-data-structure-in-c-plus-plus) diff --git a/dokumentaatio/viikko4.md b/dokumentaatio/viikko4.md new file mode 100644 index 0000000..979b70c --- /dev/null +++ b/dokumentaatio/viikko4.md @@ -0,0 +1,5 @@ +# Viikkoraportti 4 + +Toteutin tällä viikolla MIDI-tiedostojen lukemisen ja kirjoittamisen, sekä varsinaisen melodian generoimisen. Lisäksi toteutin alustavan käyttöliittymän. Seuraavalla viikolla kokeilen erilaisia ratkaisuja rytmin generoimiseen. + +Aikaa käytin tällä viikolla noin 20h.