def test_Get_Invalid_Type(self): with self.assertRaises( TypeError ) as e: #TypeError: not all arguments converted during string formatting OctaveClass.Get('無効な型') self.assertIn('引数octaveはint型にしてください。', str(e.exception)) with self.assertRaises( TypeError ) as e: #TypeError: not all arguments converted during string formatting OctaveClass.Get(0, _min='abc') self.assertIn('引数_minはint型にしてください。', str(e.exception))
def test_Get_SPN_OutOfRange(self): _min = 0 with self.assertRaises(ValueError) as e: OctaveClass.Get(-1, _min) self.assertIn(f'引数octaveは{_min}〜{_min + OctaveClass.Range}の値にしてください。', str(e.exception)) with self.assertRaises(ValueError) as e: OctaveClass.Get(11, _min) self.assertIn(f'引数octaveは{_min}〜{_min + OctaveClass.Range}の値にしてください。', str(e.exception)) _min = -1 with self.assertRaises(ValueError) as e: OctaveClass.Get(-2, _min) self.assertIn(f'引数octaveは{_min}〜{_min + OctaveClass.Range}の値にしてください。', str(e.exception)) with self.assertRaises(ValueError) as e: OctaveClass.Get(10, _min) self.assertIn(f'引数octaveは{_min}〜{_min + OctaveClass.Range}の値にしてください。', str(e.exception)) _min = -2 with self.assertRaises(ValueError) as e: OctaveClass.Get(-3, _min) self.assertIn(f'引数octaveは{_min}〜{_min + OctaveClass.Range}の値にしてください。', str(e.exception)) with self.assertRaises(ValueError) as e: OctaveClass.Get(9, _min) self.assertIn(f'引数octaveは{_min}〜{_min + OctaveClass.Range}の値にしてください。', str(e.exception))
def GetFrequency(self, pitchClass, octaveClass): PitchClass.Validate(pitchClass) OctaveClass.Validate(octaveClass, _min=0) return self.FundamentalTone.Hz * math.pow(2, (NoteNumber.Get( pitchClass, octaveClass) - self.FundamentalTone.NoteNumber) / (PitchClass.Max + 1))
def GetFrequency(self, pitchClass, octaveClass): PitchClass.Validate(pitchClass) OctaveClass.Validate(octaveClass, _min=0) return self.__ScaleFrequencies[pitchClass] * math.pow(2, octaveClass - self.FundamentalTone.OctaveClass)
def test_Get_ZERO(self): for o in range(0, 10 + 1): self.assertEqual((o + 0), OctaveClass.Get(o, _min=0))
def test_Get_YAMAHA(self): for o in range(-2, 8 + 1): self.assertEqual((o + 2), OctaveClass.Get(o, _min=-2))
def test_Get_SPN(self): for o in range(-1, 9 + 1): self.assertEqual((o + 1), OctaveClass.Get(o, _min=-1))
def test_Get(self): for o in range(-1, 9 + 1): self.assertEqual((o + 1), OctaveClass.Get(o))
def OctaveClass(self, v): o = OctaveClass.Get(v, _min=0) self.__octaveClass = o self.__noteNumber = NoteNumber.Get(self.PitchClass, o)