/simpletypesystem/trunk

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/simpletypesystem/trunk
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "SimpleTypeSystem.h"
#include "test_macros.h"
#include <stdlib.h>
#include <stdint.h>
#include <time.h>

void
for_each_print_arr (SDynamicArray * self, sint item, sint * itt) {
  s_print ("The number is: %d on iteration: %d\n", item, (*itt));
  (*itt)++;
}

int test_dynamic_array (void) {
  setup_unit ();

  SDynamicArray * array = NULL;
  array = s_dynamic_array_new (20, NULL);

  test_case (array != NULL, "Array is not null");

  test_case (s_dynamic_array_size (array) == 20, "The array maximum size is 20");

  s_print ("Adding a random number to a random possision in the array"
           " (bettween 0 and 20).\n");

  srand(time(NULL));

  sint r_n = rand ();
  sint r_p = rand () % 20;

  s_dynamic_array_set (array, r_p, (spointer)(intptr_t) r_n);

  test_case ((intptr_t) s_dynamic_array_get (array, r_p) == r_n,
             "The the inserted random number matches the generated number.");

  s_print ("Adding a number (12345) to index 21\n");

  s_dynamic_array_set (array, 21, (spointer)(sint *) 12345);

  test_case (s_dynamic_array_size (array) > 20, "The new size is larger then the old size.");

  s_print ("Filling array with numbers: 0-32\n");

  for (sint i = 0; i < s_dynamic_array_size (array); i++) {
    s_dynamic_array_set (array, i, (spointer)(intptr_t) i);
  }
  for (sint i = 0; i < s_dynamic_array_size (array); i++) {
    sint got_val = (intptr_t) s_dynamic_array_get(array, i);
    test_case (got_val == i, "The stored value (%d) matches the expected value (%d).", i, got_val);
  }

  sint itt = 0;
  s_print ("Printing array using a for-each function.\n");
  s_dynamic_array_for_each (array, FOREACHFUNC (for_each_print_arr), &itt);

  s_dynamic_array_free (array, FALSE);

  end_unit ();
}