|
|
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <unity.h>
#include "../src/stringManipulation.c"
void test_toUnsignedInteger() { /*variables*/ char *n1 = "176", *n2 = "199", *n3 = "200", *n4 = "500", *n5 = "600", *n6 = "700"; /*assertions*/ TEST_ASSERT_EQUAL_INT(176,toUnsignedInteger(n1)); TEST_ASSERT_EQUAL_INT(199,toUnsignedInteger(n2)); TEST_ASSERT_EQUAL_INT(200,toUnsignedInteger(n3)); TEST_ASSERT_EQUAL_INT(500,toUnsignedInteger(n4)); TEST_ASSERT_EQUAL_INT(600,toUnsignedInteger(n5)); TEST_ASSERT_EQUAL_INT(700,toUnsignedInteger(n6)); }
void test_everyCharacterIsDigit() { /*test block 1*/ char *expectTrue[] = {"0","11","222","3333","4444","134132","12352378","12847273","1237873","9992475","987232","34723873278","578347823783","758378723","44293884742", "3184123872873","8912892383","18282828","55757575757528282","123823883282383282575757283832","99999999999999999999999999999999999","128321378","81293982139823","21412323" "575757575754646464648383838383","1298557648298219821398129381928391283918238912831283928391283129839281391283918238912391238912839182391239857517828"}; int length = sizeof(expectTrue)/sizeof(char *); for(int i=0;i<length;++i){ TEST_ASSERT_TRUE(everyCharacterIsDigit(expectTrue[i])); }
/*test block 2*/ char *expectFalse[] = {"a","bcd","dhdd","3asad87","askj","nxbdj","489sjk2kj","kjasjkd38234","aksjlas","bcbc838ch","akjsjkdjkq919191","askjsdakj492","kasjcncn","9919a19","cbajsh","askjajkd","ajshdasjh","jyxhyxjchyx","kasjdakj","vbvb88888888888888828282828282828askjh"}; length = sizeof(expectFalse)/sizeof(char *); for(int i=0;i<length;++i){ TEST_ASSERT_FALSE(everyCharacterIsDigit(expectFalse[i])); } }
void test_power() { /*test block 1*/ int testValues[] = {1,2,3,4,5,6,7,8,9,10}; int expectedValues[] = {1,4,9,16,25,36,49,64,81,100}; int length = sizeof(testValues)/sizeof(int); const int exponent = 2; for(int i=0;i<length;++i){ TEST_ASSERT_EQUAL_INT(expectedValues[i], power(testValues[i],exponent)); }
/*test block 2*/ int testValues_2[] = {11,12,13,14,15,16,17,18,19,20}; int expectedValues_2[] = {121,144,169,196,225,256,289,324,361,400}; length = sizeof(testValues_2)/sizeof(int); for(int i=0;i<length;++i){ TEST_ASSERT_EQUAL_INT(expectedValues_2[i],power(testValues_2[i],exponent)); } /*test block 3*/ int testValues_3[] = {1,2,3,4,5,6,7,8,9,10}; int expectedValues_3[] = {1,8,27,64,125,216,343,512,729,1000}; const int exponent_2 = 3; length = sizeof(testValues_3)/sizeof(int); for(int i=0;i<length;++i){ TEST_ASSERT_EQUAL_INT(expectedValues_3[i],power(testValues_3[i],exponent_2)); } /*test block 4*/ int testValues_4[] = {11,12,13,14,15,16,17,18,19,20}; int expectedValues_4[] = {1331,1728,2197,2744,3375,4096,4913,5832,6859,8000}; length = sizeof(testValues_4)/sizeof(int); for(int i=0;i<length;++i){ TEST_ASSERT_EQUAL_INT(expectedValues_4[i],power(testValues_4[i],exponent_2)); } /*test block 5*/ int testValues_5[] = {0,0,19,2,4,5,11,54,32,12,77}; int exponents[] = {0,1,2,7,4,2,0,1,2,4,2}; int expectedValues_5[] = {0, 0, 361,128,256,25,1,54,1024,20736,5929}; length = sizeof(testValues_5)/sizeof(int); for(int i=0;i<length;++i){ TEST_ASSERT_EQUAL_INT(expectedValues_5[i], power(testValues_5[i],exponents[i])); } }
void test_to_string() { /*initializing test values*/ char *result_1[] = {"0","1","2","3","4","5","6","7","8","9","10"}; char *result_2[] = {"500","502","504","506","508","510","512","514","516","518"}; char *result_3[] = {"1000","2000","3000","4000","5000","6000","7000","8000","9000","10000"}; char *result_4[] = {"9999","8999","7999","6999","5999","4999","3999","2999","1999","999"}; char *result_5[] = {"1000000","2000000","3000000","4000000","5000000","6000000","7000000", "8000000","9000000","10000000"};
/*assertions*/ for(int i=0;i<=10;++i){ TEST_ASSERT_EQUAL_STRING(result_1[i],to_string(i)); } for(int i=0, j=500;i<10;++i,j+=2){ TEST_ASSERT_EQUAL_STRING(result_2[i],to_string(j)); }
for(int i=0, j=1000;i<10;++i,j+=1000){ TEST_ASSERT_EQUAL_STRING(result_3[i],to_string(j)); } for(int i=0, j=9999;i<10;++i,j-=1000){ TEST_ASSERT_EQUAL_STRING(result_4[i], to_string(j)); } for(int i=0, j=1000000;i<10;++i,j+=1000000){ TEST_ASSERT_EQUAL_STRING(result_5[i],to_string(j)); }
}
void test_generateCheckString() { /*test block 1*/ int numbers_1[] = {0,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}; char *strings_1[] = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"}; char *result_1[] = {"0=a","1=b","2=c","3=d","4=e","5=f","6=g","7=h","8=i","9=j","10=k","11=l","12=m","13=n","14=o","15=p","16=q","17=r", "18=s","19=t","20=u","21=v","22=w","23=x","24=y","25=z"}; for(int i=0;i<26;++i){ TEST_ASSERT_EQUAL_STRING(result_1[i],generateCheckString(numbers_1[i],*(strings_1+i))); } /*test block 2*/ int numbers_2[] = {0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,75025}; char *strings_2[] = {"z","zy","zyx","zyxw","zyxwv","zyxwvu","zyxwvut","zyxwvuts","zyxwvutsr","zyxwvutsrq","zyxwvutsrqp", "zyxwvutsrqpo","zyxwvutsrqpon","zyxwvutsrqponm","zyxwvutsrqponml","zyxwvutsrqponmlk", "zyxwvutsrqponmlkj","zyxwvutsrqponmlkji","zyxwvutsrqponmlkjih","zyxwvutsrqponmlkjihg","zyxwvutsrqponmlkjihgf", "zyxwvutsrqponmlkjihgfe","zyxwvutsrqponmlkjihgfed","zyxwvutsrqponmlkjihgfedc","zyxwvutsrqponmlkjihgfedcb", "zyxwvutsrqponmlkjihgfedcba"}; char *result_2[] = {"0=z","1=zy","1=zyx","2=zyxw","3=zyxwv","5=zyxwvu","8=zyxwvut","13=zyxwvuts","21=zyxwvutsr","34=zyxwvutsrq", "55=zyxwvutsrqp","89=zyxwvutsrqpo","144=zyxwvutsrqpon","233=zyxwvutsrqponm","377=zyxwvutsrqponml", "610=zyxwvutsrqponmlk","987=zyxwvutsrqponmlkj","1597=zyxwvutsrqponmlkji","2584=zyxwvutsrqponmlkjih", "4181=zyxwvutsrqponmlkjihg","6765=zyxwvutsrqponmlkjihgf","10946=zyxwvutsrqponmlkjihgfe", "17711=zyxwvutsrqponmlkjihgfed","28657=zyxwvutsrqponmlkjihgfedc","46368=zyxwvutsrqponmlkjihgfedcb", "75025=zyxwvutsrqponmlkjihgfedcba"}; for(int i=0;i<26;++i){ TEST_ASSERT_EQUAL_STRING(result_2[i],generateCheckString(numbers_2[i],*(strings_2+i))); } /*test block 3*/ srand(time(0)); int random_number=0; char *random_numbers_strings[20]; int random_numbers[20]; for(int i=0;i<20;++i){ random_number = (rand() % 100) + 1; random_numbers_strings[i] = to_string(random_number); random_numbers[i] = random_number; } char *strings_3[] = {"tree","plant","tea","programming","assembler","unix","BSD","snow","mountain","table","wood","forest", "calculator","book","light","keyboard","old","paper","pencil","voltage"}; char *result_3[20]; for(int i=0;i<20;++i){ random_numbers_strings[i] = strcat(random_numbers_strings[i],"="); result_3[i] = strcat(random_numbers_strings[i],strings_3[i]); printf("%s\n",result_3[i]); } for(int i=0;i<20;++i){ TEST_ASSERT_EQUAL_STRING(result_3[i],generateCheckString(random_numbers[i],strings_3[i])); } }
|