示例#1
0
文件: test_note.py 项目: iskyd/babs
def test_change_alt():
    n = Note(freq=466.16, alt=Note.SHARP)

    assert n.name == 'A#'
    assert n.freq == 466.16
    assert n.octave == 4

    n.alt = Note.FLAT
    assert n.name == 'Bb'
    assert n.freq == 466.16
    assert n.octave == 4

    n.alt = 'random string'
    assert n.name == 'A#'
    assert n.freq == 466.16
    assert n.octave == 4
示例#2
0
文件: test_note.py 项目: iskyd/babs
def test_pitch_shift():
    n = Note(freq=440)

    n.pitch_shift(value=53.88)
    assert n.name == 'B'
    assert n.freq == 493.88
    assert n.octave == 4

    n.pitch_shift(value=-53.88)
    assert n.name == 'A'
    assert n.freq == 440
    assert n.octave == 4

    n.pitch_shift(value=0)
    assert n.name == 'A'
    assert n.freq == 440
    assert n.octave == 4

    # Half step #

    n = Note(freq=440)

    n.pitch_shift(value=2, half_step=True)
    assert n.name == 'B'
    assert n.freq == 493.88
    assert n.octave == 4

    n.pitch_shift(value=-2, half_step=True)
    assert n.name == 'A'
    assert n.freq == 440
    assert n.octave == 4

    n.pitch_shift(value=0, half_step=True)
    assert n.name == 'A'
    assert n.freq == 440
    assert n.octave == 4

    n.alt = Note.SHARP
    n.pitch_shift(value=1, half_step=True, alt=Note.FLAT)
    assert n.name == 'Bb'
    assert n.freq == 466.16
    assert n.octave == 4

    n.pitch_shift(value=0, half_step=True, alt=Note.SHARP)
    assert n.name == 'A#'
    assert n.freq == 466.16
    assert n.octave == 4

    # Octave #

    n = Note(freq=440)
    n.pitch_shift(value=1, octave=True)
    assert n.name == 'A'
    assert n.freq == 880
    assert n.octave == 5

    n.pitch_shift(value=-2, octave=True)
    assert n.name == 'A'
    assert n.freq == 220
    assert n.octave == 3

    n.pitch_shift(value=0, octave=True)
    assert n.name == 'A'
    assert n.freq == 220
    assert n.octave == 3

    n = Note(freq=466.16)
    n.pitch_shift(value=1, octave=True, alt=Note.FLAT)
    assert n.name == 'Bb'
    assert n.freq == 932.32
    assert n.octave == 5

    n.pitch_shift(value=-1, octave=True, alt=Note.SHARP)
    assert n.name == 'A#'
    assert n.freq == 466.16
    assert n.octave == 4

    with pytest.raises(TypeError):
        Note(freq=440).pitch_shift()

    with pytest.raises(TypeError):
        Note(freq=440).pitch_shift(value='string')

    with pytest.raises(TypeError):
        Note(freq=440).pitch_shift(value='string', half_step=True)

    with pytest.raises(TypeError):
        Note(freq=440).pitch_shift(value='string', octave=True)