コード例 #1
0
 def test_zip_mix(self):
     names = set(split_artists('기희현, 전소미, 최유정, 김청하 (Heehyun (DIA), Somi, Yoo Jung, Chungha)'))
     expected = {
         Name('Heehyun', '기희현', extra={'group': Name('DIA')}), Name('Somi', '전소미'),
         Name('Yoo Jung', '최유정'), Name('Chungha', '김청하')
     }
     self.assertArtistsEqual(names, expected)
コード例 #2
0
 def test_big_list_keep_parens(self):
     names = set(split_artists('현아 (HyunA), 조권 (Jo Kwon), 비투비 (BTOB), CLC, 펜타곤 (PENTAGON), 유선호 (Yu Seon Ho), (여자)아이들 [(G)I-DLE]'))
     expected = {
         Name('HyunA', '현아'), Name('Jo Kwon', '조권'), Name('BTOB', '비투비'), Name('CLC'),
         Name('PENTAGON', '펜타곤'), Name('Yu Seon Ho', '유선호'), Name('(G)I-DLE', '(여자)아이들')
     }
     self.assertArtistsEqual(names, expected)
コード例 #3
0
 def test_zip_x(self):
     names = set(split_artists('손동운 (하이라이트) X 서령 (공원소녀) [Son Dongwoon (Highlight) X Seoryoung (GWSN)]'))
     expected = {
         Name('Son Dongwoon', '손동운', extra={'group': Name('Highlight', '하이라이트')}),
         Name('Seoryoung', '서령', extra={'group': Name('GWSN', '공원소녀')})
     }
     self.assertArtistsEqual(names, expected)
コード例 #4
0
 def test_unbalanced_unzipped(self):
     names = set(split_artists('B1A4, 서은광 (비투비) , 이창섭 (비투비), 허영지 (카라), A-JAX, 에이프릴, 오마이걸, 케이시  (B1A4, BTOB (Eunkwang & Changsub), Youngji (KARA), A-JAX, APRIL, Oh My Girl, Kassy)'))
     expected = {
         Name('B1A4'),
         Name('Eunkwang', '서은광', extra={'group': Name('BTOB', '비투비')}),
         Name('Changsub', '이창섭', extra={'group': Name('BTOB', '비투비')}),
         Name('Youngji', '허영지', extra={'group': Name('KARA', '카라')}),
         Name('A-JAX'), Name('APRIL', '에이프릴'), Name('Oh My Girl', '오마이걸'), Name('Kassy', '케이시'),
     }
     self.assertArtistsEqual(names, expected)
コード例 #5
0
 def test_unpaired_paren_with_group(self):
     names = set(split_artists('제아 (JeA (Brown Eyed Girls)'))
     self.assertArtistsEqual(names, {Name('JeA', '제아', extra={'group': Name('Brown Eyed Girls')})})
コード例 #6
0
 def test_split_mix_group(self):
     names = set(split_artists('Jimin (지민) (AOA)'))
     self.assertArtistsEqual(names, {Name('Jimin', '지민', extra={'group': Name('AOA')})})
コード例 #7
0
 def test_zip_ampersand(self):
     names = set(split_artists('딘딘 & 민아 (DinDin & Minah)'))
     self.assertArtistsEqual(names, {Name('DinDin', '딘딘'), Name('Minah', '민아')})
コード例 #8
0
 def test_keep_parentheses_3(self):
     names = set(split_artists('(G)I-DLE'))
     self.assertArtistsEqual(names, {Name('(G)I-DLE')})
コード例 #9
0
 def test_no_space_mix_eng(self):
     names = set(split_artists('화사(Hwa Sa), WOOGIE'))
     self.assertArtistsEqual(names, {Name('Hwa Sa', '화사'), Name('WOOGIE')})
コード例 #10
0
 def test_keep_x(self):
     names = set(split_artists('Monsta X'))
     self.assertArtistsEqual(names, {Name('Monsta X')})
コード例 #11
0
 def test_keep_parentheses_1(self):
     names = set(split_artists('f(x)'))
     self.assertArtistsEqual(names, {Name('f(x)')})
コード例 #12
0
 def test_zip_with_space(self):
     names = set(split_artists('울랄라세션 & 아이유 (Ulala Session & IU)'))
     self.assertArtistsEqual(names, {Name('Ulala Session', '울랄라세션'), Name('IU', '아이유')})
コード例 #13
0
 def test_member_eng_keep_x(self):
     names = set(split_artists('JooHeon (MONSTA X)'))
     self.assertArtistsEqual(names, {Name('JooHeon', extra={'group': Name('MONSTA X')})})
コード例 #14
0
 def test_mix_group_with_apostrophe_2(self):
     names = set(split_artists("윤아 (소녀시대) [YoonA (Girls' Generation)]"))
     self.assertArtistsEqual(names, {Name('YoonA', '윤아', extra={'group': Name("Girls' Generation", '소녀시대')})})
コード例 #15
0
 def assertArtistsEqual(self, parsed, expected):
     self.assertSetEqual(parsed, expected)
     for name in expected:
         artist_str = name.artist_str()
         self.assertSetEqual(set(split_artists(artist_str)), {name}, f'Failed to re-parse artist={artist_str!r}')
コード例 #16
0
 def test_mix_group_with_apostrophe_1(self):
     names = set(split_artists("민아 (걸스데이) [MinAh (Girl's Day)]"))
     self.assertArtistsEqual(names, {Name('MinAh', '민아', extra={'group': Name("Girl's Day", '걸스데이')})})
コード例 #17
0
 def test_apostrophe_of_group(self):
     names = set(split_artists("소진 (Sojin of Girl's Day)"))
     self.assertArtistsEqual(names, {Name('Sojin', '소진', extra={'group': Name("Girl's Day")})})
コード例 #18
0
 def test_trailing_apostrophe_standalone_alt_lang(self):
     names = set(split_artists("少女時代 (GIRLS' GENERATION)"))
     self.assertArtistsEqual(names, {Name("GIRLS' GENERATION", '少女時代')})
コード例 #19
0
 def test_trailing_apostrophe_standalone(self):
     names = set(split_artists("소녀시대 (GIRLS' GENERATION)"))
     self.assertArtistsEqual(names, {Name("GIRLS' GENERATION", '소녀시대')})
コード例 #20
0
 def test_trailing_apostrophe(self):
     names = set(split_artists("소녀시대 (Girls' Generation), 슈퍼주니어 (Super Junior)"))
     expected = {Name("Girls' Generation", '소녀시대'), Name('Super Junior', '슈퍼주니어')}
     self.assertArtistsEqual(names, expected)
コード例 #21
0
 def test_member_mix_keep_x(self):
     names = set(split_artists('주헌 (몬스타엑스) (JooHeon (MONSTA X))'))
     self.assertArtistsEqual(names, {Name('JooHeon', '주헌', extra={'group': Name('MONSTA X', '몬스타엑스')})})
コード例 #22
0
 def test_group_members(self):
     names = set(split_artists('BTOB (Eunkwang & Changsub)'))
     self.assertArtistsEqual(names, {Name('BTOB', extra={'members': [Name('Eunkwang'), Name('Changsub')]})})
コード例 #23
0
 def test_keep_x_mix_2(self):
     names = set(split_artists('MONSTA X (몬스타엑스)'))
     self.assertArtistsEqual(names, {Name('MONSTA X', '몬스타엑스')})
コード例 #24
0
 def test_eng_eng_mix(self):
     names = set(split_artists('88rising, Rich Brian, 청하 (CHUNG HA)'))
     self.assertArtistsEqual(names, {Name('88rising'), Name('Rich Brian'), Name('CHUNG HA', '청하')})
コード例 #25
0
 def test_member_from_group(self):
     names = set(split_artists('G-DRAGON (from BIGBANG)'))
     self.assertArtistsEqual(names, {Name('G-DRAGON', extra={'group': Name('BIGBANG')})})
コード例 #26
0
 def test_unbalanced_comma(self):
     names = set(split_artists('Homme (창민, 이현)'))
     expected = {Name('Homme', extra={'members': [Name(non_eng='창민'), Name(non_eng='이현')]})}
     self.assertArtistsEqual(names, expected)
コード例 #27
0
 def test_keep_parentheses_2(self):
     names = set(split_artists('(G)I-DLE ((여자)아이들)'))
     self.assertArtistsEqual(names, {Name('(G)I-DLE', '(여자)아이들')})
コード例 #28
0
 def test_mix_2(self):
     names = set(split_artists('예성 (YESUNG), 청하 (CHUNG HA)'))
     self.assertArtistsEqual(names, {Name('YESUNG', '예성'), Name('CHUNG HA', '청하')})
コード例 #29
0
 def test_no_eng(self):
     names = set(split_artists('국.슈 (국프의 핫이슈)'))
     self.assertArtistsEqual(names, {Name(non_eng='국.슈 (국프의 핫이슈)')})
コード例 #30
0
 def test_collab_group_with_members(self):
     names = set(split_artists('MOBB <MINO (from WINNER) × BOBBY (from iKON)>'))
     expected = {Name('MOBB', extra={'members': [
         Name('MINO', extra={'group': Name('WINNER')}), Name('BOBBY', extra={'group': Name('iKON')})
     ]})}
     self.assertArtistsEqual(names, expected)