Lisätty invoke komennot
This commit is contained in:
parent
83fd8ea522
commit
71a6426028
8 changed files with 26 additions and 6 deletions
|
@ -1,3 +1,3 @@
|
||||||
[run]
|
[run]
|
||||||
source = src
|
source = src
|
||||||
omit = src/main.py,src/**/__init__.py,src/tests/**,src/ui.py,src/musiikki_generaattori.py
|
omit = src/main.py,src/**/__init__.py,src/tests/**,src/ui.py
|
||||||
|
|
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -128,6 +128,5 @@ dmypy.json
|
||||||
# Pyre type checker
|
# Pyre type checker
|
||||||
.pyre/
|
.pyre/
|
||||||
|
|
||||||
# Ignore ceratin MIDI-files
|
# Ignore certain MIDI-files
|
||||||
/*.mid
|
/*.mid
|
||||||
/src/**/*.mid
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ Ohjelman vaatimat kirjastot voi asentaa komennolla
|
||||||
|
|
||||||
Ohjelma on nyt valmis käytettäväksi
|
Ohjelma on nyt valmis käytettäväksi
|
||||||
|
|
||||||
`python3 src/main.py`
|
`invoke start`
|
||||||
|
|
||||||
# Opetusdata
|
# Opetusdata
|
||||||
Opetusdataksi kelpaa mikä tahansa MIDI-tiedosto, mutta itse olen käyttänyt MuseScore-palvelua tietyillä [hakukriteereillä](https://musescore.com/sheetmusic?instrument=2&instrumentation=114&license=to_share&recording_type=public-domain). Ainoa rajoitus on se, että ohjelma jättää huomiotta molli-sävellajeissa (minor key signature) olevat osat. Laadun parantamiseksi jokaisessa MIDI-tiedoston raidassa ("track") olisi hyvä olla vain yksi melodia. Edellä olevasta linkistä löytyvät tiedostot ovat olleet sopivia, joten se on varma valinta, jos olet epävarma.
|
Opetusdataksi kelpaa mikä tahansa MIDI-tiedosto, mutta itse olen käyttänyt MuseScore-palvelua tietyillä [hakukriteereillä](https://musescore.com/sheetmusic?instrument=2&instrumentation=114&license=to_share&recording_type=public-domain). Ainoa rajoitus on se, että ohjelma jättää huomiotta molli-sävellajeissa (minor key signature) olevat osat. Laadun parantamiseksi jokaisessa MIDI-tiedoston raidassa ("track") olisi hyvä olla vain yksi melodia. Edellä olevasta linkistä löytyvät tiedostot ovat olleet sopivia, joten se on varma valinta, jos olet epävarma.
|
||||||
|
|
|
@ -8,16 +8,19 @@ Automaattinen yksikkötestaus on toteutettu pytest-kirjastolla ja testikattavuud
|
||||||
### Ohjeet
|
### Ohjeet
|
||||||
Ennen testien suorittamista tulee pytest- ja coverage-kirjastot olla asennettuna käytössä olevassa ympäristössä. Testit saa suoritettua kommennolla
|
Ennen testien suorittamista tulee pytest- ja coverage-kirjastot olla asennettuna käytössä olevassa ympäristössä. Testit saa suoritettua kommennolla
|
||||||
|
|
||||||
`pytest src`
|
`invoke test`
|
||||||
|
|
||||||
projektin juurikansiosta. Testikattavuusraportin voi luoda juurikansiosta komennolla
|
projektin juurikansiosta. Testikattavuusraportin voi luoda juurikansiosta komennolla
|
||||||
|
|
||||||
` coverage run --branch -m pytest src && coverage html`
|
`invoke coverage-report`
|
||||||
|
|
||||||
Tämän jälkeen raportti löytyy tiedostosta `htmlcov/index.html`.
|
Tämän jälkeen raportti löytyy tiedostosta `htmlcov/index.html`.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
Koodin laadun automaattinen "testaus" on toteutettu pylintillä:
|
||||||
|
`invoke lint`
|
||||||
|
|
||||||
## Subjektiivinen testaus
|
## Subjektiivinen testaus
|
||||||
Viikko 4: 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.
|
Viikko 4: 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.
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@ attrs==22.1.0
|
||||||
coverage==6.4.4
|
coverage==6.4.4
|
||||||
dill==0.3.5.1
|
dill==0.3.5.1
|
||||||
iniconfig==1.1.1
|
iniconfig==1.1.1
|
||||||
|
invoke==1.7.3
|
||||||
isort==5.10.1
|
isort==5.10.1
|
||||||
lazy-object-proxy==1.7.1
|
lazy-object-proxy==1.7.1
|
||||||
mccabe==0.7.0
|
mccabe==0.7.0
|
||||||
|
|
BIN
src/tests/testiMidi.mid
Normal file
BIN
src/tests/testiMidi.mid
Normal file
Binary file not shown.
BIN
src/tests/testiMidi2.mid
Normal file
BIN
src/tests/testiMidi2.mid
Normal file
Binary file not shown.
17
tasks.py
Normal file
17
tasks.py
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
from invoke import task
|
||||||
|
|
||||||
|
@task
|
||||||
|
def start(ctx):
|
||||||
|
ctx.run("python3 src/main.py", pty=True)
|
||||||
|
|
||||||
|
@task
|
||||||
|
def lint(ctx):
|
||||||
|
ctx.run("pylint src", pty=True)
|
||||||
|
|
||||||
|
@task
|
||||||
|
def test(ctx):
|
||||||
|
ctx.run("pytest src", pty=True)
|
||||||
|
|
||||||
|
@task
|
||||||
|
def coverage_report(ctx):
|
||||||
|
ctx.run("coverage run --branch -m pytest src && coverage html", pty=True)
|
Reference in a new issue