Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int main()
- {
- string pf;
- bool answer;
- assert(evaluate("T^ F", pf, answer) == 0 && pf == "TF^" && answer);
- assert(evaluate("T^", pf, answer) == 1);
- assert(evaluate("F F", pf, answer) == 1);
- assert(evaluate("TF", pf, answer) == 1);
- assert(evaluate("()", pf, answer) == 1);
- assert(evaluate("()T", pf, answer) == 1);
- assert(evaluate("T(F^T)", pf, answer) == 1);
- assert(evaluate("T(&T)", pf, answer) == 1);
- assert(evaluate("(T&(F^F)", pf, answer) == 1);
- assert(evaluate("T&(F^F))", pf, answer) == 1);
- assert(evaluate("T&(F^F)", pf, answer) == 0 && !answer && pf == "TFF^&");
- assert(evaluate(" T & ( F ^ F ) " , pf, answer) == 0 && !answer && pf == "TFF^&");
- assert(evaluate("T&(F^(T^(F&T)))", pf, answer) == 0 && answer && pf == "TFTFT&^^&");
- assert(evaluate("!T&(F^(T^(F&T)))", pf, answer) == 0 && !answer && pf == "T!FTFT&^^&");
- assert(evaluate("!T&!(T^F)", pf, answer) == 0 && !answer && pf == "T!TF^!&");
- assert(evaluate("((T))", pf, answer) == 0 && answer && pf == "T");
- assert(evaluate("((F))", pf, answer) == 0 && !answer && pf == "F");
- assert(evaluate("(!)", pf, answer) == 1);
- assert(evaluate("(^)", pf, answer) == 1);
- assert(evaluate("(&)", pf, answer) == 1);
- assert(evaluate("(T!)", pf, answer) == 1);
- assert(evaluate("(T^)", pf, answer) == 1);
- assert(evaluate("(T&)", pf, answer) == 1);
- assert(evaluate("(&T)", pf, answer) == 1);
- assert(evaluate("(^T)", pf, answer) == 1);
- assert(evaluate("((T)", pf, answer) == 1);
- assert(evaluate("(T))", pf, answer) == 1);
- assert(evaluate("T|F", pf, answer) == 1);
- assert(evaluate("", pf, answer) == 1);
- assert(evaluate(" ", pf, answer) == 1);
- assert(evaluate("!", pf, answer) == 1);
- assert(evaluate("^", pf, answer) == 1);
- assert(evaluate("&", pf, answer) == 1);
- assert(evaluate("TF", pf, answer) == 1);
- assert(evaluate("FT", pf, answer) == 1);
- assert(evaluate("F ^ !F & (T&F) ", pf, answer) == 0 && pf == "FF!TF&&^" && !answer);
- assert(evaluate(" F ", pf, answer) == 0 && pf == "F" && !answer);
- assert(evaluate("((T))", pf, answer) == 0 && pf == "T" && answer);
- // cout << "Passed all my tests" << endl;
- //testing for bad infix
- assert(evaluate("", pf, answer) == 1);
- assert(evaluate("(sdf)", pf, answer) == 1);
- assert(evaluate("()sdf", pf, answer) == 1);
- assert(evaluate("!", pf, answer) == 1);
- assert(evaluate("(", pf, answer) == 1);
- assert(evaluate("!!!", pf, answer) == 1);
- assert(evaluate("TF", pf, answer) == 1);
- assert(evaluate("T(F", pf, answer) == 1);
- assert(evaluate("T(F)", pf, answer) == 1);
- assert(evaluate("()()", pf, answer) == 1);
- assert(evaluate("&!", pf, answer) == 1);
- assert(evaluate("^!", pf, answer) == 1);
- assert(evaluate("&()", pf, answer) == 1);
- assert(evaluate("!()", pf, answer) == 1);
- assert(evaluate("F && F", pf, answer) == 1);
- //checking evaluate for valid infix
- assert(evaluate("T", pf, answer) == 0);
- assert(evaluate("!T", pf, answer) == 0);
- assert(evaluate("(!(T))", pf, answer) == 0);
- assert(evaluate("!(((T&F)))", pf, answer) == 0);
- assert(evaluate("!T", pf, answer) == 0);
- assert(evaluate("!( T & !F ^ T)", pf, answer) == 0);
- assert(evaluate("T & !!F", pf, answer) == 0);
- assert(evaluate("F", pf, answer) == 0);
- //testing random stuff
- assert(evaluate("T", pf, answer) == 0 && pf == "T" && answer);
- assert(evaluate("(!(T))", pf, answer) == 0 && pf == "T!" && !answer);
- assert(evaluate("!(((T&F)))", pf, answer) == 0 && pf == "TF&!" && answer);
- assert(evaluate("!T", pf, answer) == 0 && pf == "T!" && !answer);
- assert(evaluate("F", pf, answer) == 0 && pf == "F" && !answer);
- assert(evaluate("!(T&!F) ^!T& !F", pf, answer) == 0 && pf == "TF!&!T!F!&^" && !answer);
- assert(infixToPostfix("!!!!T", pf) == 1 && pf == "T!!!!");
- assert(evaluate("!!!!T", pf, answer) == 0 && pf == "T!!!!" && answer);
- assert(evaluate("!!T", pf, answer) == 0);
- assert(evaluate("!!!!T", pf, answer) == 0);
- assert(evaluate("!!(T) & !F ^ T", pf, answer) == 0);
- assert(evaluate("!!!!T", pf, answer) == 0 && pf == "T!!!!" && answer);
- assert(evaluate("T & !!F", pf, answer) == 0 && pf == "TF!!&" && !answer);
- assert(evaluate("!( T & !F ^ T)", pf, answer) == 0 && pf == "TF!&T^!" && answer);
- //TF!&T^!
- //TT&T^!
- //TT^!
- //F!
- //T
- assert(evaluate("!!( T & !F ^ T)", pf, answer) == 0 && pf == "TF!&T^!!" && !answer);
- assert(evaluate("!!!( T & !F ^ T)", pf, answer) == 0 && pf == "TF!&T^!!!" && answer);
- assert(evaluate("!!(T) & !F ^ T", pf, answer) == 0 && pf == "T!!F!&T^" && !answer);
- //T!!F!&T^
- //F!F!&T^
- //TF!&T^
- //TT&T^
- //TT^
- //F
- cout << "Passed all tests" << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement