Advertisement
wrandall

Untitled

May 1st, 2019
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.84 KB | None | 0 0
  1. int main()
  2. {
  3.     string pf;
  4.     bool answer;
  5.     assert(evaluate("T^ F", pf, answer) == 0  &&  pf == "TF^"  &&  answer);
  6.     assert(evaluate("T^", pf, answer) == 1);
  7.     assert(evaluate("F F", pf, answer) == 1);
  8.     assert(evaluate("TF", pf, answer) == 1);
  9.     assert(evaluate("()", pf, answer) == 1);
  10.     assert(evaluate("()T", pf, answer) == 1);
  11.     assert(evaluate("T(F^T)", pf, answer) == 1);
  12.     assert(evaluate("T(&T)", pf, answer) == 1);
  13.     assert(evaluate("(T&(F^F)", pf, answer) == 1);
  14.     assert(evaluate("T&(F^F))", pf, answer) == 1);
  15.     assert(evaluate("T&(F^F)", pf, answer) == 0 && !answer && pf == "TFF^&");
  16.  
  17.     assert(evaluate("     T   &     (    F   ^   F   )   " , pf, answer) == 0 && !answer && pf == "TFF^&");
  18.     assert(evaluate("T&(F^(T^(F&T)))", pf, answer) == 0 && answer && pf == "TFTFT&^^&");
  19.     assert(evaluate("!T&(F^(T^(F&T)))", pf, answer) == 0 && !answer && pf == "T!FTFT&^^&");
  20.     assert(evaluate("!T&!(T^F)", pf, answer) == 0 && !answer && pf == "T!TF^!&");
  21.     assert(evaluate("((T))", pf, answer) == 0 && answer && pf == "T");
  22.     assert(evaluate("((F))", pf, answer) == 0 && !answer && pf == "F");
  23.  
  24.     assert(evaluate("(!)", pf, answer) == 1);
  25.     assert(evaluate("(^)", pf, answer) == 1);
  26.     assert(evaluate("(&)", pf, answer) == 1);
  27.     assert(evaluate("(T!)", pf, answer) == 1);
  28.     assert(evaluate("(T^)", pf, answer) == 1);
  29.     assert(evaluate("(T&)", pf, answer) == 1);
  30.     assert(evaluate("(&T)", pf, answer) == 1);
  31.     assert(evaluate("(^T)", pf, answer) == 1);
  32.     assert(evaluate("((T)", pf, answer) == 1);
  33.     assert(evaluate("(T))", pf, answer) == 1);
  34.  
  35.     assert(evaluate("T|F", pf, answer) == 1);
  36.     assert(evaluate("", pf, answer) == 1);
  37.     assert(evaluate("    ", pf, answer) == 1);
  38.     assert(evaluate("!", pf, answer) == 1);
  39.     assert(evaluate("^", pf, answer) == 1);
  40.     assert(evaluate("&", pf, answer) == 1);
  41.     assert(evaluate("TF", pf, answer) == 1);
  42.     assert(evaluate("FT", pf, answer) == 1);
  43.  
  44.     assert(evaluate("F  ^  !F & (T&F) ", pf, answer) == 0 &&  pf == "FF!TF&&^"  &&  !answer);
  45.     assert(evaluate(" F  ", pf, answer) == 0 &&  pf == "F"  &&  !answer);
  46.     assert(evaluate("((T))", pf, answer) == 0 &&  pf == "T"  &&  answer);
  47. //    cout << "Passed all my tests" << endl;
  48.  
  49.     //testing for bad infix
  50.     assert(evaluate("", pf, answer) == 1);
  51.     assert(evaluate("(sdf)", pf, answer) == 1);
  52.     assert(evaluate("()sdf", pf, answer) == 1);
  53.     assert(evaluate("!", pf, answer) == 1);
  54.     assert(evaluate("(", pf, answer) == 1);
  55.     assert(evaluate("!!!", pf, answer) == 1);
  56.     assert(evaluate("TF", pf, answer) == 1);
  57.     assert(evaluate("T(F", pf, answer) == 1);
  58.     assert(evaluate("T(F)", pf, answer) == 1);
  59.     assert(evaluate("()()", pf, answer) == 1);
  60.     assert(evaluate("&!", pf, answer) == 1);
  61.     assert(evaluate("^!", pf, answer) == 1);
  62.     assert(evaluate("&()", pf, answer) == 1);
  63.     assert(evaluate("!()", pf, answer) == 1);
  64.     assert(evaluate("F && F", pf, answer) == 1);
  65.     //checking evaluate for valid infix
  66.     assert(evaluate("T", pf, answer) == 0);
  67.     assert(evaluate("!T", pf, answer) == 0);
  68.     assert(evaluate("(!(T))", pf, answer) == 0);
  69.     assert(evaluate("!(((T&F)))", pf, answer) == 0);
  70.     assert(evaluate("!T", pf, answer) == 0);
  71.     assert(evaluate("!( T & !F ^ T)", pf, answer) == 0);
  72.     assert(evaluate("T & !!F", pf, answer) == 0);
  73.     assert(evaluate("F", pf, answer) == 0);
  74.     //testing random stuff
  75.     assert(evaluate("T", pf, answer) == 0 && pf == "T" && answer);
  76.     assert(evaluate("(!(T))", pf, answer) == 0 && pf == "T!" && !answer);
  77.     assert(evaluate("!(((T&F)))", pf, answer) == 0 && pf == "TF&!" && answer);
  78.     assert(evaluate("!T", pf, answer) == 0 && pf == "T!" && !answer);
  79.  
  80.     assert(evaluate("F", pf, answer) == 0 && pf == "F" && !answer);
  81.     assert(evaluate("!(T&!F) ^!T& !F", pf, answer) == 0 && pf == "TF!&!T!F!&^" && !answer);
  82.  
  83.     assert(infixToPostfix("!!!!T", pf) == 1 && pf == "T!!!!");
  84.     assert(evaluate("!!!!T", pf, answer) == 0 && pf == "T!!!!" && answer);
  85.     assert(evaluate("!!T", pf, answer) == 0);
  86.     assert(evaluate("!!!!T", pf, answer) == 0);
  87.     assert(evaluate("!!(T) & !F ^ T", pf, answer) == 0);
  88.     assert(evaluate("!!!!T", pf, answer) == 0 && pf == "T!!!!" && answer);
  89.     assert(evaluate("T & !!F", pf, answer) == 0 && pf == "TF!!&" && !answer);
  90.    
  91.     assert(evaluate("!( T & !F ^ T)", pf, answer) == 0 && pf == "TF!&T^!" && answer);
  92.     //TF!&T^!
  93.     //TT&T^!
  94.     //TT^!
  95.     //F!
  96.     //T
  97.     assert(evaluate("!!( T & !F ^ T)", pf, answer) == 0 && pf == "TF!&T^!!" && !answer);
  98.     assert(evaluate("!!!( T & !F ^ T)", pf, answer) == 0 && pf == "TF!&T^!!!" && answer);
  99.  
  100.     assert(evaluate("!!(T) & !F ^ T", pf, answer) == 0 && pf == "T!!F!&T^" && !answer);
  101.     //T!!F!&T^
  102.     //F!F!&T^
  103.     //TF!&T^
  104.     //TT&T^
  105.     //TT^
  106.     //F
  107.  
  108.     cout << "Passed all tests" << endl;
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement