void customTestAssertKey(void *key, ListElement *actual, int lineNo){ Iterator *iter; if (key==NULL || actual==NULL){ CUSTOM_TEST_FAIL("ERROR:The key or actual cannot be NULL."); } else{ OperatorToken *opTokActual=((OperatorToken *)(actual->value)); char *idenKey=((IdentifierToken *)(key))->name; char *idenLeftToken=((IdentifierToken *)(opTokActual->token[0]))->name; UNITY_TEST_ASSERT_EQUAL_STRING(":", opTokActual->symbol, lineNo, NULL); //test for KEY token if(opTokActual->token[0]->type==TOKEN_IDENTIFIER_TYPE){ if(((Token *)(key))->type==TOKEN_IDENTIFIER_TYPE){ UNITY_TEST_ASSERT_EQUAL_STRING(idenKey,idenLeftToken,lineNo, NULL); } else{ CUSTOM_TEST_FAIL("ERROR:Actual value for KEY was %s",idenLeftToken); } } else{ CUSTOM_TEST_FAIL("ERROR:Unexpected KEY Token type.Expected an Identifier Token."); } } }
void customTestRoot(Node *leftNode,int rootData,Node *rightNode,Node *actualNode,int lineNo){ if(rootData != actualNode->data) CUSTOM_TEST_FAIL("Expected root data %d Was %d",rootData,actualNode->data); if(leftNode != actualNode->left) CUSTOM_TEST_FAIL("Expected left data %d Was %d",leftNode,actualNode->left); if(rightNode != actualNode->right) CUSTOM_TEST_FAIL("Expected right data %d Was %d",rightNode,actualNode->right); }
void customTestAssertAttributeOperator(int expectedArity, int expectedAssoc, int expectedPrecedence, char *symbol, OperatorToken *actualOp, int lineNumber) { if(expectedArity != actualOp->arity) CUSTOM_TEST_FAIL(lineNumber,"Expected Arity %d was %d", expectedArity, actualOp->arity); if(expectedAssoc != actualOp->assoc) CUSTOM_TEST_FAIL(lineNumber,"Expected Associativity %d was %d", expectedAssoc, actualOp->assoc); if(expectedPrecedence != actualOp->precedence) CUSTOM_TEST_FAIL(lineNumber,"Expected Precedence %d was %d", expectedPrecedence, actualOp->precedence); }
void customTestAssertValue(void *value, ListElement *actual, int lineNo){ Iterator *iter; if (value==NULL || actual==NULL){ CUSTOM_TEST_FAIL("ERROR:The value or actual cannot be NULL."); } else{ OperatorToken *opTokActual=((OperatorToken *)(actual->value)); char *strValue=((StringToken *)(value))->name; int intValue=((IntegerToken *)(value))->value; double floatValue=((FloatToken *)(value))->value; char *charRightToken=((StringToken *)(opTokActual->token[1]))->name; int intRightToken=((IntegerToken *)(opTokActual->token[1]))->value; double floatRightToken=((FloatToken *)(opTokActual->token[1]))->value; iter=createIterator((LinkedList *)(opTokActual->token[1])); UNITY_TEST_ASSERT_EQUAL_STRING(":", opTokActual->symbol, lineNo, NULL); //test for VALUE token if(opTokActual->token[1]->type==TOKEN_STRING_TYPE){ if(((Token *)(value))->type==TOKEN_STRING_TYPE){ UNITY_TEST_ASSERT_EQUAL_STRING(strValue,charRightToken,lineNo, NULL); } else{ CUSTOM_TEST_FAIL("ERROR:Actual value for VALUE was %s",charRightToken); } } else if(opTokActual->token[1]->type==TOKEN_INTEGER_TYPE){ if(((Token *)(value))->type==TOKEN_INTEGER_TYPE){ UNITY_TEST_ASSERT_EQUAL_INT(intValue,intRightToken, lineNo, NULL); } else{ CUSTOM_TEST_FAIL("ERROR:Actual value for VALUE was %d",intRightToken); } } else if(opTokActual->token[1]->type==TOKEN_FLOAT_TYPE){ if(((Token *)(value))->type==TOKEN_FLOAT_TYPE){ UNITY_TEST_ASSERT_EQUAL_FLOAT(floatValue,floatRightToken, lineNo, NULL); } else{ CUSTOM_TEST_FAIL("ERROR:Actual value for VALUE was %d",floatRightToken); } } else{ CUSTOM_TEST_FAIL("ERROR:Unexpected VALUE Token type.Expected String,Integer or a Float Token."); } } }
void customTestAssertOperator(OperatorToken *expectedOp, OperatorToken *actualOp, int lineNumber) { if(actualOp->type != TOKEN_OPERATOR_TYPE) CUSTOM_TEST_FAIL(lineNumber,"Expected OperatorToken!"); if((int) *expectedOp->symbol != (int) *actualOp->symbol) CUSTOM_TEST_FAIL(lineNumber,"Expected symbol was '%s' but actual was '%s'.", expectedOp->symbol, actualOp->symbol); if(expectedOp->arity != actualOp->arity) CUSTOM_TEST_FAIL(lineNumber,"Expected arity was %d but actual %d.", expectedOp->arity, actualOp->arity); if(expectedOp->precedence != actualOp->precedence) CUSTOM_TEST_FAIL(lineNumber,"Expected precedence was %d but actual %d.", expectedOp->precedence, actualOp->precedence); if(expectedOp->assoc != actualOp->assoc) CUSTOM_TEST_FAIL(lineNumber,"Expected associativity was %d but actual %d.", expectedOp->assoc, actualOp->assoc); }
void testAsserEqualOperatorToken(const char* str,OperatorToken* actual,int lineNo) { UNITY_TEST_ASSERT_NOT_NULL(actual,lineNo,"The token should not be NULL!"); if( TOKEN_OPERATOR_TYPE != actual->type) { CUSTOM_TEST_FAIL(lineNo,"Expected %s was %s. The token type is not the same.", \ getTokenTypeName(TOKEN_OPERATOR_TYPE),getTokenTypeName(actual->type)); } UNITY_TEST_ASSERT_EQUAL_INT(strlen(str),actual->length,lineNo,"The length is not the same."); UNITY_TEST_ASSERT_EQUAL_STRING(str,actual->symbol,lineNo,"The operator is not the same"); }
void customTestAssertPrefixPostfixTree(OperatorToken *expectedOp, Token* token0, OperatorToken *actualOp, int lineNumber) { customTestAssertOperator(expectedOp, actualOp, lineNumber); //TEST for Token[0] if(token0->type == TOKEN_INTEGER_TYPE) { if(((IntegerToken*)token0)->value != ((IntegerToken*)actualOp->token[0])->value) CUSTOM_TEST_FAIL(lineNumber,"(Token[0])Expected %d was %d.", ((IntegerToken*)token0)->value, ((IntegerToken*)actualOp->token[0])->value); } else if(token0->type == TOKEN_OPERATOR_TYPE) { if((int) *((OperatorToken *)token0)->symbol != (int) *((OperatorToken *)actualOp->token[0])->symbol) CUSTOM_TEST_FAIL(lineNumber,"Expected token[0] symbol was '%s' but actual was '%s'.", ((OperatorToken *)token0)->symbol, ((OperatorToken *)actualOp->token[0])->symbol); if(((OperatorToken *)token0)->arity != ((OperatorToken *)actualOp->token[0])->arity) CUSTOM_TEST_FAIL(lineNumber,"Expected token[0] arity was %d but actual %d.", ((OperatorToken *)token0)->arity, ((OperatorToken *)actualOp->token[0])->arity); if(((OperatorToken *)token0)->precedence != ((OperatorToken *)actualOp->token[0])->precedence) CUSTOM_TEST_FAIL(lineNumber,"Expected token[0] precedence was %d but actual %d.", ((OperatorToken *)token0)->precedence, ((OperatorToken *)actualOp->token[0])->precedence); if(((OperatorToken *)token0)->assoc != ((OperatorToken *)actualOp->token[0])->assoc) CUSTOM_TEST_FAIL(lineNumber,"Expected token[0] associativity was %d but actual %d.", ((OperatorToken *)token0)->assoc, ((OperatorToken *)actualOp->token[0])->assoc); } else { CUSTOM_TEST_FAIL(lineNumber,"Token[0] undefined!"); } }
void customTestBalance(int expectBalance,Node *actual, int lineNo){ if(expectBalance != actual->balanceFactor) CUSTOM_TEST_FAIL("Expected Balance Factor %d Was %d",expectBalance,actual->balanceFactor); }