diff --git a/dokumentaatio/kattavuus.png b/dokumentaatio/kattavuus.png index 0c903d9..b3df8a9 100644 Binary files a/dokumentaatio/kattavuus.png and b/dokumentaatio/kattavuus.png differ diff --git a/src/musiikki_generaattori.py b/src/musiikki_generaattori.py index e9d31bf..a2df027 100644 --- a/src/musiikki_generaattori.py +++ b/src/musiikki_generaattori.py @@ -90,6 +90,7 @@ class MusiikkiGeneraattori: for _ in range(nuotteja): # Tunnistaa jos edellinen Markovin ketjun iteraatio palautti None if not self._nuotit[-1]: + self._nuotit = self._nuotit[:-1] break self._nuotit.append(self._ketju.seuraava()) diff --git a/src/tests/musiikki_generaattori_test.py b/src/tests/musiikki_generaattori_test.py new file mode 100644 index 0000000..48189d5 --- /dev/null +++ b/src/tests/musiikki_generaattori_test.py @@ -0,0 +1,30 @@ +import os +import unittest +from musiikki_generaattori import musiikki_generaattori +from midi_kasittelija import lue_midi, kirjoita_midi + +class TestMusiikkiGeneraattori(unittest.TestCase): + def test_kokonaisuus(self): + testi_polku = "src/tests/testiMidi.mid" + if os.path.exists(testi_polku): + os.remove(testi_polku) + + nuotit = [60, 62, 64, 66, 68, 60, 62, None] + kirjoita_midi(testi_polku, nuotit) + + musiikki_generaattori.lue_opetusdata("src/tests/testiMidi.*") + + musiikki_generaattori.valmistele_ketju("C4") + musiikki_generaattori.generoi_nuotteja(4) + musiikki_generaattori.kirjoita_midi(testi_polku) + generoidut_nuotit = lue_midi(testi_polku)[0] + self.assertEqual(generoidut_nuotit, nuotit[:4]) + + musiikki_generaattori.valmistele_ketju("C4", aste=2) + musiikki_generaattori.generoi_nuotteja(4) + musiikki_generaattori.kirjoita_midi(testi_polku) + generoidut_nuotit = lue_midi(testi_polku)[0] + self.assertEqual(generoidut_nuotit, nuotit[:4]) + + musiikki_generaattori.valmistele_ketju("C5") + self.assertEqual(musiikki_generaattori.generoi_nuotteja(10), 1) diff --git a/src/tests/testiMidi.lyhyt.mid b/src/tests/testiMidi.lyhyt.mid new file mode 100644 index 0000000..7159e9c Binary files /dev/null and b/src/tests/testiMidi.lyhyt.mid differ diff --git a/src/tests/testiMidi.mid b/src/tests/testiMidi.mid index a723ee5..581b584 100644 Binary files a/src/tests/testiMidi.mid and b/src/tests/testiMidi.mid differ diff --git a/src/tests/testiMidi.rikki.mid b/src/tests/testiMidi.rikki.mid new file mode 100644 index 0000000..e69de29