vespe 0.1.2

Text as a Canvas for LLM Collaboration and Automation
Documentation
use super::super::{AnchorKind, CommandKind};
use super::anchor::_try_parse_anchor_kind;
use super::command_kind::_try_parse_command_kind;
use super::parser::Parser;

#[test]
fn test_try_parse_command_kind_valid() {
    let doc = "tag rest";
    let parser = Parser::new(doc);
    let (kind, p_next) = _try_parse_command_kind(&parser).unwrap().unwrap();
    assert_eq!(kind, CommandKind::Tag);
    assert_eq!(p_next.remain(), " rest");

    let doc = "include rest";
    let parser = Parser::new(doc);
    let (kind, p_next) = _try_parse_command_kind(&parser).unwrap().unwrap();
    assert_eq!(kind, CommandKind::Include);
    assert_eq!(p_next.remain(), " rest");

    let doc = "answer rest";
    let parser = Parser::new(doc);
    let (kind, p_next) = _try_parse_command_kind(&parser).unwrap().unwrap();
    assert_eq!(kind, CommandKind::Answer);
    assert_eq!(p_next.remain(), " rest");
}

#[test]
fn test_try_parse_command_kind_invalid() {
    let doc = "invalid_command rest";
    let parser = Parser::new(doc);
    let result = _try_parse_command_kind(&parser).unwrap();
    assert!(result.is_none());
    assert_eq!(parser.remain(), "invalid_command rest");
}

#[test]
fn test_try_parse_anchor_kind_valid() {
    let doc = "begin rest";
    let parser = Parser::new(doc);
    let (kind, p_next) = _try_parse_anchor_kind(&parser).unwrap().unwrap();
    assert_eq!(kind, AnchorKind::Begin);
    assert_eq!(p_next.remain(), " rest");

    let doc = "end rest";
    let parser = Parser::new(doc);
    let (kind, p_next) = _try_parse_anchor_kind(&parser).unwrap().unwrap();
    assert_eq!(kind, AnchorKind::End);
    assert_eq!(p_next.remain(), " rest");
}

#[test]
fn test_try_parse_anchor_kind_invalid() {
    let doc = "invalid_anchor rest";
    let parser = Parser::new(doc);
    let result = _try_parse_anchor_kind(&parser).unwrap();
    assert!(result.is_none());
    assert_eq!(parser.remain(), "invalid_anchor rest");
}