Minor refactoring
This commit is contained in:
parent
2e3707e0af
commit
257e02f285
@ -466,11 +466,17 @@ pub fn formula<'a>(i: &'a str, d: &Declarations) -> IResult<&'a str, crate::Form
|
||||
mod tests
|
||||
{
|
||||
use crate::parse::formulas::*;
|
||||
use crate::parse::formulas as original;
|
||||
use crate::{Formula, Term};
|
||||
|
||||
fn formula(i: &str) -> Formula
|
||||
{
|
||||
crate::parse::formula(i, &Declarations::new()).unwrap().1
|
||||
original::formula(i, &Declarations::new()).unwrap().1
|
||||
}
|
||||
|
||||
fn formula_remainder(i: &str) -> &str
|
||||
{
|
||||
original::formula(i, &Declarations::new()).unwrap().0
|
||||
}
|
||||
|
||||
fn format_formula(i: &str) -> String
|
||||
@ -488,42 +494,28 @@ mod tests
|
||||
#[test]
|
||||
fn parse_predicate()
|
||||
{
|
||||
assert_eq!(predicate("s", &Declarations::new())
|
||||
.map(|(i, x)| (i, x.declaration.name.clone())),
|
||||
Ok(("", "s".to_string())));
|
||||
assert_eq!(predicate("s", &Declarations::new())
|
||||
.map(|(i, x)| (i, x.declaration.arity)),
|
||||
Ok(("", 0)));
|
||||
assert_eq!(predicate("s ( )", &Declarations::new())
|
||||
.map(|(i, x)| (i, x.declaration.name.clone())),
|
||||
Ok(("", "s".to_string())));
|
||||
assert_eq!(predicate("s ( )", &Declarations::new())
|
||||
.map(|(i, x)| (i, x.declaration.arity)),
|
||||
Ok(("", 0)));
|
||||
assert_eq!(predicate("s ( 1 , 2 , 3 )", &Declarations::new())
|
||||
.map(|(i, x)| (i, x.declaration.name.clone())),
|
||||
Ok(("", "s".to_string())));
|
||||
assert_eq!(predicate("s ( 1 , 2 , 3 )", &Declarations::new())
|
||||
.map(|(i, x)| (i, x.declaration.arity)),
|
||||
Ok(("", 3)));
|
||||
assert_eq!(predicate("s ( 1 , 2 , 3 )", &Declarations::new())
|
||||
.map(|(i, mut x)| (i, x.arguments.remove(0))),
|
||||
Ok(("", Box::new(Term::integer(1)))));
|
||||
assert_eq!(predicate("s ( 1 , 2 , 3 )", &Declarations::new())
|
||||
.map(|(i, mut x)| (i, x.arguments.remove(2))),
|
||||
Ok(("", Box::new(Term::integer(3)))));
|
||||
assert_eq!(predicate("s ( ), rest", &Declarations::new())
|
||||
.map(|(i, x)| (i, x.declaration.name.clone())),
|
||||
Ok((", rest", "s".to_string())));
|
||||
assert_eq!(predicate("s ( ), rest", &Declarations::new())
|
||||
.map(|(i, x)| (i, x.declaration.arity)),
|
||||
Ok((", rest", 0)));
|
||||
assert_eq!(predicate("s ( 1 , 2 , 3 ), rest", &Declarations::new())
|
||||
.map(|(i, x)| (i, x.declaration.name.clone())),
|
||||
Ok((", rest", "s".to_string())));
|
||||
assert_eq!(predicate("s ( 1 , 2 , 3 ), rest", &Declarations::new())
|
||||
.map(|(i, x)| (i, x.declaration.arity)),
|
||||
Ok((", rest", 3)));
|
||||
let predicate = |i| original::predicate(i, &Declarations::new()).unwrap().1;
|
||||
let predicate_remainder = |i| original::predicate(i, &Declarations::new()).unwrap().0;
|
||||
|
||||
assert_eq!(predicate("s").declaration.name, "s");
|
||||
assert_eq!(predicate("s").declaration.arity, 0);
|
||||
assert_eq!(predicate_remainder("s"), "");
|
||||
assert_eq!(predicate("s ( )").declaration.name, "s");
|
||||
assert_eq!(predicate("s ( )").declaration.arity, 0);
|
||||
assert_eq!(predicate_remainder("s ( )"), "");
|
||||
assert_eq!(predicate("s ( 1 , 2 , 3 )").declaration.name, "s");
|
||||
assert_eq!(predicate("s ( 1 , 2 , 3 )").declaration.arity, 3);
|
||||
assert_eq!(*predicate("s ( 1 , 2 , 3 )").arguments.remove(0), Term::integer(1));
|
||||
assert_eq!(*predicate("s ( 1 , 2 , 3 )").arguments.remove(1), Term::integer(2));
|
||||
assert_eq!(*predicate("s ( 1 , 2 , 3 )").arguments.remove(2), Term::integer(3));
|
||||
assert_eq!(predicate_remainder("s ( 1 , 2 , 3 )"), "");
|
||||
assert_eq!(predicate_remainder("s ( 1 , 2 , 3 )"), "");
|
||||
assert_eq!(predicate("s ( ), rest").declaration.name, "s");
|
||||
assert_eq!(predicate("s ( ), rest").declaration.arity, 0);
|
||||
assert_eq!(predicate_remainder("s ( ), rest"), ", rest");
|
||||
assert_eq!(predicate("s ( 1 , 2 , 3 ), rest").declaration.name, "s");
|
||||
assert_eq!(predicate("s ( 1 , 2 , 3 ), rest").declaration.arity, 3);
|
||||
assert_eq!(predicate_remainder("s ( 1 , 2 , 3 ), rest"), ", rest");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -707,8 +707,8 @@ mod tests
|
||||
#[test]
|
||||
fn parse_function_primitive()
|
||||
{
|
||||
let function_remainder = |i| original::function(i, &Declarations::new()).unwrap().0;
|
||||
let function = |i| original::function(i, &Declarations::new()).unwrap().1;
|
||||
let function_remainder = |i| original::function(i, &Declarations::new()).unwrap().0;
|
||||
|
||||
assert_eq!(function("s").declaration.name, "s");
|
||||
assert_eq!(function("s").declaration.arity, 0);
|
||||
@ -733,8 +733,8 @@ mod tests
|
||||
#[test]
|
||||
fn parse_variable_declaration()
|
||||
{
|
||||
let variable_declaration_remainder = |i| variable_declaration(i).unwrap().0;
|
||||
let variable_declaration = |i| variable_declaration(i).unwrap().1;
|
||||
let variable_declaration = |i| original::variable_declaration(i).unwrap().1;
|
||||
let variable_declaration_remainder = |i| original::variable_declaration(i).unwrap().0;
|
||||
|
||||
assert_eq!(variable_declaration("X Rest").name, "X");
|
||||
assert_eq!(variable_declaration_remainder("X Rest"), " Rest");
|
||||
@ -759,8 +759,8 @@ mod tests
|
||||
#[test]
|
||||
fn parse_variable_primitive()
|
||||
{
|
||||
let variable_remainder = |i| original::variable(i, &Declarations::new()).unwrap().0;
|
||||
let variable = |i| original::variable(i, &Declarations::new()).unwrap().1;
|
||||
let variable_remainder = |i| original::variable(i, &Declarations::new()).unwrap().0;
|
||||
|
||||
assert_eq!(variable("X Rest").declaration.name, "X");
|
||||
assert_eq!(variable_remainder("X Rest"), " Rest");
|
||||
|
Loading…
x
Reference in New Issue
Block a user