2 extern crate global_counter;
8 assert_eq!(longest("abc", "de"), "abc");
9 assert_eq!(longest("abc", "def"), "def");
10 assert_eq!(longest("abc", "defg"), "defg");
14 fn test_cacher_int_int() {
15 global_default_counter!(CALLED, u32);
16 let mut cacher = Cacher::new(|x| {
20 assert_eq!(cacher.value(1), 2);
21 assert_eq!(CALLED.get_cloned(), 1);
23 assert_eq!(cacher.value(1), 2);
24 assert_eq!(CALLED.get_cloned(), 1);
25 // re-evaluated for new value
26 assert_eq!(cacher.value(-2), -4);
27 assert_eq!(CALLED.get_cloned(), 2);
28 // old arg still cached
29 assert_eq!(cacher.value(1), 2);
30 assert_eq!(CALLED.get_cloned(), 2);
34 fn test_cacher_str_usize() {
35 global_default_counter!(CALLED, u32);
36 let mut cacher = Cacher::new(|x: &str| {
40 assert_eq!(cacher.value("abc"), 3);
41 assert_eq!(CALLED.get_cloned(), 1);
43 assert_eq!(cacher.value("abc"), 3);
44 assert_eq!(CALLED.get_cloned(), 1);
45 // re-evaluated for new value
46 assert_eq!(cacher.value("defg"), 4);
47 assert_eq!(CALLED.get_cloned(), 2);
48 // old arg still cached
49 assert_eq!(cacher.value("abc"), 3);
50 assert_eq!(CALLED.get_cloned(), 2);