1#[cfg(test)]
2use std::str;
3mod array;
4
5#[test]
6fn distinct_sub_count() {
7 let s = String::from("azaza");
8 let sa = array::new(s.as_str());
9 assert_eq!(9, sa.distinct_sub_count());
10}
11
12#[test]
13fn distinct_sub() {
14 let s = String::from("azaza");
15 let sa = array::new(s.as_str());
16 let subs = sa.distinct_sub();
17 let real_subs = ["a", "az", "aza", "azaz", "azaza", "z", "za", "zaz", "zaza"];
18
19 assert_eq!(real_subs.len(), subs.len());
20
21 for i in 0..subs.len() {
22 let rs = real_subs[i].as_bytes();
23
24 for k in 0..subs[i].len() {
25 assert_eq!(rs[k], subs[i][k]);
26 }
27 }
28}
29
30#[test]
31fn sub_count() {
32 let s = String::from("azaza");
33 let sa = array::new(s.as_str());
34 assert_eq!(15, sa.sub_count());
35}
36
37#[test]
38fn longest_repeated_substr() {
39 let s = String::from("abracadabra");
40 let sa = array::new(s.as_str());
41 let lrs = sa.longest_repeated_substr();
42
43 assert_eq!(1, lrs.len());
44 assert_eq!("abra", str::from_utf8(&lrs[0]).unwrap());
45}