aboutsummaryrefslogtreecommitdiff
path: root/v_windows/v/old/vlib/encoding/utf8/utf8_util_test.v
diff options
context:
space:
mode:
authorIndrajith K L2022-12-03 17:00:20 +0530
committerIndrajith K L2022-12-03 17:00:20 +0530
commitf5c4671bfbad96bf346bd7e9a21fc4317b4959df (patch)
tree2764fc62da58f2ba8da7ed341643fc359873142f /v_windows/v/old/vlib/encoding/utf8/utf8_util_test.v
downloadcli-tools-windows-master.tar.gz
cli-tools-windows-master.tar.bz2
cli-tools-windows-master.zip
Adds most of the toolsHEADmaster
Diffstat (limited to 'v_windows/v/old/vlib/encoding/utf8/utf8_util_test.v')
-rw-r--r--v_windows/v/old/vlib/encoding/utf8/utf8_util_test.v66
1 files changed, 66 insertions, 0 deletions
diff --git a/v_windows/v/old/vlib/encoding/utf8/utf8_util_test.v b/v_windows/v/old/vlib/encoding/utf8/utf8_util_test.v
new file mode 100644
index 0000000..f09cb76
--- /dev/null
+++ b/v_windows/v/old/vlib/encoding/utf8/utf8_util_test.v
@@ -0,0 +1,66 @@
+import encoding.utf8
+
+fn test_utf8_util() {
+ // string test
+ src := 'ăĂ ôÔ testo 怔' //_\u1E5A\u1E5B<=>\u1F49\u1F41<=>\u0128\u012a\u012c" // len 29 runes, raw 49 bytes
+ src_upper := 'ĂĂ ÔÔ TESTO Æ€”' //_\u1E5A\u1E5A<=>\u1F49\u1F49<=>\u0128\u012A\u012C"
+ src_lower := 'ăă ôô testo 怔' //_\u1E5B\u1E5B<=>\u1F41\u1F41<=>\u0129\u012B\u012D"
+ upper := utf8.to_upper(src)
+ lower := utf8.to_lower(src)
+ assert upper == src_upper
+ assert lower == src_lower
+
+ assert utf8.to_upper('абвёabc12{') == 'АБВЁABC12{'
+ assert utf8.to_lower('АБВЁABC12{') == 'абвёabc12{'
+
+ // test len function
+ assert utf8.len('') == 0
+ assert utf8.len('pippo') == 5
+ assert utf8.len(src) == 15 // 29
+ assert src.len == 24 // 49
+
+ // western punctuation
+ a := '.abc?abcòàè.'
+ assert utf8.is_punct(a, 0) == true
+ assert utf8.is_punct('b', 0) == false
+ assert utf8.is_uchar_punct(0x002E) == true
+ assert utf8.is_punct(a, 4) == true // ?
+ assert utf8.is_punct(a, 14) == true // last .
+ assert utf8.is_punct(a, 12) == false // è
+ println('OK western')
+
+ // global punctuation
+ b := '.ĂĂa. ÔÔ TESTO Æ€'
+ assert utf8.is_global_punct(b, 0) == true
+ assert utf8.is_global_punct('.', 0) == true
+ assert utf8.is_uchar_punct(0x002E) == true
+ assert utf8.is_global_punct(b, 6) == true // .
+ assert utf8.is_global_punct(b, 1) == false // a
+
+ // test utility functions
+ assert utf8.get_uchar(b, 0) == 0x002E
+}
+
+fn test_raw_indexing() {
+ a := '我是V Lang!'
+
+ // test non ascii characters
+ assert utf8.raw_index(a, 0) == '我'
+ assert utf8.raw_index(a, 1) == '是'
+
+ // test ascii characters
+ assert utf8.raw_index(a, 2) == 'V'
+ assert utf8.raw_index(a, 3) == ' '
+ assert utf8.raw_index(a, 4) == 'L'
+ assert utf8.raw_index(a, 5) == 'a'
+ assert utf8.raw_index(a, 6) == 'n'
+ assert utf8.raw_index(a, 7) == 'g'
+ assert utf8.raw_index(a, 8) == '!'
+}
+
+fn test_reversed() {
+ a := '我是V Lang!'
+ b := '你好世界hello world'
+ assert utf8.reverse(a) == '!gnaL V是我'
+ assert utf8.reverse(b) == 'dlrow olleh界世好你'
+}