Skip to main content

arui_core/tree/node/
count.rs

1//! # 文本统计特征相关
2//! - `get_file_count` 获取文件中文本行数
3use std::io::Error;
4
5// --------------------- 文件相关 ---------------------
6
7/// 获取文件中文本行数
8pub fn get_file_count(path: &str) -> Result<u64, Error> {
9    Ok(std::fs::read_to_string(path)?.lines().count() as u64)
10}
11
12// --------------------- 单元测试 ---------------------
13
14#[cfg(test)]
15mod tests {
16    use crate::tree::node::count::get_file_count;
17
18    #[test]
19    fn test_get_line_count_1() {
20        let path = "./tests/examples/tree/node/count/get_file_count/1.txt";
21        let count = get_file_count(path).unwrap();
22        assert_eq!(count, 11);
23    }
24
25    #[test]
26    fn test_get_line_count_2() {
27        let path = "./tests/examples/tree/node/count/get_file_count/test.rs";
28        let count = get_file_count(path).unwrap();
29        assert_eq!(count, 4);
30    }
31}