blob: b288ac2561fa5ed05932adc4c919c044d16fc73d (
plain)
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
|
(* Correct escapes and their encoding *)
let () =
assert ("\xF0\x9F\x90\xAB" = "\u{1F42B}");
assert ("\xF0\x9F\x90\xAB" = "\u{01F42B}");
assert ("\x00" = "\u{0}");
assert ("\x00" = "\u{00}");
assert ("\x00" = "\u{000}");
assert ("\x00" = "\u{0000}");
assert ("\x00" = "\u{00000}");
assert ("\x00" = "\u{000000}");
assert ("\xC3\xA9" = "\u{E9}");
assert ("\xC3\xA9" = "\u{0E9}");
assert ("\xC3\xA9" = "\u{00E9}");
assert ("\xC3\xA9" = "\u{000E9}");
assert ("\xC3\xA9" = "\u{0000E9}");
assert ("\xC3\xA9" = "\u{0000E9}");
assert ("\xF4\x8F\xBF\xBF" = "\u{10FFFF}");
()
;;
(* Errors *)
let invalid_sv = "\u{0D800}" ;;
let invalid_sv = "\u{D800}" ;;
let invalid_sv = "\u{D900}" ;;
let invalid_sv = "\u{DFFF}" ;;
let invalid_sv = "\u{110000} ;;
let too_many_digits = "\u{01234567}" ;;
let no_hex_digits = "\u{}" ;;
let illegal_hex_digit = "\u{u}" ;;
|