def test_Intervals_Set(self):
     # C Minor Scale
     s = Scale()
     s.Intervals = ScaleIntervals.Minor
     self.assertEqual(ScaleIntervals.Minor, s.Intervals)
     self.assertEqual([(0, 0), (2, 0), (3, 0), (5, 0), (7, 0), (8, 0),
                       (10, 0)], s.PitchClasses)
Beispiel #2
0
    def test_Intervals_Element_Invalid_Type(self):
        s = Scale()
        with self.assertRaises(TypeError) as ex:
            s.Intervals = ('key', )
#        self.assertIn('引数intervalsの要素はint型にしてください。', str(ex.exception))
        self.assertIn('引数intervalsはenum型ScaleIntervalsのいずれかにしてください。',
                      str(ex.exception))
Beispiel #3
0
    def test_Intervals_Invalid_Type(self):
        s = Scale()
        with self.assertRaises(TypeError) as ex:
            s.Intervals = 'key'
#        self.assertIn('引数intervalsはtuple, listのいずれかにしてください。', str(ex.exception))
        self.assertIn('引数intervalsはenum型ScaleIntervalsのいずれかにしてください。',
                      str(ex.exception))
Beispiel #4
0
 def test_Intervals_Element_Invalid_Value(self):
     s = Scale()
     with self.assertRaises(ValueError) as ex:
         s.Intervals = (0,)
     self.assertIn('引数intervalsの要素は0より大きい整数値にしてください。', str(ex.exception))
 def test_Intervals_Set(self):
     s = Scale()
     s.Intervals = ScaleIntervals.Minor
     self.assertEqual(ScaleIntervals.Minor, s.Intervals)
Beispiel #6
0
    def test_Names(self):
        # 調が以下の36音について確認する(Cb,B#,Fb,E#はB,C,E,Fと同一ピッチクラス)。MajorScaleの場合。
        # * C〜B
        # * C#〜B#
        # * Cb〜Bb
        s = Scale()
        s.Key.Name = 'C'
        s.Intervals = ScaleIntervals.Major
        self.assertEqual(list('CDEFGAB'), s.Names)
        print(s.Key.Name, s.Names)
        s.Key.Name = 'A'
        s.Intervals = ScaleIntervals.Minor
        self.assertEqual(list('ABCDEFG'), s.Names)
        print(s.Key.Name, s.Names)

        s.Key.Name = 'D'
        s.Intervals = ScaleIntervals.Major
        self.assertEqual(['D', 'E', 'F#', 'G', 'A', 'B', 'C#'], s.Names)
        print(s.Key.Name, s.Names)
        s.Key.Name = 'B'
        s.Intervals = ScaleIntervals.Minor
        self.assertEqual(['B', 'C#', 'D', 'E', 'F#', 'G', 'A'], s.Names)
        print(s.Key.Name, s.Names)

        s.Key.Name = 'E'
        s.Intervals = ScaleIntervals.Major
        self.assertEqual(['E', 'F#', 'G#', 'A', 'B', 'C#', 'D#'], s.Names)
        print(s.Key.Name, s.Names)
        s.Key.Name = 'C#'
        s.Intervals = ScaleIntervals.Minor
        self.assertEqual(['C#', 'D#', 'E', 'F#', 'G#', 'A', 'B'], s.Names)
        print(s.Key.Name, s.Names)

        s.Key.Name = 'F'
        s.Intervals = ScaleIntervals.Major
        self.assertEqual([
            'F',
            'G',
            'A',
            'Bb',
            'C',
            'D',
            'E',
        ], s.Names)
        print(s.Key.Name, s.Names)
        s.Key.Name = 'D'
        s.Intervals = ScaleIntervals.Minor
        self.assertEqual(['D', 'E', 'F', 'G', 'A', 'Bb', 'C'], s.Names)
        print(s.Key.Name, s.Names)

        s.Key.Name = 'G'
        s.Intervals = ScaleIntervals.Major
        self.assertEqual(['G', 'A', 'B', 'C', 'D', 'E', 'F#'], s.Names)
        print(s.Key.Name, s.Names)
        s.Key.Name = 'E'
        s.Intervals = ScaleIntervals.Minor
        self.assertEqual(['E', 'F#', 'G', 'A', 'B', 'C', 'D'], s.Names)
        print(s.Key.Name, s.Names)

        s.Key.Name = 'A'
        s.Intervals = ScaleIntervals.Major
        self.assertEqual(['A', 'B', 'C#', 'D', 'E', 'F#', 'G#'], s.Names)
        print(s.Key.Name, s.Names)
        s.Key.Name = 'F#'
        s.Intervals = ScaleIntervals.Minor
        self.assertEqual(['F#', 'G#', 'A', 'B', 'C#', 'D', 'E'], s.Names)
        print(s.Key.Name, s.Names)

        s.Key.Name = 'B'
        s.Intervals = ScaleIntervals.Major
        self.assertEqual(['B', 'C#', 'D#', 'E', 'F#', 'G#', 'A#'], s.Names)
        print(s.Key.Name, s.Names)
        s.Key.Name = 'G#'
        s.Intervals = ScaleIntervals.Minor
        self.assertEqual(['G#', 'A#', 'B', 'C#', 'D#', 'E', 'F#'], s.Names)
        print(s.Key.Name, s.Names)

        s.Key.Name = 'C#'
        s.Intervals = ScaleIntervals.Major
        self.assertEqual(['C#', 'D#', 'F', 'F#', 'G#', 'A#', 'C'], s.Names)
        print(s.Key.Name, s.Names)
        s.Key.Name = 'Bb'
        s.Intervals = ScaleIntervals.Minor
        #        self.assertEqual(['A#','C','C#','D#','F','F#','G#'], s.Names)
        self.assertEqual(['Bb', 'C', 'Db', 'Eb', 'F', 'Gb', 'Ab'], s.Names)
        print(s.Key.Name, s.Names)

        s.Key.Name = 'D#'
        s.Intervals = ScaleIntervals.Major
        self.assertEqual(['D#', 'F', 'G', 'G#', 'A#', 'C', 'D'], s.Names)
        print(s.Key.Name, s.Names)
        s.Key.Name = 'C'
        s.Intervals = ScaleIntervals.Minor
        self.assertEqual(['C', 'D', 'Eb', 'F', 'G', 'Ab', 'Bb'], s.Names)
        print(s.Key.Name, s.Names)

        s.Key.Name = 'F#'
        s.Intervals = ScaleIntervals.Major
        self.assertEqual(['F#', 'G#', 'A#', 'B', 'C#', 'D#', 'F'], s.Names)
        print(s.Key.Name, s.Names)
        s.Key.Name = 'Eb'
        s.Intervals = ScaleIntervals.Minor
        #       self.assertEqual(['D#','F','F#','G#','A#','B','C#'], s.Names)
        self.assertEqual(['Eb', 'F', 'Gb', 'Ab', 'Bb', 'B', 'Db'], s.Names)
        #BをCbと表記する場合もある。どうすべきか。http://music-school.mjapa.jp/piano_scale/Eflat_natural_minor_scale.html
        #http://www.chaco2008.com/theory/1-7_circleoffifths.html
        print(s.Key.Name, s.Names)

        s.Key.Name = 'G#'
        s.Intervals = ScaleIntervals.Major
        self.assertEqual(['G#', 'A#', 'C', 'C#', 'D#', 'F', 'G'], s.Names)
        print(s.Key.Name, s.Names)
        s.Key.Name = 'F'
        s.Intervals = ScaleIntervals.Minor
        #       self.assertEqual(['F','G','G#','A#','C','C#','D#'], s.Names)
        self.assertEqual(['F', 'G', 'Ab', 'Bb', 'C', 'Db', 'Eb'], s.Names)
        print(s.Key.Name, s.Names)

        s.Key.Name = 'A#'
        s.Intervals = ScaleIntervals.Major
        self.assertEqual(['A#', 'C', 'D', 'D#', 'F', 'G', 'A'], s.Names)
        print(s.Key.Name, s.Names)
        s.Key.Name = 'G'
        s.Intervals = ScaleIntervals.Minor
        self.assertEqual(['G', 'A', 'Bb', 'C', 'D', 'Eb', 'F'], s.Names)
        print(s.Key.Name, s.Names)