| use super::*; |
| |
| #[test] |
| fn test_all_except_most_recent() { |
| assert_eq!(all_except_most_recent( |
| vec![ |
| (UNIX_EPOCH + Duration::new(4, 0), PathBuf::from("4"), None), |
| (UNIX_EPOCH + Duration::new(1, 0), PathBuf::from("1"), None), |
| (UNIX_EPOCH + Duration::new(5, 0), PathBuf::from("5"), None), |
| (UNIX_EPOCH + Duration::new(3, 0), PathBuf::from("3"), None), |
| (UNIX_EPOCH + Duration::new(2, 0), PathBuf::from("2"), None), |
| ]).keys().cloned().collect::<FxHashSet<PathBuf>>(), |
| vec![ |
| PathBuf::from("1"), |
| PathBuf::from("2"), |
| PathBuf::from("3"), |
| PathBuf::from("4"), |
| ].into_iter().collect::<FxHashSet<PathBuf>>() |
| ); |
| |
| assert_eq!(all_except_most_recent( |
| vec![ |
| ]).keys().cloned().collect::<FxHashSet<PathBuf>>(), |
| FxHashSet::default() |
| ); |
| } |
| |
| #[test] |
| fn test_timestamp_serialization() { |
| for i in 0 .. 1_000u64 { |
| let time = UNIX_EPOCH + Duration::new(i * 1_434_578, (i as u32) * 239_000); |
| let s = timestamp_to_string(time); |
| assert_eq!(Ok(time), string_to_timestamp(&s)); |
| } |
| } |
| |
| #[test] |
| fn test_find_source_directory_in_iter() { |
| let already_visited = FxHashSet::default(); |
| |
| // Find newest |
| assert_eq!(find_source_directory_in_iter( |
| vec![PathBuf::from("crate-dir/s-3234-0000-svh"), |
| PathBuf::from("crate-dir/s-2234-0000-svh"), |
| PathBuf::from("crate-dir/s-1234-0000-svh")].into_iter(), &already_visited), |
| Some(PathBuf::from("crate-dir/s-3234-0000-svh"))); |
| |
| // Filter out "-working" |
| assert_eq!(find_source_directory_in_iter( |
| vec![PathBuf::from("crate-dir/s-3234-0000-working"), |
| PathBuf::from("crate-dir/s-2234-0000-svh"), |
| PathBuf::from("crate-dir/s-1234-0000-svh")].into_iter(), &already_visited), |
| Some(PathBuf::from("crate-dir/s-2234-0000-svh"))); |
| |
| // Handle empty |
| assert_eq!(find_source_directory_in_iter(vec![].into_iter(), &already_visited), |
| None); |
| |
| // Handle only working |
| assert_eq!(find_source_directory_in_iter( |
| vec![PathBuf::from("crate-dir/s-3234-0000-working"), |
| PathBuf::from("crate-dir/s-2234-0000-working"), |
| PathBuf::from("crate-dir/s-1234-0000-working")].into_iter(), &already_visited), |
| None); |
| } |