File: test_UTF8.ml

package info (click to toggle)
extlib 1.7.7-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, sid
  • size: 632 kB
  • sloc: ml: 6,980; makefile: 128; sh: 42; ansic: 31
file content (75 lines) | stat: -rw-r--r-- 1,933 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
let substring_inputs =
[
  [|
    "";
    "⟿";
    "⟿ቄ";
    "⟿ቄş";
    "⟿ቄş龟";
    "⟿ቄş龟¯";
  |];
  [|
    "";
    "ç";
    "çe";
    "çek";
    "çeko";
    "çekos";
    "çekosl";
    "çekoslo";
    "çekoslov";
    "çekoslova";
    "çekoslovak";
    "çekoslovaky";
    "çekoslovakya";
    "çekoslovakyal";
    "çekoslovakyala";
    "çekoslovakyalaş";
    "çekoslovakyalaşt";
    "çekoslovakyalaştı";
    "çekoslovakyalaştır";
    "çekoslovakyalaştıra";
    "çekoslovakyalaştıram";
    "çekoslovakyalaştırama";
    "çekoslovakyalaştıramad";
    "çekoslovakyalaştıramadı";
    "çekoslovakyalaştıramadık";
    "çekoslovakyalaştıramadıkl";
    "çekoslovakyalaştıramadıkla";
    "çekoslovakyalaştıramadıklar";
    "çekoslovakyalaştıramadıkları";
    "çekoslovakyalaştıramadıklarım";
    "çekoslovakyalaştıramadıklarımı";
    "çekoslovakyalaştıramadıklarımız";
    "çekoslovakyalaştıramadıklarımızd";
    "çekoslovakyalaştıramadıklarımızda";
    "çekoslovakyalaştıramadıklarımızdan";
    "çekoslovakyalaştıramadıklarımızdanm";
    "çekoslovakyalaştıramadıklarımızdanmı";
    "çekoslovakyalaştıramadıklarımızdanmıs";
    "çekoslovakyalaştıramadıklarımızdanmısı";
    "çekoslovakyalaştıramadıklarımızdanmısın";
    "çekoslovakyalaştıramadıklarımızdanmısını";
    "çekoslovakyalaştıramadıklarımızdanmısınız";
  |]
]

let test_substring () =
  let test a =
    let m = Array.length a - 1 in
    let v = a.(m) in
    assert(UTF8.length v = m);
    for i = 0 to m do
      assert(a.(i) = UTF8.substring v 0 i);
    done;
    for i = 0 to m - 1 do
      for j = i to m - 1 do
        let u = UTF8.substring v i (j - i + 1) in
        UTF8.validate u
      done
    done
  in
  List.iter test substring_inputs

let () =
  Util.register1 "UTF" "substring" test_substring