mirror of
https://github.com/XAMPPRocky/tokei
synced 2024-10-04 06:49:07 +00:00
89 lines
2.4 KiB
Rust
89 lines
2.4 KiB
Rust
extern crate ignore;
|
|
extern crate regex;
|
|
extern crate tokei;
|
|
|
|
use std::fs;
|
|
|
|
use once_cell::sync::Lazy;
|
|
use regex::Regex;
|
|
use tokei::{Config, Languages};
|
|
|
|
static LINES: Lazy<Regex> = Lazy::new(|| Regex::new(r"\d+ lines").unwrap());
|
|
static CODE: Lazy<Regex> = Lazy::new(|| Regex::new(r"\d+ code").unwrap());
|
|
static COMMENTS: Lazy<Regex> = Lazy::new(|| Regex::new(r"\d+ comments").unwrap());
|
|
static BLANKS: Lazy<Regex> = Lazy::new(|| Regex::new(r"\d+ blanks").unwrap());
|
|
|
|
macro_rules! get_digit {
|
|
($regex:expr, $text:expr) => {{
|
|
let matched = $regex.find(&$text).expect("Couldn't find category");
|
|
matched
|
|
.as_str()
|
|
.split_whitespace()
|
|
.next()
|
|
.unwrap()
|
|
.parse::<usize>()
|
|
.unwrap()
|
|
}};
|
|
}
|
|
|
|
mod config {
|
|
use tokei::*;
|
|
|
|
/*
|
|
#[test]
|
|
fn extension_change() {
|
|
use std::collections::HashMap;
|
|
let mut languages = Languages::new();
|
|
let config = Config {
|
|
languages: {
|
|
let mut map = HashMap::new();
|
|
let mut config = LanguageConfig::new();
|
|
config.extensions(vec![String::from("cpp")]);
|
|
map.insert(LanguageType::C, config);
|
|
|
|
Some(map)
|
|
},
|
|
..Config::default()
|
|
};
|
|
|
|
languages.get_statistics(&["tests/data/cpp.cpp"], &[], &config);
|
|
|
|
if languages.len() != 1 {
|
|
panic!("wrong languages detected: expected just C, found {:?}",
|
|
languages.into_iter().collect::<Vec<_>>());
|
|
}
|
|
|
|
let (name, _) = languages.into_iter().next().unwrap();
|
|
|
|
assert_eq!(LanguageType::C, name);
|
|
}
|
|
*/
|
|
|
|
#[test]
|
|
fn treating_comments_as_code() {
|
|
let mut languages = Languages::new();
|
|
let config = Config {
|
|
treat_doc_strings_as_comments: Some(true),
|
|
..Config::default()
|
|
};
|
|
|
|
languages.get_statistics(&["tests/data/python.py"], &[], &config);
|
|
|
|
if languages.len() != 1 {
|
|
panic!(
|
|
"wrong languages detected: expected just Python, found {:?}",
|
|
languages.into_iter().collect::<Vec<_>>()
|
|
);
|
|
}
|
|
|
|
let (_, language) = languages.into_iter().next().unwrap();
|
|
|
|
assert_eq!(language.lines(), 15);
|
|
assert_eq!(language.blanks, 3);
|
|
assert_eq!(language.comments, 7);
|
|
assert_eq!(language.code, 5);
|
|
}
|
|
}
|
|
|
|
include!(concat!(env!("OUT_DIR"), "/tests.rs"));
|