You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

167 lines
4.4 KiB

#ifdef TEST
#include "unity.h"
#include "inputHandling.h"
char halloWelt[]="Hallo Welt";
char halloWelt2[]="Hallo Welt";
char halloWelt3[]="Ha llo W el t ";
char halloWelt4[]="Ha\n\nllo \r W el\r\r t ";
calc_op formula = {0};
void setUp(void)
{
formula.functionsType = opNotSupported;
}
void tearDown(void)
{
}
void test_inputHandling_deleteOneWhiteSpace(void)
{
deleteWhitespace(halloWelt, 10);
TEST_ASSERT_EQUAL_STRING("HalloWelt", halloWelt);
}
void test_inputHandling_deleteTwoWhiteSpaces(void)
{
deleteWhitespace(halloWelt2, 11);
TEST_ASSERT_EQUAL_STRING("HalloWelt", halloWelt2);
}
void test_inputHandling_deleteManyWhiteSpaces(void)
{
deleteWhitespace(halloWelt3, 16);
TEST_ASSERT_EQUAL_STRING("HalloWelt", halloWelt3);
}
void test_inputHandling_deleteAllOtherCharacter(void)
{
deleteWhitespace(halloWelt4, 19);
TEST_ASSERT_EQUAL_STRING("HalloWelt", halloWelt4);
}
void test_inputHandling_findAddFunctionType(void)
{
op type = opNotSupported;
type = detectFunctionOperator("4+5", 3);
TEST_ASSERT_TRUE(opAdd == type);
}
void test_inputHandling_findSubFunctionType(void)
{
op type = opNotSupported;
type = detectFunctionOperator("4-5", 3);
TEST_ASSERT_TRUE(opSub == type);
}
void test_inputHandling_findMultiFunctionType(void)
{
op type = opNotSupported;
type = detectFunctionOperator("4*5", 3);
TEST_ASSERT_TRUE(opMult == type);
}
void test_inputHandling_findDivFunctionType(void)
{
op type = opNotSupported;
type = detectFunctionOperator("4/5", 3);
TEST_ASSERT_TRUE(opDiv == type);
type = opNotSupported;
type = detectFunctionOperator("4:5", 3);
TEST_ASSERT_TRUE(opDiv == type);
}
void test_inputHandling_findExpFunctionType(void)
{
op type = opNotSupported;
type = detectFunctionOperator("4^5", 3);
TEST_ASSERT_TRUE(opExp == type);
}
void test_inputHandling_findEmptyFunctionType(void)
{
op type = opNotSupported;
type = detectFunctionOperator(halloWelt, 10);
TEST_ASSERT_TRUE(opEmpty == type);
}
void test_inputHandling_getNumbersNoFormular(void)
{
char* pnt = NULL;
pnt = getNumbers(halloWelt, 10, &formula);
TEST_ASSERT_NULL(pnt);
}
void test_inputHandling_getNumbersAddFormular(void)
{
char* pnt = NULL;
char add[] = "4+5";
formula.functionsType = detectFunctionOperator(add,3);
TEST_ASSERT_TRUE(formula.functionsType == opAdd);
pnt = getNumbers(add, 3, &formula);
showStruct(&formula);
TEST_ASSERT_NULL(pnt);
TEST_ASSERT_EQUAL_DOUBLE(4.0, formula.inputNumbers[0]);
TEST_ASSERT_EQUAL_DOUBLE(5.0, formula.inputNumbers[1]);
TEST_ASSERT_EQUAL_INT(2, formula.arrayLength);
}
void test_inputHandling_getNumbersSubFormular(void)
{
char* pnt = NULL;
char sub[] = "4-5";
formula.functionsType = detectFunctionOperator(sub,3);
TEST_ASSERT_TRUE(formula.functionsType == opSub);
pnt = getNumbers(sub, 3, &formula);
showStruct(&formula);
TEST_ASSERT_NULL(pnt);
TEST_ASSERT_EQUAL_DOUBLE(4.0, formula.inputNumbers[0]);
TEST_ASSERT_EQUAL_DOUBLE(5.0, formula.inputNumbers[1]);
TEST_ASSERT_EQUAL_INT(2, formula.arrayLength);
}
void test_inputHandling_getNumbersMultiFormular(void)
{
char* pnt = NULL;
char multi[] = "4*5";
formula.functionsType = detectFunctionOperator(multi,3);
TEST_ASSERT_TRUE(formula.functionsType == opMult);
pnt = getNumbers(multi, 3, &formula);
showStruct(&formula);
TEST_ASSERT_NULL(pnt);
TEST_ASSERT_EQUAL_DOUBLE(4.0, formula.inputNumbers[0]);
TEST_ASSERT_EQUAL_DOUBLE(5.0, formula.inputNumbers[1]);
TEST_ASSERT_EQUAL_INT(2, formula.arrayLength);
}
void test_inputHandling_getNumbersDivFormular(void)
{
char* pnt = NULL;
char div[] = "4/5";
formula.functionsType = detectFunctionOperator(div,3);
TEST_ASSERT_TRUE(formula.functionsType == opDiv);
pnt = getNumbers(div, 3, &formula);
showStruct(&formula);
TEST_ASSERT_NULL(pnt);
TEST_ASSERT_EQUAL_DOUBLE(4.0, formula.inputNumbers[0]);
TEST_ASSERT_EQUAL_DOUBLE(5.0, formula.inputNumbers[1]);
TEST_ASSERT_EQUAL_INT(2, formula.arrayLength);
}
void test_inputHandling_getNextCalc(void)
{
calc_op* pnt = NULL;
char add[] = "4+5";
processInput(add, 3);
pnt = getNextCalc();
TEST_ASSERT_NOT_NULL(pnt);
TEST_ASSERT_TRUE(pnt->functionsType == opAdd);
pnt = getNextCalc();
TEST_ASSERT_NOT_NULL(pnt);
TEST_ASSERT_TRUE(pnt->functionsType == opResult);
pnt = getNextCalc();
TEST_ASSERT_NULL(pnt);
}
#endif // TEST