Login
Order Now
Support
C Programming Solution for CourSys Task

C Programming Solution for CourSys Task

  • 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;
}
 

Share this post

assignment helpassignment helperassignment expertsassignment writing services