pub mod mapping;
use crate::transform;
pub fn letters_to_runes(content: &str) -> String {
letters_to_long_branch_runes(content)
}
pub fn letters_to_long_branch_runes(content: &str) -> String {
let letter_map = mapping::get_letters_to_long_branch_runes_map();
transform::with_dictionary(content, &letter_map)
}
pub fn letters_to_short_twig_runes(content: &str) -> String {
let letter_map = mapping::get_letters_to_short_twig_runes_map();
transform::with_dictionary(content, &letter_map)
}
pub fn runes_to_letters(content: &str) -> String {
let rune_map = mapping::get_runes_to_letters_map();
transform::with_dictionary(content, &rune_map)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn transforms_letters_to_younger_futhark_default_function() {
let content = "aábcdðeéfghiíjklmnoópqrstþuúvwxyýzåäæœöøǫþ";
let expected = "ᛅᛅᛒᛋᛏᚦᛁᛁᚠᚴᚼᛁᛁᛁᚴᛚᛘᚾᚢᚢᛒᚴᚱᛋᛏᚦᚢᚢᚢᚢᛋᚢᚢᛋᚢᛅᛅᚢᚢᚢᚢᚦ";
let result = letters_to_runes(content);
assert_eq!(result, expected);
}
#[test]
fn transforms_letters_to_long_branch_runes() {
let content = "aábcdðeéfghiíjklmnoópqrstþuúvwxyýzåäæœöøǫþ";
let expected = "ᛅᛅᛒᛋᛏᚦᛁᛁᚠᚴᚼᛁᛁᛁᚴᛚᛘᚾᚢᚢᛒᚴᚱᛋᛏᚦᚢᚢᚢᚢᛋᚢᚢᛋᚢᛅᛅᚢᚢᚢᚢᚦ";
let result = letters_to_long_branch_runes(content);
assert_eq!(result, expected);
}
#[test]
fn transforms_letters_to_short_twig_runes() {
let content = "aábcdðeéfghiíjklmnoópqrstþuúvwxyýzåäæœöøǫþ";
let expected = "ᛆᛆᛒᛌᛐᚦᛁᛁᚠᚴᚽᛁᛁᛁᚴᛚᛘᚿᚢᚢᛒᚴᚱᛌᛐᚦᚢᚢᚢᚢᛌᚢᚢᛌᚢᛆᛆᚢᚢᚢᚢᚦ";
let result = letters_to_short_twig_runes(content);
assert_eq!(result, expected);
}
#[test]
fn transforms_runes_to_letters() {
let long_branch = "ᚠᚢᚦᚬᚱᚴᚼᚽᚾᚿᛁᛅᛆᛋᛌᛏᛐᛒᛘᛚᛦ:";
let short_twig = "ᚠᚢᚦᚬᚱᚴᚽᚽᚿᚿᛁᛆᛆᛌᛌᛐᛐᛒᛘᛚᛦ:";
let expected = "fuþorkhhnniaassttbmlR ";
let long_branch_result = runes_to_letters(long_branch);
let short_twig_result = runes_to_letters(short_twig);
assert_eq!(long_branch_result, expected);
assert_eq!(short_twig_result, expected);
}
}