Files
ziffers-python/tests/test_scale.py
Miika Alonen 09553c539b Added tests for scale
Added option to give intervals as scale name
2023-02-05 16:54:00 +02:00

25 lines
623 B
Python

from ziffers import scale
import pytest
@pytest.mark.parametrize(
"name,expected",
[
("C4", 60),
("A1", 33),
("Bb3", 58),
("C#1", 25),
("foo", 60),
],
)
def test_notenames(name: str, expected: int):
assert scale.note_to_midi(name) == expected
@pytest.mark.parametrize(
"pcs,expected",
[
(list(range(-9,10)), [45, 47, 48, 50, 52, 53, 55, 57, 59, 60, 62, 64, 65, 67, 69, 71, 72, 74, 76]),
],
)
def test_note_to_midi(pcs: str, expected: int):
assert [scale.note_from_pc(root=60, pitch_class=val, intervals="Ionian") for val in pcs] == expected