
- 17th Nov 2022
- 16:59 pm
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include "intarr.h"
int main(void)
{
// Test the intarr_create function
int length = 10;
intarr_t* ptr = intarr_create(length);
assert(ptr->len==length);
for(int i=0;i<length;i++)
assert(ptr->data[i]==0);
// Test the intarr_set function
intarr_t* ia = NULL;
intarr_result_t ret = intarr_set(ia, 10, 2);
assert(ret==INTARR_BADARRAY);
ret = intarr_set(ptr, -1, 2);
assert(ret==INTARR_BADINDEX);
ret = intarr_set(ptr, length, 2);
assert(ret==INTARR_BADINDEX);
ret = intarr_set(ptr,1, 2);
assert(ret==INTARR_OK);
assert(ptr->data[1]==2);
// Test the intarr_get function
int val;
ret = intarr_get(ia, 3, &val);
assert(ret==INTARR_BADARRAY);
ret = intarr_get(ptr, length, &val);
assert(ret==INTARR_BADINDEX);
int index = 2;
ptr->data[index] = 5;
ret = intarr_get(ptr,index,&val);
assert(val==ptr->data[index]);
assert(ret==INTARR_OK);
// Test the intarr_copy function
ia = intarr_copy(ptr);
assert(ia->len==ptr->len);
for(int i=0;i<ptr->len;i++)
assert(ia->data[i]==ptr->data[i]);
// Test the intarr_sort function
ret = intarr_sort(ptr);
for(int i=0;i<(ptr->len)-1;i++)
assert(ptr->data[i]<=ptr->data[i+1]);
assert(ret==INTARR_OK);
ia = NULL;
ret = intarr_sort(ia);
assert(ret==INTARR_BADARRAY);
// Test the intarr_find function
ret = intarr_find(ia,1,&val);
assert(ret==INTARR_BADARRAY);
for(int i=0;i<ptr->len;i++)
ptr->data[i] = i;
ret = intarr_find(ptr,5,&val);
assert(ret==INTARR_OK);
assert(val==5);
val = -2;
ret = intarr_find(ptr,15,&val);
assert(ret==INTARR_NOTFOUND);
assert(val==-2);
// Test the intarr_resize function
ret = intarr_resize(ia, 20);
assert(ia->len==20);
assert(ret==INTARR_OK);
return 0;
}