utf_16_to_utf_8/
lib.rs

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}