1pub mod utf_16_to_utf_8;
2
3#[cfg(test)]
4mod test {
5 use utf_16_to_utf_8;
6
7 #[test]
8 fn test_utf_16_to_utf_8() {
9 let input: [u16; 5] = [0xFEFF, 0x0001, 0x0002, 0x0003, 0x00A9];
10 let mut output_count: usize = 0;
11 let mut output: [u8; 15] = [0; 15];
12
13 if utf_16_to_utf_8::utf_16_to_utf_8(&input, &mut output_count, &mut output) == true {
14 assert_eq!(5, output_count);
15 assert_eq!(0x01, output[0]);
16 assert_eq!(0x02, output[1]);
17 assert_eq!(0x03, output[2]);
18 assert_eq!(0xC2, output[3]);
19 assert_eq!(0xA9, output[4]);
20 }
21 }
22
23 #[test]
24 fn test_utf_16_be_to_utf_8() {
25 let input: [u16; 5] = [0xFEFF, 0x0001, 0x0002, 0x0003, 0x00A9];
26 let mut output_count: usize = 0;
27 let mut output: [u8; 15] = [0; 15];
28
29 if utf_16_to_utf_8::utf_16_be_to_utf_8(&input, &mut output_count, &mut output) == true {
30 assert_eq!(8, output_count);
31 assert_eq!(0xEF, output[0]);
32 assert_eq!(0xBB, output[1]);
33 assert_eq!(0xBF, output[2]);
34 assert_eq!(0x01, output[3]);
35 assert_eq!(0x02, output[4]);
36 assert_eq!(0x03, output[5]);
37 assert_eq!(0xC2, output[6]);
38 assert_eq!(0xA9, output[7]);
39 }
40 }
41
42 #[test]
43 fn test_utf_16_le_to_utf_8() {
44 let input: [u16; 5] = [0xFFFE, 0x0100, 0x0200, 0x0300, 0xA900];
45 let mut output_count: usize = 0;
46 let mut output: [u8; 15] = [0; 15];
47
48 if utf_16_to_utf_8::utf_16_le_to_utf_8(&input, &mut output_count, &mut output) == true {
49 assert_eq!(8, output_count);
50 assert_eq!(0xEF, output[0]);
51 assert_eq!(0xBB, output[1]);
52 assert_eq!(0xBF, output[2]);
53 assert_eq!(0x01, output[3]);
54 assert_eq!(0x02, output[4]);
55 assert_eq!(0x03, output[5]);
56 assert_eq!(0xC2, output[6]);
57 assert_eq!(0xA9, output[7]);
58 }
59 }
60}