use ammonia::Builder; use maplit::hashset; use std::fs::File; use std::io::{self, BufRead}; use std::path::Path; pub fn read_lines
(filename: P) -> io::Result Этот роман уже стал культовым.\n Это — одна из самых читаемых книг русскоязычного Интернета, по количеству скачивании соперничающая с «Метро 2033» Глуховского и «Мародером» Беркема аль Атоми.\n Это — лучшая антиутопия о надвигающейся гражданской войне.\n Ближайшее будущее. Русофобская политика «оранжевых» разрывает Украину надвое. «Западенцы» при поддержке НАТО пытаются силой усмирить Левобережье. Восточная Малороссия отвечает оккупантам партизанской войной. Наступает беспощадная «эпоха мертворожденных»…\n ";
let expected_result = "\n Этот роман уже стал культовым.\n Это — одна из самых читаемых книг русскоязычного Интернета, по количеству скачивании соперничающая с «Метро 2033» Глуховского и «Мародером» Беркема аль Атоми.\n Это — лучшая антиутопия о надвигающейся гражданской войне.\n Ближайшее будущее. Русофобская политика «оранжевых» разрывает Украину надвое. «Западенцы» при поддержке НАТО пытаются силой усмирить Левобережье. Восточная Малороссия отвечает оккупантам партизанской войной. Наступает беспощадная «эпоха мертворожденных»…\n ";
let result = fix_annotation_text(input);
assert_eq!(result, expected_result);
}
}
", "\n")
.replace("\\n", "\n")
.replace("\\\"", "\"");
while temp_text.contains(" ") {
temp_text = temp_text.replace(" ", " ");
}
let tags = hashset!["a"];
Builder::new().tags(tags).clean(&temp_text).to_string()
}
#[cfg(test)]
mod tests {
use crate::utils::fix_annotation_text;
#[test]
fn test_fix_annotation_text_remove_extra_spaces() {
let input = " ";
let expected_result = " ";
let result = fix_annotation_text(input);
assert_eq!(result, expected_result);
}
#[test]
fn test_fix_annotation_text_replace_br() {
let input = "a
b";
let expected_result = "a\nb";
let result = fix_annotation_text(input);
assert_eq!(result, expected_result);
}
#[test]
fn test_fix_annotation_text_extra_slashes() {
let input = "a \\n b \\\"";
let expected_result = "a \n b \"";
let result = fix_annotation_text(input);
assert_eq!(result, expected_result);
}
#[test]
fn test_fix_annotation_text_large() {
let input = "\n