source: python/tests/test_midi2note.py @ d64f56d

feature/autosinkfeature/cnnfeature/crepefix/ffmpeg5
Last change on this file since d64f56d was d554321, checked in by Paul Brossier <piem@piem.org>, 8 years ago

python/tests/test_{midi2note,note2midi}.py: use nose2.params, add unicode tests

  • Property mode set to 100755
File size: 1.3 KB
RevLine 
[7d89e61]1#! /usr/bin/env python
2# -*- coding: utf-8 -*-
[9ead7a9]3
4from aubio import midi2note
[d554321]5from nose2.tools import params
[9ead7a9]6import unittest
7
8list_of_known_midis = (
9        ( 0, 'C-1' ),
10        ( 1, 'C#-1' ),
11        ( 38, 'D2' ),
12        ( 48, 'C3' ),
13        ( 59, 'B3' ),
14        ( 60, 'C4' ),
15        ( 127, 'G9' ),
16        )
17
[7d89e61]18class midi2note_good_values(unittest.TestCase):
[9ead7a9]19
[d554321]20    @params(*list_of_known_midis)
21    def test_midi2note_known_values(self, midi, note):
[9ead7a9]22        " known values are correctly converted "
[d554321]23        self.assertEqual ( midi2note(midi), note )
[9ead7a9]24
[7d89e61]25class midi2note_wrong_values(unittest.TestCase):
[9ead7a9]26
27    def test_midi2note_negative_value(self):
28        " fails when passed a negative value "
29        self.assertRaises(ValueError, midi2note, -2)
30
[0b6d23d]31    def test_midi2note_large(self):
[9ead7a9]32        " fails when passed a value greater than 127 "
33        self.assertRaises(ValueError, midi2note, 128)
34
35    def test_midi2note_floating_value(self):
36        " fails when passed a floating point "
37        self.assertRaises(TypeError, midi2note, 69.2)
38
39    def test_midi2note_character_value(self):
40        " fails when passed a value that can not be transformed to integer "
41        self.assertRaises(TypeError, midi2note, "a")
42
43if __name__ == '__main__':
[d554321]44    import nose2
45    nose2.main()
Note: See TracBrowser for help on using the repository browser.