1#include "Utility.h"
2
3#include <List.h>
4#include <stdlib.h>
5#include <stdio.h>
6
7
8const int32 kBlockSize = 1024;
9
10int32 gNumber = 100000;
11BList gList;
12BlockArray gArray(kBlockSize);
13
14
15void
16dumpArray()
17{
18	printf("  items in array: %ld\n",gArray.CountItems());
19	printf("  blocks used:    %ld\n",gArray.BlocksUsed());
20	printf("  size:           %ld\n",gArray.Size());
21}
22
23
24int
25main(int argc,char **argv)
26{
27	srand(42);
28
29	// insert numbers in the array
30
31	for (int32 i = 0;i < gNumber;i++) {
32		int32 num = rand();
33		if (num == 0)
34			num++;
35
36		if (gArray.Insert(num) == B_OK)
37			gList.AddItem((void *)num);
38		else if (gArray.Find(num) < 0) {
39			printf("Could not insert entry in array, but it's not in there either...\n");
40			dumpArray();
41		} else
42			printf("hola\n");
43	}
44
45	// check for numbers in the array
46
47	for (int32 i = 0;i < gNumber;i++) {
48		int32 num = (int32)gList.ItemAt(i);
49
50		if (gArray.Find(num) < 0) {
51			printf("could not found entry %ld in array!\n",num);
52			dumpArray();
53		}
54	}
55
56	// iterate through the array
57
58	sorted_array *array = gArray.Array();
59	for (int32 i = 0;i < array->count;i++) {
60		if (!gList.HasItem((void *)array->values[i])) {
61			printf("Could not find entry %lld at %ld in list!\n",array->values[i],i);
62			dumpArray();
63		}
64	}
65	return 0;
66}
67