def test_free_key_position(self): eq_(process_sequence('toios'), 'tối') eq_(process_sequence('toois'), 'tối') eq_(process_sequence('toosi'), 'tối') eq_(process_sequence('tuyenre'), 'tuyển') eq_(process_sequence('tuyener'), 'tuyển') eq_(process_sequence('tuyeren'), 'tuyển') eq_(process_sequence('tuyerne'), 'tuyển') eq_(process_sequence('tuyeern'), 'tuyển') eq_(process_sequence('tuyeenr'), 'tuyển') eq_(process_sequence('tuwrowng'), 'tưởng')
def test_non_vn(self): def atomic(word): eq_(process_sequence(word), word) tests = [ "system", "Virtualbox", "VMWare", "Microsoft", "Google", "Installation", "teardown", "generators", "event-driven", "flow" ] for test in tests: yield atomic, test eq_(process_sequence("aans."), "ấn.") eq_(process_sequence("aans]"), "ấn]") # eq_(process_sequence("aans.tuongwj"), "ấn.tượng") eq_(process_sequence("gi[f"), "giờ")
def on_left_delete(self): if self.sequence == "": self.reset() self.view.run_command('left_delete') else: # FIXME: We are not using the `im_rules` argument self.sequence = core.handle_backspace( self.previously_committed_string,self.sequence) self.commit(core.process_sequence(self.sequence))
def on_new_char(self, char): if self.sequence == "" and len(self.view.sel()) == 1: # Try to continue from the existing string at the cursor # position only if there is only one cursor. # Things would get weird if there are several cursors # with different words under each. word_under_cursor = self.view.substr( self.view.word(self.view.sel()[0])) if word_under_cursor.isalpha(): self.sequence = word_under_cursor self.previously_committed_string = self.sequence self.sequence += char result = core.process_sequence(self.sequence) self.commit(result)
def test_undo(self): eq_(process_sequence('aaa'), 'aa') eq_(process_sequence('aww'), 'aw') eq_(process_sequence('ass'), 'as') eq_(process_sequence('aff'), 'af') eq_(process_sequence('arr'), 'ar') eq_(process_sequence('axx'), 'ax') eq_(process_sequence('ajj'), 'aj') eq_(process_sequence('uww'), 'uw') eq_(process_sequence('oww'), 'ow') eq_(process_sequence('huww'), 'huw') eq_(process_sequence('hww'), 'hw') eq_(process_sequence('ww'), 'w') eq_(process_sequence('uww'), 'uw') eq_(process_sequence('DDd'), 'Dd') eq_(process_key_no_skip('Loorngr'), 'Lôngr') eq_(process_key_no_skip('LOorngr'), 'LÔngr') eq_(process_key_no_skip('DDoongd'), 'Dôngd') eq_(process_key_no_skip('DDuowngd'), 'Dươngd') eq_(process_key_no_skip('Duowngw'), 'Duongw')
def test_bug_93(self): eq_(process_sequence("{{"), "{") eq_(process_sequence("}}"), "}")
def atomic(word, sequence): eq_(word, process_sequence(sequence))
def test_change_tone(self): eq_(process_sequence('meofs'), 'méo') eq_(process_sequence('mèos'), 'méo')
def test_with_separator(self): eq_(process_sequence('con meof dideen'), 'con mèo điên') eq_(process_sequence('con.meof'), 'con.mèo') eq_(process_sequence('con?meof'), 'con?mèo')
def atomic(word): eq_(process_sequence(word), word)
def test_normal_typing(self): eq_(process_sequence('v'), 'v') eq_(process_sequence('aw'), 'ă') eq_(process_sequence('w'), 'ư') eq_(process_sequence('ow'), 'ơ') eq_(process_sequence('oo'), 'ô') eq_(process_sequence('Oo'), 'Ô') eq_(process_sequence('dd'), 'đ') eq_(process_sequence('muaf'), 'mùa') eq_(process_sequence('Doongd'), 'Đông') eq_(process_sequence('gif'), 'gì') eq_(process_sequence('loAnj'), 'loẠn') eq_(process_sequence('muongw'), 'mương') eq_(process_sequence('qur'), 'qur') eq_(process_sequence('Tosan'), 'Toán') eq_(process_sequence('tusnw'), 'tứn') eq_(process_sequence('dee'), 'dê') eq_(process_sequence('mowis'), 'mới') eq_(process_sequence('uwa'), 'ưa') eq_(process_sequence('uwo'), 'ưo') eq_(process_sequence('ddx'), 'đx') eq_(process_sequence('hoacw'), 'hoăc') eq_(process_sequence('cuooi'), 'cuôi') eq_(process_sequence('tooi'), 'tôi') eq_(process_sequence('chuyeenr'), 'chuyển') eq_(process_sequence('ddoonjg'), 'động') eq_(process_sequence('nheechs'), 'nhếch') # uơ related eq_(process_sequence('quowr'), 'quở') eq_(process_sequence('huow'), 'huơ') eq_(process_sequence('thuowr'), 'thuở') eq_(process_sequence('QUOWR'), 'QUỞ') eq_(process_sequence('HUOW'), 'HUƠ') eq_(process_sequence('THUOWR'), 'THUỞ') # English words eq_(process_key_no_skip('case'), 'cáe') eq_(process_key_no_skip('reset'), 'rết')
def test_bugs_related(self): # naỳ. eq_(process_sequence('nayf.'), 'này.') # nguời eq_(process_sequence('nguowif'), 'người') eq_(process_sequence('nguwowif'), 'người') # thươ. eq_(process_sequence("thuowr."), "thuở.") eq_(process_sequence("[["), "[") eq_(process_sequence("[["), "[") # BUG #77 eq_(process_sequence("ddiemer"), "điểm") # BUG #78 eq_(process_sequence("tuoufw"), "tườu") # BUG #79 eq_(process_sequence("huoswc"), "hước") # BUG #81 eq_(process_sequence("khoefo"), "khoèo") # BUG #82 eq_(process_sequence("uorw"), "uở")