diff options
author | cathook <cat.hook31894@gmail.com> | 2013-11-26 01:09:02 +0800 |
---|---|---|
committer | cathook <cat.hook31894@gmail.com> | 2013-11-26 01:09:02 +0800 |
commit | 2c8fe1a747c282964cf93fc4f54a8fe143c424b8 (patch) | |
tree | a5ce10c93577d081ed48a3235b2545c0afeea0ea | |
parent | 0e595fc7ef0a8e6deafebab7ac4437a471f52686 (diff) | |
parent | b0d32e3347cd54b33db505720667e4b274126f21 (diff) | |
download | ctl-2c8fe1a747c282964cf93fc4f54a8fe143c424b8.tar.gz ctl-2c8fe1a747c282964cf93fc4f54a8fe143c424b8.tar.zst ctl-2c8fe1a747c282964cf93fc4f54a8fe143c424b8.zip |
Merge branch 'feature-test'
-rw-r--r-- | src/vector.c | 6 | ||||
-rw-r--r-- | test/test.c | 60 |
2 files changed, 55 insertions, 11 deletions
diff --git a/src/vector.c b/src/vector.c index 317ddf1..2d4db17 100644 --- a/src/vector.c +++ b/src/vector.c @@ -128,8 +128,8 @@ pvoid ctl_vector_copyX(ppvoid v, ppcvoid v2){ } int ctl_vector_replaceX( ppvoid v , uint start1, uint length1, ppcvoid v2, uint start2, int length2){ - int end1 = start1 + length1 - 1; - int end2 = start2 + abs(length2) - 1, step2 = 1; + int end1 = (int)start1 + length1 - 1; + int end2 = (int)start2 + abs(length2) - 1, step2 = 1; if(length2 < 0){ length2 *= -1; step2 *= -1; @@ -152,7 +152,7 @@ int ctl_vector_replaceX( ppvoid v , uint start1, uint length1, } ctl_vector_setSize(v, sz0 - delta); } - for( ; start2 != end2; start2 += step2, start1 += 1){ + for(end2 += step2; start2 != end2; start2 += step2, start1 += 1){ ctl_vector_setEntry(v, start1, ctl_vector_getEntry(v2, start2)); } } diff --git a/test/test.c b/test/test.c index ce4dfed..81dde9c 100644 --- a/test/test.c +++ b/test/test.c @@ -13,12 +13,15 @@ const char *test_name[2] = { "vector" }; -const char **func_name[2] = { - {"ctl_malloc()", "ctl_realloc()", "ctl_free()", "ctl_swap"}, - {} -}; - - +void printVector(const char *s, int *k){ + int count = ctl_vector_getSize(&k); + int size = ctl_vector_getEntrySize(&k); + printf("vecotr %s: (count = %d, size = %d)\n", s, count, size); + int i; + for(i = 0; i < count; i++) + printf(" [%d] = %d\n", i, k[i]); + printf("\n"); +} int main(){ while(1){ @@ -31,16 +34,57 @@ int main(){ scanf("%d", &k); if(k < 0 || k >= END) return 0; - test_id = (TestID)k; + test_id = k; switch(test_id){ case TEST_UTILITY: break; case TEST_VECTOR: - + { + int *v1, *v2, a, b; + v1 = ctl_vector_init(&v1, sizeof(int), 5); + v2 = ctl_vector_init(&v2, sizeof(int), 6); + printVector("v1", v1); + printVector("v2", v2); + + a = 3, ctl_vector_setSize(&v1, a); printf("let count of v1 = %d\n", a); + a = 0, b = 2; v1[a] = b; printf("let v1[%d] = %d\n", a, b); + a = 1, b = 3; v1[a] = b; printf("let v1[%d] = %d\n", a, b); + a = 2, b = 4; v1[a] = b; printf("let v1[%d] = %d\n", a, b); + a = 8, ctl_vector_setSize(&v1, a); printf("let count of v1 = %d\n", a); + a = 3, b = 5; v1[a] = b; printf("let v1[%d] = %d\n", a, b); + a = 4, b = 6; v1[a] = b; printf("let v1[%d] = %d\n", a, b); + a = 5, b = 9; v1[a] = b; printf("let v1[%d] = %d\n", a, b); + a = 6, b = 2; v1[a] = b; printf("let v1[%d] = %d\n", a, b); + a = 7, b = 1; v1[a] = b; printf("let v1[%d] = %d\n", a, b); + a = 1, b = 8; v1[a] = b; printf("let v1[%d] = %d\n", a, b); + ctl_vector_delBack(&v1); printf("delBack(&v1)\n"); + ctl_vector_delBack(&v1); printf("delBack(&v1)\n"); + a = 5, ctl_vector_addBack(&v1, &a); printf("addBack(&v1, %d)\n", a); + + a = 0, b = 0; v2[a] = b; printf("let v2[%d] = %d\n", a, b); + a = 1, b = 1; v2[a] = b; printf("let v2[%d] = %d\n", a, b); + a = 2, b = 2; v2[a] = b; printf("let v2[%d] = %d\n", a, b); + a = 3, b = 3; v2[a] = b; printf("let v2[%d] = %d\n", a, b); + a = 4, b = 4; v2[a] = b; printf("let v2[%d] = %d\n", a, b); + a = 5, b = 5; v2[a] = b; printf("let v2[%d] = %d\n", a, b); + + printVector("v1", v1); + printVector("v2", v2); + ctl_vector_cat(&v2, &v1); + printf("cat(&v2, &v1)\n"); + printVector("v1", v1); + printVector("v2", v2); + ctl_vector_copy(&v2, &v1); + printf("copy(&v2, &v1)\n"); + printVector("v1", v1); + printVector("v2", v2); + + } break; default: printf("Sorry, this part has not completed...\n"); } } + return 0; } |