31 lines
1.1 KiB
Rust
31 lines
1.1 KiB
Rust
#[cfg(test)]
|
|
mod tests {
|
|
use crate::ast::{ add_binary_node, ast_to_formula, Node, Token };
|
|
use crate::boolean_evaluation::parse_formula;
|
|
|
|
#[test]
|
|
fn add_nodes() {
|
|
let mut stack = vec![Node::Leaf(true), Node::Leaf(false)];
|
|
let rhs = vec![Node::Binary {
|
|
operator: Token::Conjunction,
|
|
lhs: Box::new(Node::Leaf(true)),
|
|
rhs: Box::new(Node::Leaf(false))
|
|
}];
|
|
add_binary_node(&mut stack, Token::Conjunction);
|
|
assert_eq!(stack, rhs);
|
|
}
|
|
|
|
#[test]
|
|
fn reverse_ast() {
|
|
let formula = "01&";
|
|
assert_eq!(ast_to_formula(parse_formula(formula)), formula);
|
|
let formula = "01&00|&";
|
|
assert_eq!(ast_to_formula(parse_formula(formula)), formula);
|
|
let formula = "01&00|&11^&";
|
|
assert_eq!(ast_to_formula(parse_formula(formula)), formula);
|
|
let formula = "01&00|&11=^";
|
|
assert_eq!(ast_to_formula(parse_formula(formula)), formula);
|
|
let formula = "01&00|&0!=";
|
|
assert_eq!(ast_to_formula(parse_formula(formula)), formula);
|
|
}
|
|
} |