示例#1
0
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.");
    }
  }

}
示例#2
0
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);
}
示例#3
0
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);
}
示例#4
0
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.");
    }
  }

}
示例#5
0
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);
}
示例#6
0
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");
}
示例#7
0
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!");
  }
}
示例#8
0
void customTestBalance(int expectBalance,Node *actual, int lineNo){
  if(expectBalance != actual->balanceFactor)
    CUSTOM_TEST_FAIL("Expected Balance Factor %d Was %d",expectBalance,actual->balanceFactor);

}