titlefmt 0.4.0

Metadata Title Formatting Library
Documentation
use std::collections::HashMap;
use {test, Formatter};

#[test]
fn test_function_left_cut() {
    let formatter = Formatter::new();
    {
        let test_metadata = test::MetadataProvider::new(HashMap::new());
        let do_test = |original, at_char, expected| {
            for func_name in ["left", "cut"].iter() {
                let expression = formatter
                    .parser()
                    .parse(&format!(r#"${}({}, {})"#, func_name, original, at_char))
                    .unwrap();
                let s = expression.apply(&test_metadata);
                assert_eq!(expected, s.to_string().as_str());
            }
        };
        do_test("HELLO TEST", 5, "HELLO");
        do_test("HELLO TEST", 6, "HELLO ");
        do_test("HELLO TEST", 0, "");
        do_test("HELLO TEST", 30, "HELLO TEST");
        do_test("今日は", 1, "");
        do_test("今日は", 2, "今日");
        do_test("今日は", 3, "今日は");
    }
}