vespe 0.1.2

Text as a Canvas for LLM Collaboration and Automation
Documentation
use super::identifier::_try_parse_identifier;
use super::parser::Parser;

#[test]
fn test_try_parse_identifier_valid() {
    let doc = "_my_identifier123 rest";
    let parser = Parser::new(doc);
    let (identifier, p_next) = _try_parse_identifier(&parser).unwrap().unwrap();

    assert_eq!(identifier, "_my_identifier123");
    assert_eq!(p_next.remain(), " rest");
}

#[test]
fn test_try_parse_identifier_starts_with_digit() {
    let doc = "123identifier";
    let parser = Parser::new(doc);
    let result = _try_parse_identifier(&parser).unwrap();

    assert!(result.is_none());
    assert_eq!(parser.remain(), "123identifier");
}

#[test]
fn test_try_parse_identifier_empty() {
    let doc = "";
    let parser = Parser::new(doc);
    let result = _try_parse_identifier(&parser).unwrap();

    assert!(result.is_none());
}

#[test]
fn test_try_parse_identifier_with_invalid_char() {
    let doc = "my-identifier";
    let parser = Parser::new(doc);
    let (identifier, p_next) = _try_parse_identifier(&parser).unwrap().unwrap();

    assert_eq!(identifier, "my");
    assert_eq!(p_next.remain(), "-identifier");
}