1
0

Write tests; Clean up

This commit is contained in:
Jeff 2024-01-30 14:11:18 -05:00
parent 93e2a24a25
commit ba0d154962
4 changed files with 37 additions and 5 deletions

View File

@ -4,9 +4,7 @@ use enum_iterator::{all, Sequence};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use crate::{ use crate::{
built_in_functions::{ built_in_functions::{fs::fs_functions, json::json_functions, str::string_functions, Callable},
fs::fs_functions, json::json_functions, string::string_functions, Callable,
},
AbstractTree, BuiltInFunction, Format, Function, List, Map, Result, SyntaxNode, Type, Value, AbstractTree, BuiltInFunction, Format, Function, List, Map, Result, SyntaxNode, Type, Value,
}; };

View File

@ -1,6 +1,6 @@
pub mod fs; pub mod fs;
pub mod json; pub mod json;
pub mod string; pub mod str;
use std::fmt::{self, Display, Formatter}; use std::fmt::{self, Display, Formatter};
@ -9,7 +9,7 @@ use serde::{Deserialize, Serialize};
use crate::{Error, Format, Map, Result, Type, Value}; use crate::{Error, Format, Map, Result, Type, Value};
use self::{fs::Fs, json::Json, string::StrFunction}; use self::{fs::Fs, json::Json, str::StrFunction};
pub trait Callable { pub trait Callable {
fn name(&self) -> &'static str; fn name(&self) -> &'static str;

View File

@ -13,3 +13,37 @@ fn as_bytes() {
]))) ])))
); );
} }
#[test]
fn ends_with() {
let result = interpret("str:ends_with('abc', 'c')");
assert_eq!(result, Ok(Value::Boolean(true)));
let result = interpret("str:ends_with('abc', 'b')");
assert_eq!(result, Ok(Value::Boolean(false)));
}
#[test]
fn find() {
let result = interpret("str:find('abc', 'a')");
assert_eq!(result, Ok(Value::Option(Some(Box::new(Value::Integer(0))))));
let result = interpret("str:find('foobar', 'b')");
assert_eq!(result, Ok(Value::Option(Some(Box::new(Value::Integer(3))))));
}
#[test]
fn insert() {
assert_eq!(
interpret("str:insert('ac', 1, 'b')"),
Ok(Value::String("abc".to_string()))
);
assert_eq!(
interpret("str:insert('foo', 3, 'bar')"),
Ok(Value::String("foobar".to_string()))
);
}