mirror of
https://github.com/vim/vim.git
synced 2025-09-23 03:43:49 -04:00
patch 7.4.1700
Problem: Equivalence classes are not properly tested. Solution: Add tests for multi-byte and latin1. Fix an error. (Owen Leibman)
This commit is contained in:
35
src/testdir/test_regexp_utf8.vim
Normal file
35
src/testdir/test_regexp_utf8.vim
Normal file
@@ -0,0 +1,35 @@
|
||||
" Tests for regexp in utf8 encoding
|
||||
if !has('multi_byte')
|
||||
finish
|
||||
endif
|
||||
set encoding=utf-8
|
||||
scriptencoding utf-8
|
||||
|
||||
func s:equivalence_test()
|
||||
let str = "AÀÁÂÃÄÅĀĂĄǍǞǠẢ BḂḆ CÇĆĈĊČ DĎĐḊḎḐ EÈÉÊËĒĔĖĘĚẺẼ FḞ GĜĞĠĢǤǦǴḠ HĤĦḢḦḨ IÌÍÎÏĨĪĬĮİǏỈ JĴ KĶǨḰḴ LĹĻĽĿŁḺ MḾṀ NÑŃŅŇṄṈ OÒÓÔÕÖØŌŎŐƠǑǪǬỎ PṔṖ Q RŔŖŘṘṞ SŚŜŞŠṠ TŢŤŦṪṮ UÙÚÛÜŨŪŬŮŰŲƯǓỦ VṼ WŴẀẂẄẆ XẊẌ YÝŶŸẎỲỶỸ ZŹŻŽƵẐẔ aàáâãäåāăąǎǟǡả bḃḇ cçćĉċč dďđḋḏḑ eèéêëēĕėęěẻẽ fḟ gĝğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįǐỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṁ nñńņňʼnṅṉ oòóôõöøōŏőơǒǫǭỏ pṕṗ q rŕŗřṙṟ sśŝşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vṽ wŵẁẃẅẇẘ xẋẍ yýÿŷẏẙỳỷỹ zźżžƶẑẕ"
|
||||
let groups = split(str)
|
||||
for group1 in groups
|
||||
for c in split(group1, '\zs')
|
||||
" next statement confirms that equivalence class matches every
|
||||
" character in group
|
||||
call assert_match('^[[=' . c . '=]]*$', group1)
|
||||
for group2 in groups
|
||||
if group2 != group1
|
||||
" next statement converts that equivalence class doesn't match
|
||||
" character in any other group
|
||||
call assert_equal(-1, match(group2, '[[=' . c . '=]]'))
|
||||
endif
|
||||
endfor
|
||||
endfor
|
||||
endfor
|
||||
endfunc
|
||||
|
||||
func Test_equivalence_re1()
|
||||
set re=1
|
||||
call s:equivalence_test()
|
||||
endfunc
|
||||
|
||||
func Test_equivalence_re2()
|
||||
set re=2
|
||||
call s:equivalence_test()
|
||||
endfunc
|
Reference in New Issue
Block a user