main_base_test.cpp 3.31 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
/***************************************
	Auteur : Pierre Aubert
	Mail : aubertp7@gmail.com
	Licence : CeCILL-C
****************************************/

// To get the generated parser
#include "PTestOperatorParserFull.h"

using namespace std;

///Test the conversion of and add expression into a string
/**	@return true on success, false otherwise
*/
bool testExprAddToString(){
	PExpr varA = PExpr_default();
	PExpr_setType(varA, PExprType::VAR);
	PExpr_setVarName(varA, "a");
	
	PExpr varB = PExpr_default();
	PExpr_setType(varB, PExprType::VAR);
	PExpr_setVarName(varB, "b");
	
	PExpr exprAdd = PExpr_default();
	PExpr_setType(exprAdd, PExprType::ADD);
	
	PExpr_getVecOperand(exprAdd).push_back(varA);
	PExpr_getVecOperand(exprAdd).push_back(varB);
	
	std::string exprStr = gExprVarName(exprAdd);
	std::cout << "testExprAddToString : exprAdd = '"<<exprStr<<"'" << std::endl;
// 	std::cout << "testExprAddToString : exprAdd ok example :"<< std::endl;
// 	exprAdd.print();
	
	return exprStr == "(a+b)";
}

///Test the conversion of and add expression into a string
/**	@return true on success, false otherwise
*/
bool testExprAdd2ToString(){
	PExpr varA = PExpr_default();
	PExpr_setType(varA, PExprType::VAR);
	PExpr_setVarName(varA, "a");
	
	PExpr varB = PExpr_default();
	PExpr_setType(varB, PExprType::VAR);
	PExpr_setVarName(varB, "b");
	
	PExpr exprAddAB = PExpr_default();
	PExpr_setType(exprAddAB, PExprType::ADD);
	
	PExpr_getVecOperand(exprAddAB).push_back(varA);
	PExpr_getVecOperand(exprAddAB).push_back(varB);
	
	PExpr varC = PExpr_default();
	PExpr_setType(varC, PExprType::VAR);
	PExpr_setVarName(varC, "c");
	
	PExpr exprAdd = PExpr_default();
	PExpr_setType(exprAdd, PExprType::ADD);
	
	PExpr_getVecOperand(exprAdd).push_back(exprAddAB);
	PExpr_getVecOperand(exprAdd).push_back(varC);
	
	std::string exprStr = gExprVarName(exprAdd);
	std::cout << "testExprAdd2ToString : exprAdd = '"<<exprStr<<"'" << std::endl;
	
	return exprStr == "((a+b)+c)";
}

///Test the conversion of and add expression into a string
/**	@return true on success, false otherwise
*/
bool testExprAdd3ToString(){
	PExpr varA = PExpr_default();
	PExpr_setType(varA, PExprType::VAR);
	PExpr_setVarName(varA, "a");
	
	PExpr varB = PExpr_default();
	PExpr_setType(varB, PExprType::VAR);
	PExpr_setVarName(varB, "b");
	
	PExpr exprAddAB = PExpr_default();
	PExpr_setType(exprAddAB, PExprType::ADD);
	
	PExpr_getVecOperand(exprAddAB).push_back(varA);
	PExpr_getVecOperand(exprAddAB).push_back(varB);
	
	PExpr varC = PExpr_default();
	PExpr_setType(varC, PExprType::VAR);
	PExpr_setVarName(varC, "c");
	
	PExpr varD = PExpr_default();
	PExpr_setType(varD, PExprType::VAR);
	PExpr_setVarName(varD, "d");
	
	PExpr exprAddCD = PExpr_default();
	PExpr_setType(exprAddCD, PExprType::ADD);
	
	PExpr_getVecOperand(exprAddCD).push_back(varC);
	PExpr_getVecOperand(exprAddCD).push_back(varD);
	
	PExpr exprAdd = PExpr_default();
	PExpr_setType(exprAdd, PExprType::ADD);
	
	PExpr_getVecOperand(exprAdd).push_back(exprAddAB);
	PExpr_getVecOperand(exprAdd).push_back(exprAddCD);
	
	std::string exprStr = gExprVarName(exprAdd);
	std::cout << "testExprAdd3ToString : exprAdd = '"<<exprStr<<"'" << std::endl;
	
	return exprStr == "((a+b)+(c+d))";
}

int main(int argc, char** argv){
	bool b(testExprAddToString());
	b &= testExprAdd2ToString();
	b &= testExprAdd3ToString();
	
	if(b){return 0;}
	else{return -1;}
}