aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcathook <cat.hook31894@gmail.com>2013-11-26 01:09:02 +0800
committercathook <cat.hook31894@gmail.com>2013-11-26 01:09:02 +0800
commit2c8fe1a747c282964cf93fc4f54a8fe143c424b8 (patch)
treea5ce10c93577d081ed48a3235b2545c0afeea0ea
parent0e595fc7ef0a8e6deafebab7ac4437a471f52686 (diff)
parentb0d32e3347cd54b33db505720667e4b274126f21 (diff)
downloadctl-2c8fe1a747c282964cf93fc4f54a8fe143c424b8.tar.gz
ctl-2c8fe1a747c282964cf93fc4f54a8fe143c424b8.tar.zst
ctl-2c8fe1a747c282964cf93fc4f54a8fe143c424b8.zip
Merge branch 'feature-test'
-rw-r--r--src/vector.c6
-rw-r--r--test/test.c60
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;
}