1
0
Fork 0

Dokumentointia viikolle 4

This commit is contained in:
Vili Sinervä 2022-10-01 21:16:35 +03:00
parent 4bf5257534
commit e73e2dcb52
7 changed files with 37 additions and 3 deletions

View file

@ -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)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Before After
Before After

View file

@ -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)

Binary file not shown.

Binary file not shown.

View file

@ -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)

5
dokumentaatio/viikko4.md Normal file
View file

@ -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.