-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.c
89 lines (83 loc) · 1.95 KB
/
test.c
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include "vector.h"
#include "algorithm.h"
#include "fstream.h"
#include <stdio.h>
#include <assert.h>
void unit_test_vector();
void unit_test_algorithm();
void unit_test_fstream();
int main()
{
unit_test_vector();
//unit_test_algorithm();
unit_test_fstream();
return 0;
}
void unit_test_vector()
{
printf("unit-testing vector...\n");
vector v = create_vector();
for(unsigned int i = 0; i < 5; i++)
{
int x = i * 2;
push_back(&v, &x);
}
size_t original_size = v.size;
for(unsigned int i = 0; i < 5; i++)
{
int x = i * 2;
assert(*(int*)(at(v, i)) == x);
}
int* last = (int*)pop_back(&v);
assert(*last == 8);
free(last);
assert(v.size < original_size);
int zero = 0;
resize(&v, 100, &zero);
assert(v.size == 100);
clear(&v);
assert(v.size == 0);
destroy_vector(&v);
printf("unit test for vector complete.\n");
}
int compare_int(void* left, void* right)
{
int l = *(int*)(left);
int r = *(int*)(right);
return l > r;
}
void unit_test_algorithm()
{
printf("testing algorithm...\n");
// unsorted = 1, 5, 9, 78, 0, 2, 10
// sorted = 0, 1, 2, 5, 9, 10, 78
printf("testing bubble-sort...\n");
vector v = create_vector();
int unsorted[7] = {1, 5, 9, 78, 0, 2, 10};
int sorted[7] = {0, 1, 2, 5, 9, 10, 78};
for(size_t i = 0; i < 7; i++)
push_back(&v, &unsorted[i]);
bubble_sort(&v, &compare_int);
for(size_t i = 0; i < 7; i++)
assert(*(int*)at(v, i) == sorted[i]);
destroy_vector(&v);
printf("testing merge-sort...\n");
vector vec = create_vector();
for(size_t i = 0; i < 7; i++)
push_back(&vec, &unsorted[i]);
merge_sort(&vec, &compare_int);
print_elements(vec);
printf("unit test for algorithm complete.\n");
}
void unit_test_fstream()
{
printf("testing fstream...\n");
ifstream test = open("test.txt");
assert(test.good);
read_all(&test);
printf("%s\n", test.buffer);
close(&test);
ofstream test_edit = edit_file("test.txt");
write(&test_edit, "i added some more data to this file!\n");
printf("unit test for fstream complete");
}