def test_GetName_it(self):
     self.assertEqual('diesis', Accidental.GetName('#', 'it'))
     self.assertEqual('doppio diesis', Accidental.GetName('##', 'it'))
     self.assertEqual('diesis*3', Accidental.GetName('###', 'it'))
     self.assertEqual('bemolle', Accidental.GetName('b', 'it'))
     self.assertEqual('doppio bemolle', Accidental.GetName('bb', 'it'))
     self.assertEqual('bemolle*3', Accidental.GetName('bbb', 'it'))
 def test_GetName_fr(self):
     self.assertEqual('dièse', Accidental.GetName('#', 'fr'))
     self.assertEqual('double dièse', Accidental.GetName('##', 'fr'))
     self.assertEqual('dièse*3', Accidental.GetName('###', 'fr'))
     self.assertEqual('bémol', Accidental.GetName('b', 'fr'))
     self.assertEqual('double bémol', Accidental.GetName('bb', 'fr'))
     self.assertEqual('bémol*3', Accidental.GetName('bbb', 'fr'))
 def test_GetName_de(self):
     self.assertEqual('is', Accidental.GetName('#', 'de'))
     self.assertEqual('isis', Accidental.GetName('##', 'de'))
     self.assertEqual('is*3', Accidental.GetName('###', 'de'))
     self.assertEqual('es', Accidental.GetName('b', 'de'))
     self.assertEqual('eses', Accidental.GetName('bb', 'de'))
     self.assertEqual('es*3', Accidental.GetName('bbb', 'de'))
 def test_GetName_ja(self):
     self.assertEqual('嬰', Accidental.GetName('#', 'ja'))
     self.assertEqual('重嬰', Accidental.GetName('##', 'ja'))
     self.assertEqual('嬰*3', Accidental.GetName('###', 'ja'))
     self.assertEqual('変', Accidental.GetName('b', 'ja'))
     self.assertEqual('重変', Accidental.GetName('bb', 'ja'))
     self.assertEqual('変*3', Accidental.GetName('bbb', 'ja'))
 def test_GetName_en(self):
     self.assertEqual('sharp', Accidental.GetName('#', 'en'))
     self.assertEqual('double sharp', Accidental.GetName('##', 'en'))
     self.assertEqual('sharp*3', Accidental.GetName('###', 'en'))
     self.assertEqual('flat', Accidental.GetName('b', 'en'))
     self.assertEqual('double flat', Accidental.GetName('bb', 'en'))
     self.assertEqual('flat*3', Accidental.GetName('bbb', 'en'))
 def test_GetName_zh(self):
     self.assertEqual('升', Accidental.GetName('#', 'zh'))
     self.assertEqual('重升', Accidental.GetName('##', 'zh'))
     self.assertEqual('升*3', Accidental.GetName('###', 'zh'))
     self.assertEqual('降', Accidental.GetName('b', 'zh'))
     self.assertEqual('重降', Accidental.GetName('bb', 'zh'))
     self.assertEqual('降*3', Accidental.GetName('bbb', 'zh'))
 def test_GetName_es(self):
     self.assertEqual('sostenido', Accidental.GetName('#', 'es'))
     self.assertEqual('sostenido doble', Accidental.GetName('##', 'es'))
     self.assertEqual('sostenido*3', Accidental.GetName('###', 'es'))
     self.assertEqual('bemol', Accidental.GetName('b', 'es'))
     self.assertEqual('bemol doble', Accidental.GetName('bb', 'es'))
     self.assertEqual('bemol*3', Accidental.GetName('bbb', 'es'))
 def GetName(cls, name, lang):
     if not (isinstance(name, str)): raise TypeError('引数nameはstr型にしてください。')
     if not (isinstance(lang, str)): raise TypeError('引数langはstr型にしてください。')
     if lang not in cls.KeyNames.keys():
         raise ValueError(
             f'langは次のうちのいずれかにしてください。{cls.KeyNames.keys()}。: lang={lang}')
     k, a = cls.__Split(name)
     if k not in cls.Keys:
         raise ValueError(f'keyは次のうちのいずれかにしてください。{cls.Keys}。: key={k}')
     key = cls.__GetNameLangs(k, lang)
     accidental = Accidental.GetName(a, lang)
     if 'ja' == lang or 'zh' == lang: return accidental + key
     else:
         if 0 == len(accidental): return key
         else: return key + ' ' + accidental