1 /*****************************************************************************
2 * Copyright (c) 2019 FrontISTR Commons
3 * This software is released under the MIT License, see LICENSE.txt
4 *****************************************************************************/
5
6 #include <stdio.h>
7 #include "hecmw_config.h"
8 #include "hecmw_varray_int.h"
9
main()10 int main() {
11 struct hecmw_varray_int va, vb;
12 int i;
13 int ndup;
14 int *vb_vals;
15
16 if (HECMW_varray_int_init(&va) != HECMW_SUCCESS) {
17 perror("init va");
18 return HECMW_EXIT_ERROR;
19 }
20
21 for (i = 0; i < 1000; i += 7) {
22 if (HECMW_varray_int_append(&va, i % 13) != HECMW_SUCCESS) {
23 perror("append va");
24 return HECMW_EXIT_ERROR;
25 }
26 }
27
28 printf("Initial va:");
29 for (i = 0; i < HECMW_varray_int_nval(&va); i++) {
30 printf(" %d", HECMW_varray_int_get(&va, i));
31 }
32 printf("\n");
33
34 if (HECMW_varray_int_sort(&va) != HECMW_SUCCESS) {
35 perror("sort va");
36 return HECMW_EXIT_ERROR;
37 }
38
39 printf("After sorting va:");
40 for (i = 0; i < HECMW_varray_int_nval(&va); i++) {
41 printf(" %d", HECMW_varray_int_get(&va, i));
42 }
43 printf("\n");
44
45 ndup = HECMW_varray_int_uniq(&va);
46 printf("%d elemeent(s) removed\n", ndup);
47
48 printf("After uniq va:");
49 for (i = 0; i < HECMW_varray_int_nval(&va); i++) {
50 printf(" %d", HECMW_varray_int_get(&va, i));
51 }
52 printf("\n");
53
54 if (HECMW_varray_int_init(&vb) != HECMW_SUCCESS) {
55 perror("init vb");
56 return HECMW_EXIT_ERROR;
57 }
58
59 if (HECMW_varray_int_resize(&vb, 100) != HECMW_SUCCESS) {
60 perror("resize vb");
61 return HECMW_EXIT_ERROR;
62 }
63
64 vb_vals = HECMW_varray_int_get_v(&vb);
65
66 if (vb_vals == NULL) {
67 perror("get_v vb");
68 return HECMW_EXIT_ERROR;
69 }
70
71 for (i = 0; i < 100; i++) {
72 vb_vals[i] = i * 23 % 31;
73 }
74
75 printf("Initial vb:");
76 for (i = 0; i < HECMW_varray_int_nval(&vb); i++) {
77 printf(" %d", HECMW_varray_int_get(&vb, i));
78 }
79 printf("\n");
80
81 if (HECMW_varray_int_cat(&va, &vb) != HECMW_SUCCESS) {
82 perror("cat va vb");
83 return HECMW_EXIT_ERROR;
84 }
85
86 printf("After cat va&vb:");
87 for (i = 0; i < HECMW_varray_int_nval(&va); i++) {
88 printf(" %d", HECMW_varray_int_get(&va, i));
89 }
90 printf("\n");
91
92 if (HECMW_varray_int_rmdup(&va) != HECMW_SUCCESS) {
93 perror("rmdup va");
94 return HECMW_EXIT_ERROR;
95 }
96
97 printf("After rmdup va:");
98 for (i = 0; i < HECMW_varray_int_nval(&va); i++) {
99 printf(" %d", HECMW_varray_int_get(&va, i));
100 }
101 printf("\n");
102
103 HECMW_varray_int_finalize(&vb);
104 HECMW_varray_int_finalize(&va);
105
106 return HECMW_EXIT_SUCCESS;
107 }
108