Bram Moolenaar | 22e4215 | 2016-04-03 14:02:02 +0200 | [diff] [blame^] | 1 | " Tests for regexp in utf8 encoding |
| 2 | if !has('multi_byte') |
| 3 | finish |
| 4 | endif |
| 5 | set encoding=utf-8 |
| 6 | scriptencoding utf-8 |
| 7 | |
| 8 | func s:equivalence_test() |
| 9 | 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źżžƶẑẕ" |
| 10 | let groups = split(str) |
| 11 | for group1 in groups |
| 12 | for c in split(group1, '\zs') |
| 13 | " next statement confirms that equivalence class matches every |
| 14 | " character in group |
| 15 | call assert_match('^[[=' . c . '=]]*$', group1) |
| 16 | for group2 in groups |
| 17 | if group2 != group1 |
| 18 | " next statement converts that equivalence class doesn't match |
| 19 | " character in any other group |
| 20 | call assert_equal(-1, match(group2, '[[=' . c . '=]]')) |
| 21 | endif |
| 22 | endfor |
| 23 | endfor |
| 24 | endfor |
| 25 | endfunc |
| 26 | |
| 27 | func Test_equivalence_re1() |
| 28 | set re=1 |
| 29 | call s:equivalence_test() |
| 30 | endfunc |
| 31 | |
| 32 | func Test_equivalence_re2() |
| 33 | set re=2 |
| 34 | call s:equivalence_test() |
| 35 | endfunc |