pub fn remove_brackets<T: Into<String>>(input: T) -> String {
let input: String = input.into();
input
.chars()
.filter(|x| !(*x == '<' || *x == '>'))
.collect::<String>()
}
#[cfg(test)]
mod test_fast {
use super::*;
#[test]
fn sanitize_string_0() {
assert_eq!("h1hello/h1", remove_brackets("<h1>hello</h1>"));
}
#[test]
fn sanitize_string_1() {
assert_eq!("h1hello/h1", remove_brackets("<<<<<h1>>>>>hello</h1>"));
}
#[test]
fn remove_brackets_empty_string() {
assert_eq!("", remove_brackets(""));
}
#[test]
fn remove_brackets_no_brackets() {
assert_eq!("hello world", remove_brackets("hello world"));
}
#[test]
fn remove_brackets_only_brackets() {
assert_eq!("", remove_brackets("<<<>>>"));
}
#[test]
fn remove_brackets_alternating_brackets_chars() {
assert_eq!("abcd", remove_brackets("<a<b>c<d>>"));
}
#[test]
fn remove_brackets_consecutive_at_beginning() {
assert_eq!("abc", remove_brackets("<<<abc"));
}
#[test]
fn remove_brackets_consecutive_at_end() {
assert_eq!("abc", remove_brackets("abc>>>"));
}
#[test]
fn remove_brackets_consecutive_in_middle() {
assert_eq!("abcd", remove_brackets("ab<<<>>>cd"));
}
#[test]
fn remove_brackets_with_special_chars() {
assert_eq!("&hello!", remove_brackets("<&hello!>"));
}
#[test]
fn remove_brackets_numbers_symbols_mixed() {
assert_eq!("123!@#456", remove_brackets("<123!@#><456>"));
}
#[test]
fn remove_brackets_only_opening_brackets() {
assert_eq!("hello", remove_brackets("<<<hello"));
}
#[test]
fn remove_brackets_only_closing_brackets() {
assert_eq!("hello", remove_brackets("hello>>>"));
}
#[test]
fn remove_brackets_unicode_chars() {
assert_eq!("你好世界", remove_brackets("<你好><世界>"));
}
}