CoolFace
Modelpublic

AryaWu/sqlite

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
qrf06.test577 linesDownload Raw Back to test
1# 2025-12-022#3# The author disclaims copyright to this source code.  In place of4# a legal notice, here is a blessing:5#6#    May you do good and not evil.7#    May you find forgiveness for yourself and forgive others.8#    May you share freely, never taking more than you give.9#10#***********************************************************************11#12# Test cases for the Query Result Formatter (QRF), and especially13# the sqlite3_qrf_wcwidth() function and its utilization.14#15 16set testdir [file dirname $argv0]17source $testdir/tester.tcl18set testprefix qrf0619 20# Data21db eval {22   BEGIN TRANSACTION;23   CREATE TABLE language(name TEXT);24   INSERT INTO language(name) VALUES25     ('العربية'),26     ('Deutsch'),27     ('English'),28     ('Español'),29     ('فارسی'),30     ('Français'),31     ('Italiano'),32     ('مصرى'),33     ('Nederlands'),34     ('日本語'),35     ('Polski'),36     ('Português'),37     ('Sinugboanong Binisaya'),38     ('Svenska'),39     ('Українська'),40     ('Tiếng Việt'),41     ('Winaray'),42     ('中文'),43     ('Русский'),44     ('Afrikaans'),45     ('Shqip'),46     ('Asturianu'),47     ('Azərbaycanca'),48     ('Български'),49     ('閩南語 / Bân-lâm-gú'),50     ('বাংলা'),51     ('Беларуская'),52     ('Català'),53     ('Čeština'),54     ('Cymraeg'),55     ('Dansk'),56     ('Eesti'),57     ('Ελληνικά'),58     ('Esperanto'),59     ('Euskara'),60     ('Galego'),61     ('한국어'),62     ('Հայերեն'),63     ('हिन्दी'),64     ('Hrvatski'),65     ('Bahasa Indonesia'),66     ('עברית'),67     ('ქართული'),68     ('Ladin'),69     ('Latina'),70     ('Latviešu'),71     ('Lietuvių'),72     ('Magyar'),73     ('Македонски'),74     ('Malagasy'),75     ('मराठी'),76     ('Bahasa Melayu'),77     ('Bahaso Minangkabau'),78     ('မြန်မာဘာသာ'),79     ('Norskbokmålnynorsk'),80     ('Нохчийн'),81     ('Oʻzbekcha / Ўзбекча'),82     ('Қазақша / Qazaqşa / قازاقشا'),83     ('Română'),84     ('Simple English'),85     ('Slovenčina'),86     ('Slovenščina'),87     ('Српски / Srpski'),88     ('Srpskohrvatski / Српскохрватски'),89     ('Suomi'),90     ('Kiswahili'),91     ('தமிழ்'),92     ('Татарча / Tatarça'),93     ('తెలుగు'),94     ('ภาษาไทย'),95     ('Тоҷикӣ'),96     ('تۆرکجه'),97     ('Türkçe'),98     ('اردو'),99     ('粵語'),100     ('Bahsa Acèh'),101     ('Alemannisch'),102     ('አማርኛ'),103     ('Aragonés'),104     ('Արեւմտահայերէն'),105     ('Bahasa Hulontalo'),106     ('Basa Bali'),107     ('Bahasa Banjar'),108     ('Basa Banyumasan'),109     ('Башҡортса'),110     ('Беларуская (тарашкевіца)'),111     ('Bikol Central'),112     ('বিষ্ণুপ্রিয়া মণিপুরী'),113     ('Boarisch'),114     ('Bosanski'),115     ('Brezhoneg'),116     ('Чӑвашла'),117     ('Dagbanli'),118     ('الدارجة'),119     ('Diné Bizaad'),120     ('Emigliàn–Rumagnòl'),121     ('Fiji Hindi'),122     ('Føroyskt'),123     ('Frysk'),124     ('Fulfulde'),125     ('Gaeilge'),126     ('Gàidhlig'),127     ('گیلکی'),128     ('ગુજરાતી'),129     ('Hak-kâ-ngî / 客家語'),130     ('Hausa'),131     ('Hornjoserbsce'),132     ('Ido'),133     ('Igbo'),134     ('Ilokano'),135     ('Interlingua'),136     ('Interlingue'),137     ('Ирон'),138     ('Íslenska'),139     ('Jawa'),140     ('ಕನ್ನಡ'),141     ('Kapampangan'),142     ('ភាសាខ្មែរ'),143     ('Kotava'),144     ('Kreyòl Ayisyen'),145     ('Kurdî / كوردی'),146     ('کوردیی ناوەندی'),147     ('Кыргызча'),148     ('Кырык мары'),149     ('Lëtzebuergesch'),150     ('Lìgure'),151     ('Limburgs'),152     ('Lombard'),153     ('मैथिली'),154     ('മലയാളം'),155     ('მარგალური'),156     ('مازِرونی'),157     ('Mìng-dĕ̤ng-ngṳ̄ / 閩東語'),158     ('Монгол'),159     ('Napulitano'),160     ('नेपाल भाषा'),161     ('Nordfriisk'),162     ('Occitan'),163     ('Олык марий'),164     ('ଓଡି଼ଆ'),165     ('অসমীযা়'),166     ('ਪੰਜਾਬੀ'),167     ('پنجابی (شاہ مکھی)'),168     ('پښتو'),169     ('Piemontèis'),170     ('Plattdüütsch'),171     ('Qaraqalpaqsha'),172     ('Qırımtatarca'),173     ('Runa Simi'),174     ('Русиньскый'),175     ('संस्कृतम्'),176     ('ᱥᱟᱱᱛᱟᱲᱤ'),177     ('سرائیکی'),178     ('Саха Тыла'),179     ('Scots'),180     ('ChiShona'),181     ('Sicilianu'),182     ('සිංහල'),183     ('سنڌي'),184     ('Ślůnski'),185     ('Basa Sunda'),186     ('Taclḥit'),187     ('Tagalog'),188     ('ၽႃႇသႃႇတႆး'),189     ('ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ'),190     ('tolışi'),191     ('chiTumbuka'),192     ('Basa Ugi'),193     ('Vèneto'),194     ('Volapük'),195     ('Walon'),196     ('文言'),197     ('吴语'),198     ('ייִדיש'),199     ('Yorùbá'),200     ('Zazaki'),201     ('žemaitėška'),202     ('isiZulu'),203     ('नेपाली'),204     ('ꯃꯤꯇꯩ ꯂꯣꯟ'),205     ('Dzhudezmo / לאדינו'),206     ('Адыгэбзэ'),207     ('Ænglisc'),208     ('Anarâškielâ'),209     ('अंगिका'),210     ('Аԥсшәа'),211     ('armãneashti'),212     ('Arpitan'),213     ('atikamekw'),214     ('ܐܬܘܪܝܐ'),215     ('Avañe’ẽ'),216     ('Авар'),217     ('Aymar'),218     ('Batak Toba'),219     ('Betawi'),220     ('भोजपुरी'),221     ('Bislama'),222     ('བོད་ཡིག'),223     ('Буряад'),224     ('Chavacano de Zamboanga'),225     ('Chichewa'),226     ('Corsu'),227     ('Vahcuengh / 話僮'),228     ('Dagaare'),229     ('Davvisámegiella'),230     ('Deitsch'),231     ('ދިވެހިބަސް'),232     ('Dolnoserbski'),233     ('Dusun Bundu-liwan'),234     ('Эрзянь'),235     ('Estremeñu'),236     ('Eʋegbe'),237     ('Farefare'),238     ('Fɔ̀ngbè'),239     ('Furlan'),240     ('Gaelg'),241     ('Gagauz'),242     ('ГӀалгӀай'),243     ('Ghanaian Pidgin'),244     ('Gĩkũyũ'),245     ('赣语 / 贛語'),246     ('Gungbe'),247     ('Хальмг'),248     ('ʻŌlelo Hawaiʻi'),249     ('Ikinyarwanda'),250     ('Jaku Iban'),251     ('Kabɩyɛ'),252     ('Yerwa Kanuri'),253     ('Kaszëbsczi'),254     ('Kernewek'),255     ('Коми'),256     ('Перем коми'),257     ('Kongo'),258     ('कोंकणी / Konknni'),259     ('كٲشُر'),260     ('Kriyòl Gwiyannen'),261     ('Kumoring'),262     ('Kʋsaal'),263     ('ພາສາລາວ'),264     ('Лакку'),265     ('Latgaļu'),266     ('Лезги'),267     ('Li Niha'),268     ('Lingála'),269     ('Lingua Franca Nova'),270     ('livvinkarjala'),271     ('lojban'),272     ('Luganda'),273     ('Madhurâ'),274     ('Malti'),275     ('Mandailing'),276     ('Māori'),277     ('Mfantse'),278     ('Mirandés'),279     ('Мокшень'),280     ('ဘာသာ မန်'),281     ('Moore'),282     ('ߒߞߏ'),283     ('Na Vosa Vaka-Viti'),284     ('Nāhuatlahtōlli'),285     ('Naijá'),286     ('Nedersaksisch'),287     ('Nouormand / Normaund'),288     ('Novial'),289     ('Afaan Oromoo'),290     ('ပအိုဝ်ႏဘာႏသာႏ'),291     ('Pangasinán'),292     ('Pangcah'),293     ('Papiamentu'),294     ('Patois'),295     ('Pfälzisch'),296     ('Picard'),297     ('Къарачай–малкъар'),298     ('Ripoarisch'),299     ('Rumantsch'),300     ('Sakizaya'),301     ('Gagana Sāmoa'),302     ('Sardu'),303     ('Seediq'),304     ('Seeltersk'),305     ('Sesotho'),306     ('Sesotho sa Leboa'),307     ('Setswana'),308     ('ꠍꠤꠟꠐꠤ'),309     ('Словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ'),310     ('Soomaaliga'),311     ('Sranantongo'),312     ('SiSwati'),313     ('Reo tahiti'),314     ('Taqbaylit'),315     ('Tarandíne'),316     ('Tayal'),317     ('Tetun'),318     ('Tok Pisin'),319     ('faka Tonga'),320     ('Türkmençe'),321     ('Twi'),322     ('Tyap'),323     ('Тыва дыл'),324     ('Удмурт'),325     ('ئۇيغۇرچه'),326     ('Vepsän'),327     ('võro'),328     ('West-Vlams'),329     ('Wolof'),330     ('isiXhosa'),331     ('Zeêuws'),332     ('алтай тил'),333     ('अवधी'),334     ('डोटेली'),335     ('ತುಳು'),336     ('ရခိုင်'),337     ('Bajau Sama'),338     ('Bamanankan'),339     ('Chamoru'),340     ('རྫོང་ཁ'),341     ('𐌲𐌿𐍄𐌹𐍃𐌺x'),342     ('Igala'),343     ('ᐃᓄᒃᑎᑐᑦ / Inuktitut'),344     ('Iñupiak'),345     ('isiNdebele seSewula'),346     ('Kalaallisut'),347     ('Nupe'),348     ('Obolo'),349     ('पालि'),350     ('pinayuanan'),351     ('Ποντιακά'),352     ('romani čhib'),353     ('Ikirundi'),354     ('руски'),355     ('Sängö'),356     ('ᥖᥭᥰᥖᥬᥳᥑᥨᥒᥰ'),357     ('ትግርኛ'),358     ('Thuɔŋjäŋ'),359     ('ᏣᎳᎩ'),360     ('Tsėhesenėstsestotse'),361     ('Xitsonga'),362     ('Tshivenḓa'),363     ('Wayuunaiki'),364     ('адыгабзэ');365   COMMIT;366}367 368do_test 1.2 {369  set res \n[db format -style box {370    SELECT name, rowid AS id FROM language371     WHERE length(name)=2372     ORDER BY name373  }]374  set exp {375╭──────┬─────╮376│ name │ id  │377╞══════╪═════╡378│ 中文 │  18 │379│ 吴语 │ 173 │380│ 文言 │ 172 │381│ 粵語 │  75 │382╰──────┴─────╯383}384  if {$res ne $exp} {385    puts [list $res]386    puts [list $exp]387  }388  string compare $res $exp389} {0}390 391do_test 1.3 {392  set res \n[db format -style box {393    SELECT name, rowid AS id FROM language394     WHERE length(name)=3395     ORDER BY name396  }]397  set exp {398╭────────┬─────╮399│  name  │ id  │400╞════════╪═════╡401│ Ido    │ 108 │402│ Twi    │ 297 │403│ ߒߞߏ    │ 258 │404│ ᏣᎳᎩ    │ 335 │405│ 日本語 │  10 │406│ 한국어 │  37 │407╰────────┴─────╯408}409  if {$res ne $exp} {410    puts [list $res]411    puts [list $exp]412  }413  string compare $res $exp414} {0}415 416do_test 1.4 {417  set res \n[db format -style box {418    SELECT name, rowid AS id FROM language419     WHERE length(name)=4420     ORDER BY name421  }]422  set exp {423╭──────┬─────╮424│ name │ id  │425╞══════╪═════╡426│ Igbo │ 109 │427│ Jawa │ 115 │428│ Nupe │ 323 │429│ Tyap │ 298 │430│ võro │ 303 │431│ Авар │ 192 │432│ Ирон │ 113 │433│ Коми │ 231 │434│ اردو │  74 │435│ سنڌي │ 159 │436│ مصرى │   8 │437│ پښتو │ 144 │438│ अवधी │ 309 │439│ पालि │ 325 │440│ ತುಳು │ 311 │441│ ትግርኛ │ 333 │442│ አማርኛ │  78 │443╰──────┴─────╯444}445  if {$res ne $exp} {446    puts [list $res]447    puts [list $exp]448  }449  string compare $res $exp450} {0}451 452do_test 1.5 {453  set res \n[db format -style box {454    SELECT name, rowid AS id FROM language455     WHERE length(name)=5456     ORDER BY name457  }]458  set exp {459╭───────┬─────╮460│ name  │ id  │461╞═══════╪═════╡462│ Aymar │ 193 │463│ Corsu │ 202 │464│ Dansk │  31 │465│ Eesti │  32 │466│ Frysk │  99 │467│ Gaelg │ 216 │468│ Hausa │ 106 │469│ Igala │ 318 │470│ Kongo │ 233 │471│ Ladin │  44 │472│ Malti │ 250 │473│ Moore │ 257 │474│ Māori │ 252 │475│ Naijá │ 261 │476│ Obolo │ 324 │477│ Sardu │ 278 │478│ Scots │ 155 │479│ Shqip │  21 │480│ Suomi │  65 │481│ Sängö │ 331 │482│ Tayal │ 292 │483│ Tetun │ 293 │484│ Walon │ 171 │485│ Wolof │ 305 │486│ Лакку │ 240 │487│ Лезги │ 242 │488│ руски │ 330 │489│ עברית │  42 │490│ فارسی │   5 │491│ كٲشُر  │ 235 │492│ گیلکی │ 103 │493│ मराठी │  51 │494│ বাংলা │  26 │495│ ଓଡି଼ଆ   │ 140 │496│ தமிழ்  │  67 │497│ ಕನ್ನಡ  │ 116 │498│ සිංහල  │ 158 │499│ ꠍꠤꠟꠐꠤ │ 284 │500╰───────┴─────╯501}502  if {$res ne $exp} {503    puts [list $res]504    puts [list $exp]505  }506  string compare $res $exp507} {0}508 509do_test 1.6 {510  set res \n[db format -style box {511    SELECT name, rowid AS id FROM language512     WHERE length(name)=6513     ORDER BY name514  }]515  set exp {516╭────────┬─────╮517│  name  │ id  │518╞════════╪═════╡519│ Betawi │ 195 │520│ Català │  28 │521│ Eʋegbe │ 212 │522│ Furlan │ 215 │523│ Gagauz │ 217 │524│ Galego │  36 │525│ Gungbe │ 222 │526│ Gĩkũyũ │ 220 │527│ Kabɩyɛ │ 227 │528│ Kotava │ 119 │529│ Kʋsaal │ 238 │530│ Latina │  45 │531│ Lìgure │ 126 │532│ Magyar │  48 │533│ Novial │ 264 │534│ Patois │ 270 │535│ Picard │ 272 │536│ Polski │  11 │537│ Română │  59 │538│ Seediq │ 279 │539│ Türkçe │  73 │540│ Vepsän │ 302 │541│ Vèneto │ 169 │542│ Yorùbá │ 175 │543│ Zazaki │ 176 │544│ Zeêuws │ 307 │545│ lojban │ 247 │546│ tolışi │ 166 │547│ Аԥсшәа │ 186 │548│ Буряад │ 199 │549│ Монгол │ 134 │550│ Тоҷикӣ │  71 │551│ Удмурт │ 300 │552│ Хальмг │ 223 │553│ Эрзянь │ 210 │554│ ייִדיש  │ 174 │555│ تۆرکجه │  72 │556│ ܐܬܘܪܝܐ │ 190 │557│ अंगिका  │ 185 │558│ डोटेली  │ 310 │559│ नेपाली  │ 179 │560│ मैथिली  │ 129 │561│ हिन्दी  │  39 │562│ ਪੰਜਾਬੀ  │ 142 │563│ తెలుగు  │  69 │564│ മലയാളം │ 130 │565│ རྫོང་ཁ   │ 316 │566│ ရခိုင်    │ 312 │567╰────────┴─────╯568}569  if {$res ne $exp} {570    puts [list $res]571    puts [list $exp]572  }573  string compare $res $exp574} {0}575 576finish_test577