tests/test_list.c

Fri, 10 Oct 2025 17:24:19 +0200

author
Mike Becker <universe@uap-core.de>
date
Fri, 10 Oct 2025 17:24:19 +0200
changeset 1419
e46406fd1b3c
parent 1388
edc34e904fe3
permissions
-rw-r--r--

add functions to insert elements into lists/arrays without duplicates - resolves #557

798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1 /*
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
3 *
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
4 * Copyright 2023 Mike Becker, Olaf Wintermann All rights reserved.
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
5 *
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
6 * Redistribution and use in source and binary forms, with or without
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
7 * modification, are permitted provided that the following conditions are met:
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
8 *
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
9 * 1. Redistributions of source code must retain the above copyright
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
10 * notice, this list of conditions and the following disclaimer.
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
11 *
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
12 * 2. Redistributions in binary form must reproduce the above copyright
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
13 * notice, this list of conditions and the following disclaimer in the
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
14 * documentation and/or other materials provided with the distribution.
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
15 *
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
26 * POSSIBILITY OF SUCH DAMAGE.
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
27 */
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
28
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
29 #include "cx/test.h"
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
30 #include "util_allocator.h"
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
31 #include "cx/compare.h"
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
32
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
33 #include "cx/array_list.h"
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
34 #include "cx/linked_list.h"
1350
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
35 #include "cx/kv_list.h"
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
36
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
37 #include <stdarg.h>
998
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
38 #include <errno.h>
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
39
818
2be8fe3d5a2d add cx_array_add() + fix type of cx_array_default_reallocator
Mike Becker <universe@uap-core.de>
parents: 807
diff changeset
40 CX_TEST(test_array_add) {
986
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
41 CX_ARRAY_DECLARE(int, arr);
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
42 arr = cxCallocDefault(5, sizeof(int));
986
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
43 arr[0] = 2;
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
44 arr[1] = 3;
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
45 arr[2] = 5;
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
46 arr[3] = 7;
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
47 arr[4] = 11;
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
48 arr_size = 3;
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
49 arr_capacity = 5;
818
2be8fe3d5a2d add cx_array_add() + fix type of cx_array_default_reallocator
Mike Becker <universe@uap-core.de>
parents: 807
diff changeset
50 int elem = 8, elem2 = 47;
986
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
51 int result;
818
2be8fe3d5a2d add cx_array_add() + fix type of cx_array_default_reallocator
Mike Becker <universe@uap-core.de>
parents: 807
diff changeset
52 CX_TEST_DO {
986
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
53 result = cx_array_simple_add(arr, elem);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
54 CX_TEST_ASSERT(result == 0);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
55 CX_TEST_ASSERT(arr[0] == 2);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
56 CX_TEST_ASSERT(arr[1] == 3);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
57 CX_TEST_ASSERT(arr[2] == 5);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
58 CX_TEST_ASSERT(arr[3] == 8);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
59 CX_TEST_ASSERT(arr[4] == 11);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
60 CX_TEST_ASSERT(arr_size == 4);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
61 CX_TEST_ASSERT(arr_capacity == 5);
818
2be8fe3d5a2d add cx_array_add() + fix type of cx_array_default_reallocator
Mike Becker <universe@uap-core.de>
parents: 807
diff changeset
62
986
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
63 arr_size = 5;
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
64 result = cx_array_simple_add(arr, elem2);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
65 CX_TEST_ASSERT(result == 0);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
66 CX_TEST_ASSERT(arr[0] == 2);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
67 CX_TEST_ASSERT(arr[1] == 3);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
68 CX_TEST_ASSERT(arr[2] == 5);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
69 CX_TEST_ASSERT(arr[3] == 8);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
70 CX_TEST_ASSERT(arr[4] == 11);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
71 CX_TEST_ASSERT(arr[5] == 47);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
72 CX_TEST_ASSERT(arr_size == 6);
38fa7e41194c simplify cx_array_copy() - fixes #474
Mike Becker <universe@uap-core.de>
parents: 985
diff changeset
73 CX_TEST_ASSERT(arr_capacity >= 6);
818
2be8fe3d5a2d add cx_array_add() + fix type of cx_array_default_reallocator
Mike Becker <universe@uap-core.de>
parents: 807
diff changeset
74 }
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
75 cxFreeDefault(arr);
818
2be8fe3d5a2d add cx_array_add() + fix type of cx_array_default_reallocator
Mike Becker <universe@uap-core.de>
parents: 807
diff changeset
76 }
2be8fe3d5a2d add cx_array_add() + fix type of cx_array_default_reallocator
Mike Becker <universe@uap-core.de>
parents: 807
diff changeset
77
998
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
78 CX_TEST(test_array_add8) {
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
79 CX_ARRAY_DECLARE_SIZED(int, arr, uint8_t);
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
80 arr = cxCallocDefault(5, sizeof(int));
998
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
81 arr[0] = 2;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
82 arr[1] = 3;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
83 arr[2] = 5;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
84 arr[3] = 7;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
85 arr[4] = 11;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
86 arr_size = 3;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
87 arr_capacity = 5;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
88 int elem = 8, elem2 = 47;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
89 int result;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
90 CX_TEST_DO {
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
91 result = cx_array_simple_add(arr, elem);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
92 CX_TEST_ASSERT(result == 0);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
93 CX_TEST_ASSERT(arr[0] == 2);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
94 CX_TEST_ASSERT(arr[1] == 3);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
95 CX_TEST_ASSERT(arr[2] == 5);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
96 CX_TEST_ASSERT(arr[3] == 8);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
97 CX_TEST_ASSERT(arr[4] == 11);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
98 CX_TEST_ASSERT(arr_size == 4);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
99 CX_TEST_ASSERT(arr_capacity == 5);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
100
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
101 arr_size = 5;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
102 result = cx_array_simple_add(arr, elem2);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
103 CX_TEST_ASSERT(result == 0);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
104 CX_TEST_ASSERT(arr[0] == 2);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
105 CX_TEST_ASSERT(arr[1] == 3);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
106 CX_TEST_ASSERT(arr[2] == 5);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
107 CX_TEST_ASSERT(arr[3] == 8);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
108 CX_TEST_ASSERT(arr[4] == 11);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
109 CX_TEST_ASSERT(arr[5] == 47);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
110 CX_TEST_ASSERT(arr_size == 6);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
111 CX_TEST_ASSERT(arr_capacity >= 6);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
112
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
113 result = cx_array_simple_copy(arr, 260, &elem, 1);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
114 CX_TEST_ASSERT(result != 0);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
115 CX_TEST_ASSERT(errno == EOVERFLOW);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
116 CX_TEST_ASSERT(arr_size == 6);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
117 CX_TEST_ASSERT(arr_capacity < 128);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
118 }
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
119 cxFreeDefault(arr);
998
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
120 }
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
121
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
122 CX_TEST(test_array_copy_unsupported_width) {
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
123 CX_ARRAY_DECLARE_SIZED(int, arr, uint16_t);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
124 cx_array_initialize(arr, 16);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
125 int result;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
126 CX_TEST_DO {
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
127 int elem = 5;
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
128 result = cx_array_copy(
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
129 (void **) &(arr),
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
130 &(arr_size),
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
131 &(arr_capacity),
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
132 12, // unsupported width
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
133 5,
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
134 &elem, sizeof(int),
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
135 1,
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
136 cx_array_default_reallocator
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
137 );
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
138 CX_TEST_ASSERT(result != 0);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
139 CX_TEST_ASSERT(errno == EINVAL);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
140 CX_TEST_ASSERT(arr_size == 0);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
141 CX_TEST_ASSERT(arr_capacity == 16);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
142 }
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
143 cxFreeDefault(arr);
998
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
144 }
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
145
999
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
146 CX_TEST(test_array_reserve) {
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
147 CX_ARRAY_DECLARE_SIZED(int, arr, uint16_t);
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
148 cx_array_initialize(arr, 16);
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
149 arr_size = 5;
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
150 int result;
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
151 CX_TEST_DO {
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
152 result = cx_array_simple_reserve(arr, 3);
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
153 CX_TEST_ASSERT(result == 0);
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
154 CX_TEST_ASSERT(arr_size == 5);
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
155 CX_TEST_ASSERT(arr_capacity == 16);
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
156
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
157 result = cx_array_simple_reserve(arr, 20);
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
158 CX_TEST_ASSERT(result == 0);
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
159 CX_TEST_ASSERT(arr_size == 5);
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
160 CX_TEST_ASSERT(arr_capacity >= 25);
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
161 }
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
162 cxFreeDefault(arr);
999
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
163 }
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
164
883
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
165 CX_TEST(test_array_insert_sorted) {
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
166 int d1 = 50;
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
167 int d2 = 80;
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
168 int d3 = 60;
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
169 int d4 = 40;
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
170 int d5 = 70;
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
171 int d6a[6] = {52, 54, 56, 62, 64, 75};
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
172 int d7a[6] = {51, 57, 58, 65, 77, 78};
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
173 int d8 = 90;
1419
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
174 int d9 = 56;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
175 int d10a[3] = {67, 75, 90};
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
176 int expected[22] = {
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
177 40, 50, 51, 52, 54, 56, 56, 57, 58, 60,
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
178 62, 64, 65, 67, 70, 75, 75, 77, 78, 80, 90, 90
883
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
179 };
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
180
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
181 CX_ARRAY_DECLARE(int, array);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
182 cx_array_initialize(array, 4);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
183
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
184 CX_TEST_DO {
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
185 CX_TEST_ASSERT(0 == cx_array_simple_add_sorted(array, d1, cx_cmp_int));
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
186 CX_TEST_ASSERT(array_size == 1);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
187 CX_TEST_ASSERT(array_capacity == 4);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
188 CX_TEST_ASSERT(0 == cx_array_simple_add_sorted(array, d2, cx_cmp_int));
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
189 CX_TEST_ASSERT(array_size == 2);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
190 CX_TEST_ASSERT(array_capacity == 4);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
191 CX_TEST_ASSERT(0 == cx_array_simple_add_sorted(array, d3, cx_cmp_int));
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
192 CX_TEST_ASSERT(array_size == 3);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
193 CX_TEST_ASSERT(array_capacity == 4);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
194 CX_TEST_ASSERT(0 == cx_array_simple_add_sorted(array, d4, cx_cmp_int));
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
195 CX_TEST_ASSERT(array_size == 4);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
196 CX_TEST_ASSERT(array_capacity == 4);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
197 CX_TEST_ASSERT(0 == cx_array_simple_add_sorted(array, d5, cx_cmp_int));
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
198 CX_TEST_ASSERT(array_size == 5);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
199 CX_TEST_ASSERT(array_capacity >= 5);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
200 CX_TEST_ASSERT(0 == cx_array_simple_insert_sorted(array, d6a, 6, cx_cmp_int));
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
201 CX_TEST_ASSERT(array_size == 11);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
202 CX_TEST_ASSERT(array_capacity >= 11);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
203 CX_TEST_ASSERT(0 == cx_array_simple_insert_sorted(array, d7a, 6, cx_cmp_int));
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
204 CX_TEST_ASSERT(array_size == 17);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
205 CX_TEST_ASSERT(array_capacity >= 17);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
206 CX_TEST_ASSERT(0 == cx_array_simple_add_sorted(array, d8, cx_cmp_int));
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
207 CX_TEST_ASSERT(array_size == 18);
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
208 CX_TEST_ASSERT(array_capacity >= 18);
1419
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
209 CX_TEST_ASSERT(0 == cx_array_simple_add_sorted(array, d9, cx_cmp_int));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
210 CX_TEST_ASSERT(array_size == 19);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
211 CX_TEST_ASSERT(array_capacity >= 19);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
212 CX_TEST_ASSERT(0 == cx_array_simple_insert_sorted(array, d10a, 3, cx_cmp_int));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
213 CX_TEST_ASSERT(array_size == 22);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
214 CX_TEST_ASSERT(array_capacity >= 22);
883
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
215
1419
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
216 CX_TEST_ASSERT(0 == memcmp(array, expected, 22 * sizeof(int)));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
217 }
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
218 cxFreeDefault(array);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
219 }
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
220
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
221 CX_TEST(test_array_insert_unique) {
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
222 int d1 = 50;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
223 int d2 = 80;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
224 int d3 = 60;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
225 int d4 = 40;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
226 int d5 = 70;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
227 int d6a[6] = {52, 54, 56, 62, 64, 75};
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
228 int d7a[6] = {51, 57, 58, 65, 77, 78};
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
229 int d8 = 90;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
230 int d9 = 56;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
231 int d10a[3] = {67, 75, 90};
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
232 int expected[19] = {
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
233 40, 50, 51, 52, 54, 56, 57, 58, 60,
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
234 62, 64, 65, 67, 70, 75, 77, 78, 80, 90
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
235 };
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
236
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
237 CX_ARRAY_DECLARE(int, array);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
238 cx_array_initialize(array, 4);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
239
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
240 CX_TEST_DO {
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
241 CX_TEST_ASSERT(0 == cx_array_simple_add_unique(array, d1, cx_cmp_int));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
242 CX_TEST_ASSERT(array_size == 1);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
243 CX_TEST_ASSERT(array_capacity == 4);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
244 CX_TEST_ASSERT(0 == cx_array_simple_add_unique(array, d2, cx_cmp_int));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
245 CX_TEST_ASSERT(array_size == 2);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
246 CX_TEST_ASSERT(array_capacity == 4);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
247 CX_TEST_ASSERT(0 == cx_array_simple_add_unique(array, d3, cx_cmp_int));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
248 CX_TEST_ASSERT(array_size == 3);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
249 CX_TEST_ASSERT(array_capacity == 4);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
250 CX_TEST_ASSERT(0 == cx_array_simple_add_unique(array, d4, cx_cmp_int));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
251 CX_TEST_ASSERT(array_size == 4);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
252 CX_TEST_ASSERT(array_capacity == 4);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
253 CX_TEST_ASSERT(0 == cx_array_simple_add_unique(array, d5, cx_cmp_int));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
254 CX_TEST_ASSERT(array_size == 5);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
255 CX_TEST_ASSERT(array_capacity >= 5);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
256 CX_TEST_ASSERT(0 == cx_array_simple_insert_unique(array, d6a, 6, cx_cmp_int));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
257 CX_TEST_ASSERT(array_size == 11);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
258 CX_TEST_ASSERT(array_capacity >= 11);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
259 CX_TEST_ASSERT(0 == cx_array_simple_insert_unique(array, d7a, 6, cx_cmp_int));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
260 CX_TEST_ASSERT(array_size == 17);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
261 CX_TEST_ASSERT(array_capacity >= 17);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
262 CX_TEST_ASSERT(0 == cx_array_simple_add_unique(array, d8, cx_cmp_int));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
263 CX_TEST_ASSERT(array_size == 18);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
264 CX_TEST_ASSERT(array_capacity >= 18);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
265 CX_TEST_ASSERT(0 == cx_array_simple_add_unique(array, d9, cx_cmp_int));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
266 CX_TEST_ASSERT(array_size == 18);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
267 CX_TEST_ASSERT(array_capacity >= 18);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
268 CX_TEST_ASSERT(0 == cx_array_simple_insert_unique(array, d10a, 3, cx_cmp_int));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
269 CX_TEST_ASSERT(array_size == 19);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
270 CX_TEST_ASSERT(array_capacity >= 19);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
271
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
272 CX_TEST_ASSERT(0 == memcmp(array, expected, 19 * sizeof(int)));
883
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
273 }
1319
aa1f580f8f59 add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
274 cxFreeDefault(array);
883
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
275 }
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
276
884
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
277 CX_TEST(test_array_binary_search) {
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
278 int array[18] = {
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
279 40, 50, 51, 52, 54, 56, 57, 58, 60,
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
280 62, 64, 65, 70, 75, 77, 78, 80, 90
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
281 };
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
282
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
283 CX_TEST_DO {
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
284 for (size_t i = 0; i < 18; i++) {
884
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
285 CX_TEST_ASSERT(i == cx_array_binary_search(array, 18, sizeof(int), &array[i], cx_cmp_int));
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
286 }
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
287
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
288 int s = 58;
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
289 CX_TEST_ASSERT(7 == cx_array_binary_search_inf(array, 18, sizeof(int), &s, cx_cmp_int));
886
5f5514bb104b also add a binary search for the supremum
Mike Becker <universe@uap-core.de>
parents: 885
diff changeset
290 CX_TEST_ASSERT(7 == cx_array_binary_search_sup(array, 18, sizeof(int), &s, cx_cmp_int));
884
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
291 s = 60;
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
292 CX_TEST_ASSERT(8 == cx_array_binary_search_inf(array, 18, sizeof(int), &s, cx_cmp_int));
886
5f5514bb104b also add a binary search for the supremum
Mike Becker <universe@uap-core.de>
parents: 885
diff changeset
293 CX_TEST_ASSERT(8 == cx_array_binary_search_sup(array, 18, sizeof(int), &s, cx_cmp_int));
884
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
294 s = 59;
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
295 CX_TEST_ASSERT(7 == cx_array_binary_search_inf(array, 18, sizeof(int), &s, cx_cmp_int));
886
5f5514bb104b also add a binary search for the supremum
Mike Becker <universe@uap-core.de>
parents: 885
diff changeset
296 CX_TEST_ASSERT(8 == cx_array_binary_search_sup(array, 18, sizeof(int), &s, cx_cmp_int));
884
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
297 CX_TEST_ASSERT(18 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int));
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
298 s = 79;
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
299 CX_TEST_ASSERT(15 == cx_array_binary_search_inf(array, 18, sizeof(int), &s, cx_cmp_int));
886
5f5514bb104b also add a binary search for the supremum
Mike Becker <universe@uap-core.de>
parents: 885
diff changeset
300 CX_TEST_ASSERT(16 == cx_array_binary_search_sup(array, 18, sizeof(int), &s, cx_cmp_int));
884
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
301 CX_TEST_ASSERT(18 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int));
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
302 s = 66;
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
303 CX_TEST_ASSERT(11 == cx_array_binary_search_inf(array, 18, sizeof(int), &s, cx_cmp_int));
886
5f5514bb104b also add a binary search for the supremum
Mike Becker <universe@uap-core.de>
parents: 885
diff changeset
304 CX_TEST_ASSERT(12 == cx_array_binary_search_sup(array, 18, sizeof(int), &s, cx_cmp_int));
884
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
305 CX_TEST_ASSERT(18 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int));
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
306 s = 69;
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
307 CX_TEST_ASSERT(11 == cx_array_binary_search_inf(array, 18, sizeof(int), &s, cx_cmp_int));
886
5f5514bb104b also add a binary search for the supremum
Mike Becker <universe@uap-core.de>
parents: 885
diff changeset
308 CX_TEST_ASSERT(12 == cx_array_binary_search_sup(array, 18, sizeof(int), &s, cx_cmp_int));
884
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
309 CX_TEST_ASSERT(18 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int));
885
878a450e79bd fixes incorrect result from cx_array_binary_search() when searched element is smaller than the entire array
Mike Becker <universe@uap-core.de>
parents: 884
diff changeset
310 s = 95;
878a450e79bd fixes incorrect result from cx_array_binary_search() when searched element is smaller than the entire array
Mike Becker <universe@uap-core.de>
parents: 884
diff changeset
311 CX_TEST_ASSERT(17 == cx_array_binary_search_inf(array, 18, sizeof(int), &s, cx_cmp_int));
886
5f5514bb104b also add a binary search for the supremum
Mike Becker <universe@uap-core.de>
parents: 885
diff changeset
312 CX_TEST_ASSERT(18 == cx_array_binary_search_sup(array, 18, sizeof(int), &s, cx_cmp_int));
885
878a450e79bd fixes incorrect result from cx_array_binary_search() when searched element is smaller than the entire array
Mike Becker <universe@uap-core.de>
parents: 884
diff changeset
313 CX_TEST_ASSERT(18 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int));
878a450e79bd fixes incorrect result from cx_array_binary_search() when searched element is smaller than the entire array
Mike Becker <universe@uap-core.de>
parents: 884
diff changeset
314 s = 30;
878a450e79bd fixes incorrect result from cx_array_binary_search() when searched element is smaller than the entire array
Mike Becker <universe@uap-core.de>
parents: 884
diff changeset
315 CX_TEST_ASSERT(18 == cx_array_binary_search_inf(array, 18, sizeof(int), &s, cx_cmp_int));
886
5f5514bb104b also add a binary search for the supremum
Mike Becker <universe@uap-core.de>
parents: 885
diff changeset
316 CX_TEST_ASSERT(0 == cx_array_binary_search_sup(array, 18, sizeof(int), &s, cx_cmp_int));
885
878a450e79bd fixes incorrect result from cx_array_binary_search() when searched element is smaller than the entire array
Mike Becker <universe@uap-core.de>
parents: 884
diff changeset
317 CX_TEST_ASSERT(18 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int));
1022
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
318
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
319 // special case - size 0
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
320 s = 40;
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
321 CX_TEST_ASSERT(0 == cx_array_binary_search_inf(array, 0, sizeof(int), &s, cx_cmp_int));
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
322 CX_TEST_ASSERT(0 == cx_array_binary_search_sup(array, 0, sizeof(int), &s, cx_cmp_int));
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
323 CX_TEST_ASSERT(0 == cx_array_binary_search(array, 0, sizeof(int), &s, cx_cmp_int));
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
324
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
325 // special case - size 1, searched element is smaller
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
326 s = 30;
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
327 CX_TEST_ASSERT(1 == cx_array_binary_search_inf(array, 1, sizeof(int), &s, cx_cmp_int));
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
328 CX_TEST_ASSERT(0 == cx_array_binary_search_sup(array, 1, sizeof(int), &s, cx_cmp_int));
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
329 CX_TEST_ASSERT(1 == cx_array_binary_search(array, 1, sizeof(int), &s, cx_cmp_int));
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
330
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
331 // special case - size 1, searched element is larger
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
332 s = 50;
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
333 CX_TEST_ASSERT(0 == cx_array_binary_search_inf(array, 1, sizeof(int), &s, cx_cmp_int));
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
334 CX_TEST_ASSERT(1 == cx_array_binary_search_sup(array, 1, sizeof(int), &s, cx_cmp_int));
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
335 CX_TEST_ASSERT(1 == cx_array_binary_search(array, 1, sizeof(int), &s, cx_cmp_int));
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
336
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
337 // special case - size 1, element matches
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
338 s = 40;
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
339 CX_TEST_ASSERT(0 == cx_array_binary_search_inf(array, 1, sizeof(int), &s, cx_cmp_int));
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
340 CX_TEST_ASSERT(0 == cx_array_binary_search_sup(array, 1, sizeof(int), &s, cx_cmp_int));
2911c1f4a570 add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents: 999
diff changeset
341 CX_TEST_ASSERT(0 == cx_array_binary_search(array, 1, sizeof(int), &s, cx_cmp_int));
884
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
342 }
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
343 }
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
344
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
345 typedef struct node {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
346 struct node *next;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
347 struct node *prev;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
348 int data;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
349 } node;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
350
961
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
351 static int test_cmp_node(const void *l, const void *r) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
352 const node *left = l;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
353 const node *right = r;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
354 return left->data - right->data;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
355 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
356
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
357 const ptrdiff_t loc_prev = offsetof(struct node, prev);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
358 const ptrdiff_t loc_next = offsetof(struct node, next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
359 const ptrdiff_t loc_data = offsetof(struct node, data);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
360
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
361 static node *create_nodes_test_data(size_t len) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
362 node *begin = calloc(1, sizeof(node));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
363 void *prev = begin;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
364 for (size_t i = 1; i < len; i++) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
365 node *n = calloc(1, sizeof(node));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
366 cx_linked_list_link(prev, n, loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
367 prev = n;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
368 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
369 return begin;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
370 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
371
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
372 void assign_nodes_test_data(node *n, ...) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
373 va_list ap;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
374 va_start(ap, n);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
375 while (n != NULL) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
376 n->data = va_arg(ap, int);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
377 n = n->next;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
378 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
379 va_end(ap);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
380 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
381
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
382 static void destroy_nodes_test_data(node *n) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
383 while (n != NULL) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
384 void *next = n->next;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
385 free(n);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
386 n = next;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
387 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
388 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
389
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
390 static int *int_test_data(size_t len) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
391 int *data = malloc(len*sizeof(int));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
392 for (size_t i = 0 ; i < len ; i++) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
393 data[i] = rand(); // NOLINT(*-msc50-cpp)
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
394 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
395 return data;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
396 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
397
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
398 CX_TEST(test_linked_list_link_unlink) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
399 node a = {0}, b = {0}, c = {0};
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
400
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
401 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
402 cx_linked_list_link(&a, &b, loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
403 CX_TEST_ASSERT(a.prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
404 CX_TEST_ASSERT(a.next == &b);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
405 CX_TEST_ASSERT(b.prev == &a);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
406 CX_TEST_ASSERT(b.next == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
407
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
408 cx_linked_list_unlink(&a, &b, loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
409 CX_TEST_ASSERT(a.prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
410 CX_TEST_ASSERT(a.next == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
411 CX_TEST_ASSERT(b.prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
412 CX_TEST_ASSERT(b.next == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
413
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
414 cx_linked_list_link(&b, &c, loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
415 cx_linked_list_link(&a, &b, loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
416 cx_linked_list_unlink(&b, &c, loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
417 CX_TEST_ASSERT(a.prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
418 CX_TEST_ASSERT(a.next == &b);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
419 CX_TEST_ASSERT(b.prev == &a);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
420 CX_TEST_ASSERT(b.next == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
421 CX_TEST_ASSERT(c.prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
422 CX_TEST_ASSERT(c.next == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
423 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
424 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
425
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
426 CX_TEST(test_linked_list_at) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
427 node a = {0}, b = {0}, c = {0}, d = {0};
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
428
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
429 cx_linked_list_link(&a, &b, loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
430 cx_linked_list_link(&b, &c, loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
431 cx_linked_list_link(&c, &d, loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
432
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
433 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
434 CX_TEST_ASSERT(cx_linked_list_at(&a, 0, loc_next, 0) == &a);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
435 CX_TEST_ASSERT(cx_linked_list_at(&a, 0, loc_next, 1) == &b);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
436 CX_TEST_ASSERT(cx_linked_list_at(&a, 0, loc_next, 2) == &c);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
437 CX_TEST_ASSERT(cx_linked_list_at(&a, 0, loc_next, 3) == &d);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
438 CX_TEST_ASSERT(cx_linked_list_at(&a, 0, loc_next, 4) == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
439 CX_TEST_ASSERT(cx_linked_list_at(&b, 1, loc_prev, 0) == &a);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
440 CX_TEST_ASSERT(cx_linked_list_at(&b, 1, loc_next, 1) == &b);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
441 CX_TEST_ASSERT(cx_linked_list_at(&b, 1, loc_next, 2) == &c);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
442 CX_TEST_ASSERT(cx_linked_list_at(&b, 1, loc_next, 3) == &d);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
443 CX_TEST_ASSERT(cx_linked_list_at(&b, 1, loc_next, 4) == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
444 CX_TEST_ASSERT(cx_linked_list_at(&d, 3, loc_prev, 0) == &a);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
445 CX_TEST_ASSERT(cx_linked_list_at(&d, 3, loc_prev, 1) == &b);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
446 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
447 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
448
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
449 CX_TEST(test_linked_list_find) {
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
450 node *list = create_nodes_test_data(4);
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
451 assign_nodes_test_data(list, 2, 4, 6, 8);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
452 CX_TEST_DO {
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
453 size_t i = 10;
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
454 int s;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
455 s = 2;
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
456 node *n = list;
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
457 CX_TEST_ASSERT(cx_linked_list_find(list, loc_next, loc_data, cx_cmp_int, &s, &i) == n);
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
458 CX_TEST_ASSERT(i == 0);
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
459 n = n->next;
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
460 s = 4;
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
461 CX_TEST_ASSERT(cx_linked_list_find(list, loc_next, loc_data, cx_cmp_int, &s, &i) == n);
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
462 CX_TEST_ASSERT(i == 1);
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
463 n = n->next;
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
464 s = 6;
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
465 CX_TEST_ASSERT(cx_linked_list_find(list, loc_next, loc_data, cx_cmp_int, &s, &i) == n);
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
466 CX_TEST_ASSERT(i == 2);
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
467 n = n->next;
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
468 s = 8;
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
469 CX_TEST_ASSERT(cx_linked_list_find(list, loc_next, loc_data, cx_cmp_int, &s, &i) == n);
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
470 CX_TEST_ASSERT(i == 3);
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
471 s = 10;
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
472 CX_TEST_ASSERT(cx_linked_list_find(list, loc_next, loc_data, cx_cmp_int, &s, &i) == NULL);
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
473 s = -2;
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
474 CX_TEST_ASSERT(cx_linked_list_find(list, loc_next, loc_data, cx_cmp_int, &s, &i) == NULL);
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
475 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
476 destroy_nodes_test_data(list);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
477 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
478
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
479 CX_TEST(test_linked_list_compare) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
480 void *la = create_nodes_test_data(4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
481 void *lb = create_nodes_test_data(3);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
482 void *lc = create_nodes_test_data(4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
483 assign_nodes_test_data(la, 2, 4, 6, 8);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
484 assign_nodes_test_data(lb, 2, 4, 6);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
485 assign_nodes_test_data(lc, 2, 4, 6, 9);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
486 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
487 CX_TEST_ASSERT(cx_linked_list_compare(la, lb, loc_next, loc_data, cx_cmp_int) > 0);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
488 CX_TEST_ASSERT(cx_linked_list_compare(lb, la, loc_next, loc_data, cx_cmp_int) < 0);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
489 CX_TEST_ASSERT(cx_linked_list_compare(lc, la, loc_next, loc_data, cx_cmp_int) > 0);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
490 CX_TEST_ASSERT(cx_linked_list_compare(la, lc, loc_next, loc_data, cx_cmp_int) < 0);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
491 CX_TEST_ASSERT(cx_linked_list_compare(la, la, loc_next, loc_data, cx_cmp_int) == 0);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
492 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
493 destroy_nodes_test_data(la);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
494 destroy_nodes_test_data(lb);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
495 destroy_nodes_test_data(lc);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
496 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
497
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
498 CX_TEST(test_linked_list_add) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
499 node nodes[4];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
500 void *begin, *end;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
501 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
502 // test with begin, end / prev, next
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
503 memset(nodes, 0, sizeof(node)*4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
504 end = begin = NULL;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
505
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
506 cx_linked_list_add(&begin, &end, loc_prev, loc_next, &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
507 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
508 CX_TEST_ASSERT(end == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
509 CX_TEST_ASSERT(nodes[0].prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
510 CX_TEST_ASSERT(nodes[0].next == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
511
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
512 cx_linked_list_add(&begin, &end, loc_prev, loc_next, &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
513 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
514 CX_TEST_ASSERT(end == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
515 CX_TEST_ASSERT(nodes[0].next == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
516 CX_TEST_ASSERT(nodes[1].prev == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
517
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
518 // test with begin only / prev, next
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
519 memset(nodes, 0, sizeof(node)*4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
520 end = begin = NULL;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
521
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
522 cx_linked_list_add(&begin, NULL, loc_prev, loc_next, &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
523 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
524 cx_linked_list_add(&begin, NULL, loc_prev, loc_next, &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
525 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
526 CX_TEST_ASSERT(nodes[0].next == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
527 CX_TEST_ASSERT(nodes[1].prev == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
528
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
529 cx_linked_list_add(&begin, NULL, loc_prev, loc_next, &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
530 CX_TEST_ASSERT(nodes[1].next == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
531 CX_TEST_ASSERT(nodes[2].prev == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
532
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
533 // test with end only / prev, next
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
534 memset(nodes, 0, sizeof(node)*4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
535 end = begin = NULL;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
536
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
537 cx_linked_list_add(NULL, &end, loc_prev, loc_next, &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
538 CX_TEST_ASSERT(end == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
539 cx_linked_list_add(NULL, &end, loc_prev, loc_next, &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
540 CX_TEST_ASSERT(end == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
541 CX_TEST_ASSERT(nodes[0].next == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
542 CX_TEST_ASSERT(nodes[1].prev == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
543
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
544 cx_linked_list_add(NULL, &end, loc_prev, loc_next, &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
545 CX_TEST_ASSERT(end == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
546 CX_TEST_ASSERT(nodes[1].next == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
547 CX_TEST_ASSERT(nodes[2].prev == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
548
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
549 // test with begin, end / next
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
550 memset(nodes, 0, sizeof(node)*4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
551 end = begin = NULL;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
552
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
553 cx_linked_list_add(&begin, &end, -1, loc_next, &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
554 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
555 CX_TEST_ASSERT(end == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
556 cx_linked_list_add(&begin, &end, -1, loc_next, &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
557 CX_TEST_ASSERT(end == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
558 CX_TEST_ASSERT(nodes[0].next == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
559 CX_TEST_ASSERT(nodes[1].prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
560 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
561 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
562
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
563 CX_TEST(test_linked_list_prepend) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
564 node nodes[4];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
565 void *begin, *end;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
566 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
567 // test with begin, end / prev, next
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
568 memset(nodes, 0, sizeof(node) * 4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
569 end = begin = NULL;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
570
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
571 cx_linked_list_prepend(&begin, &end, loc_prev, loc_next, &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
572 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
573 CX_TEST_ASSERT(end == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
574 CX_TEST_ASSERT(nodes[0].prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
575 CX_TEST_ASSERT(nodes[0].next == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
576
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
577 cx_linked_list_prepend(&begin, &end, loc_prev, loc_next, &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
578 CX_TEST_ASSERT(begin == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
579 CX_TEST_ASSERT(end == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
580 CX_TEST_ASSERT(nodes[1].next == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
581 CX_TEST_ASSERT(nodes[0].prev == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
582
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
583 // test with begin only / prev, next
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
584 memset(nodes, 0, sizeof(node) * 4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
585 end = begin = NULL;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
586
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
587 cx_linked_list_prepend(&begin, NULL, loc_prev, loc_next, &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
588 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
589 cx_linked_list_prepend(&begin, NULL, loc_prev, loc_next, &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
590 CX_TEST_ASSERT(begin == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
591 CX_TEST_ASSERT(nodes[1].next == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
592 CX_TEST_ASSERT(nodes[0].prev == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
593
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
594 cx_linked_list_prepend(&begin, NULL, loc_prev, loc_next, &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
595 CX_TEST_ASSERT(begin == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
596 CX_TEST_ASSERT(nodes[2].next == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
597 CX_TEST_ASSERT(nodes[1].prev == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
598
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
599 // test with end only / prev, next
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
600 memset(nodes, 0, sizeof(node) * 4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
601 end = begin = NULL;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
602
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
603 cx_linked_list_prepend(NULL, &end, loc_prev, loc_next, &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
604 CX_TEST_ASSERT(end == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
605 cx_linked_list_prepend(NULL, &end, loc_prev, loc_next, &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
606 CX_TEST_ASSERT(end == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
607 CX_TEST_ASSERT(nodes[1].next == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
608 CX_TEST_ASSERT(nodes[0].prev == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
609
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
610 cx_linked_list_prepend(NULL, &end, loc_prev, loc_next, &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
611 CX_TEST_ASSERT(end == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
612 CX_TEST_ASSERT(nodes[2].next == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
613 CX_TEST_ASSERT(nodes[1].prev == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
614
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
615 // test with begin, end / next
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
616 memset(nodes, 0, sizeof(node) * 4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
617 end = begin = NULL;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
618
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
619 cx_linked_list_prepend(&begin, &end, -1, loc_next, &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
620 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
621 CX_TEST_ASSERT(end == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
622 cx_linked_list_prepend(&begin, &end, -1, loc_next, &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
623 cx_linked_list_prepend(&begin, &end, -1, loc_next, &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
624 CX_TEST_ASSERT(begin == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
625 CX_TEST_ASSERT(end == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
626 CX_TEST_ASSERT(nodes[1].next == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
627 CX_TEST_ASSERT(nodes[2].next == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
628 CX_TEST_ASSERT(nodes[1].prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
629 CX_TEST_ASSERT(nodes[0].prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
630 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
631 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
632
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
633 CX_TEST(test_linked_list_insert) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
634 node nodes[4];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
635 void *begin, *end;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
636 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
637 // insert mid list
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
638 memset(nodes, 0, sizeof(node) * 4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
639 begin = &nodes[0];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
640 end = &nodes[2];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
641
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
642 cx_linked_list_link(&nodes[0], &nodes[1], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
643 cx_linked_list_link(&nodes[1], &nodes[2], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
644
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
645 cx_linked_list_insert(&begin, &end, loc_prev, loc_next, &nodes[1], &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
646 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
647 CX_TEST_ASSERT(end == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
648 CX_TEST_ASSERT(nodes[1].next == &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
649 CX_TEST_ASSERT(nodes[2].prev == &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
650 CX_TEST_ASSERT(nodes[3].prev == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
651 CX_TEST_ASSERT(nodes[3].next == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
652
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
653 // insert end
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
654 memset(nodes, 0, sizeof(node) * 4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
655 begin = &nodes[0];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
656 end = &nodes[2];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
657
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
658 cx_linked_list_link(&nodes[0], &nodes[1], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
659 cx_linked_list_link(&nodes[1], &nodes[2], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
660
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
661 cx_linked_list_insert(&begin, &end, loc_prev, loc_next, &nodes[2], &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
662 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
663 CX_TEST_ASSERT(end == &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
664 CX_TEST_ASSERT(nodes[2].next == &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
665 CX_TEST_ASSERT(nodes[3].prev == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
666 CX_TEST_ASSERT(nodes[3].next == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
667
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
668 // insert begin
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
669 memset(nodes, 0, sizeof(node) * 4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
670 begin = &nodes[0];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
671 end = &nodes[2];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
672
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
673 cx_linked_list_link(&nodes[0], &nodes[1], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
674 cx_linked_list_link(&nodes[1], &nodes[2], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
675
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
676 cx_linked_list_insert(&begin, &end, loc_prev, loc_next, NULL, &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
677 CX_TEST_ASSERT(begin == &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
678 CX_TEST_ASSERT(end == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
679 CX_TEST_ASSERT(nodes[0].prev == &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
680 CX_TEST_ASSERT(nodes[3].prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
681 CX_TEST_ASSERT(nodes[3].next == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
682 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
683 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
684
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
685 CX_TEST(test_linked_list_insert_chain) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
686 node nodes[5];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
687 void *begin, *end;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
688 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
689 // insert mid list
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
690 memset(nodes, 0, sizeof(node) * 5);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
691 begin = &nodes[0]; end = &nodes[2];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
692
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
693 cx_linked_list_link(&nodes[0], &nodes[1], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
694 cx_linked_list_link(&nodes[1], &nodes[2], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
695 cx_linked_list_link(&nodes[3], &nodes[4], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
696
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
697 cx_linked_list_insert_chain(&begin, &end, loc_prev, loc_next, &nodes[1], &nodes[3], NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
698 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
699 CX_TEST_ASSERT(end == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
700 CX_TEST_ASSERT(nodes[1].next == &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
701 CX_TEST_ASSERT(nodes[2].prev == &nodes[4]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
702 CX_TEST_ASSERT(nodes[3].prev == &nodes[1]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
703 CX_TEST_ASSERT(nodes[4].next == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
704
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
705 // insert end
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
706 memset(nodes, 0, sizeof(node) * 5);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
707 begin = &nodes[0]; end = &nodes[2];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
708
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
709 cx_linked_list_link(&nodes[0], &nodes[1], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
710 cx_linked_list_link(&nodes[1], &nodes[2], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
711 cx_linked_list_link(&nodes[3], &nodes[4], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
712
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
713 cx_linked_list_insert_chain(&begin, &end, loc_prev, loc_next, &nodes[2], &nodes[3], NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
714 CX_TEST_ASSERT(begin == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
715 CX_TEST_ASSERT(end == &nodes[4]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
716 CX_TEST_ASSERT(nodes[2].next == &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
717 CX_TEST_ASSERT(nodes[3].prev == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
718 CX_TEST_ASSERT(nodes[4].next == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
719
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
720 // insert begin
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
721 memset(nodes, 0, sizeof(node) * 5);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
722 begin = &nodes[0]; end = &nodes[2];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
723
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
724 cx_linked_list_link(&nodes[0], &nodes[1], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
725 cx_linked_list_link(&nodes[1], &nodes[2], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
726 cx_linked_list_link(&nodes[3], &nodes[4], loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
727
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
728 cx_linked_list_insert_chain(&begin, &end, loc_prev, loc_next, NULL, &nodes[3], NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
729 CX_TEST_ASSERT(begin == &nodes[3]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
730 CX_TEST_ASSERT(end == &nodes[2]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
731 CX_TEST_ASSERT(nodes[0].prev == &nodes[4]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
732 CX_TEST_ASSERT(nodes[3].prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
733 CX_TEST_ASSERT(nodes[4].next == &nodes[0]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
734 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
735 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
736
961
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
737 CX_TEST(test_linked_list_insert_sorted) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
738 node nodes[5] = {0};
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
739 void *begin, *end;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
740 nodes[0].data = 3;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
741 nodes[1].data = 6;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
742 nodes[2].data = 10;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
743 nodes[3].data = 11;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
744 nodes[4].data = 15;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
745 for (unsigned i = 0 ; i < 4 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
746 cx_linked_list_link(&nodes[i], &nodes[i+1], loc_prev, loc_next);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
747 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
748 begin = &nodes[0];
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
749 end = &nodes[4];
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
750 CX_TEST_DO {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
751 // insert a single node
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
752 node new_node = {0};
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
753 new_node.data = 5;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
754 cx_linked_list_insert_sorted(
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
755 &begin, &end,
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
756 loc_prev, loc_next,
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
757 &new_node, test_cmp_node
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
758 );
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
759 CX_TEST_ASSERT(new_node.prev == &nodes[0]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
760 CX_TEST_ASSERT(new_node.next == &nodes[1]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
761 CX_TEST_ASSERT(nodes[0].next == &new_node);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
762 CX_TEST_ASSERT(nodes[1].prev == &new_node);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
763 CX_TEST_ASSERT(begin == &nodes[0]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
764 CX_TEST_ASSERT(end == &nodes[4]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
765
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
766 // insert a new beginning node
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
767 node new_begin = {0};
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
768 new_begin.data = 1;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
769 cx_linked_list_insert_sorted(
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
770 &begin, &end,
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
771 loc_prev, loc_next,
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
772 &new_begin, test_cmp_node
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
773 );
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
774 CX_TEST_ASSERT(new_begin.prev == NULL);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
775 CX_TEST_ASSERT(new_begin.next == &nodes[0]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
776 CX_TEST_ASSERT(nodes[0].prev == &new_begin);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
777 CX_TEST_ASSERT(begin == &new_begin);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
778 CX_TEST_ASSERT(end == &nodes[4]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
779
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
780 // now insert a chain
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
781 node chain_start = {NULL, NULL, 8};
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
782 node chain_mid = {NULL, NULL, 14};
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
783 node chain_end = {NULL, NULL, 17};
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
784 cx_linked_list_link(&chain_start, &chain_mid, loc_prev, loc_next);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
785 cx_linked_list_link(&chain_mid, &chain_end, loc_prev, loc_next);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
786
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
787 cx_linked_list_insert_sorted_chain(
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
788 &begin, &end,
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
789 loc_prev, loc_next,
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
790 &chain_start, test_cmp_node
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
791 );
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
792
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
793 CX_TEST_ASSERT(chain_start.prev == &nodes[1]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
794 CX_TEST_ASSERT(chain_start.next == &nodes[2]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
795 CX_TEST_ASSERT(chain_mid.prev == &nodes[3]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
796 CX_TEST_ASSERT(chain_mid.next == &nodes[4]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
797 CX_TEST_ASSERT(chain_end.prev == &nodes[4]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
798 CX_TEST_ASSERT(chain_end.next == NULL);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
799 CX_TEST_ASSERT(begin == &new_begin);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
800 CX_TEST_ASSERT(end == &chain_end);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
801 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
802 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
803
1419
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
804 CX_TEST(test_linked_list_insert_unique) {
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
805 node nodes[5] = {0};
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
806 void *begin, *end;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
807 nodes[0].data = 3;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
808 nodes[1].data = 6;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
809 nodes[2].data = 10;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
810 nodes[3].data = 11;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
811 nodes[4].data = 15;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
812 for (unsigned i = 0 ; i < 4 ; i++) {
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
813 cx_linked_list_link(&nodes[i], &nodes[i+1], loc_prev, loc_next);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
814 }
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
815 begin = &nodes[0];
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
816 end = &nodes[4];
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
817 CX_TEST_DO {
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
818 // insert a single node
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
819 node new_node = {0};
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
820 new_node.data = 5;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
821 CX_TEST_ASSERT(0 == cx_linked_list_insert_unique(
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
822 &begin, &end,
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
823 loc_prev, loc_next,
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
824 &new_node, test_cmp_node
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
825 ));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
826 CX_TEST_ASSERT(new_node.prev == &nodes[0]);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
827 CX_TEST_ASSERT(new_node.next == &nodes[1]);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
828 CX_TEST_ASSERT(nodes[0].next == &new_node);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
829 CX_TEST_ASSERT(nodes[1].prev == &new_node);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
830 CX_TEST_ASSERT(begin == &nodes[0]);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
831 CX_TEST_ASSERT(end == &nodes[4]);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
832
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
833 // now as duplicate
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
834 node new_node_dup = {0};
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
835 new_node_dup.data = 5;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
836 CX_TEST_ASSERT(0 != cx_linked_list_insert_unique(
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
837 &begin, &end,
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
838 loc_prev, loc_next,
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
839 &new_node_dup, test_cmp_node
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
840 ));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
841 CX_TEST_ASSERT(new_node_dup.prev == NULL);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
842 CX_TEST_ASSERT(new_node_dup.next == NULL);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
843 CX_TEST_ASSERT(new_node.prev == &nodes[0]);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
844 CX_TEST_ASSERT(new_node.next == &nodes[1]);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
845 CX_TEST_ASSERT(nodes[0].next == &new_node);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
846 CX_TEST_ASSERT(nodes[1].prev == &new_node);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
847 CX_TEST_ASSERT(begin == &nodes[0]);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
848 CX_TEST_ASSERT(end == &nodes[4]);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
849
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
850 // insert a new beginning node
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
851 node new_begin = {0};
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
852 new_begin.data = 1;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
853 CX_TEST_ASSERT(0 == cx_linked_list_insert_unique(
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
854 &begin, &end,
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
855 loc_prev, loc_next,
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
856 &new_begin, test_cmp_node
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
857 ));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
858 CX_TEST_ASSERT(new_begin.prev == NULL);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
859 CX_TEST_ASSERT(new_begin.next == &nodes[0]);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
860 CX_TEST_ASSERT(nodes[0].prev == &new_begin);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
861 CX_TEST_ASSERT(begin == &new_begin);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
862 CX_TEST_ASSERT(end == &nodes[4]);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
863
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
864 // now as duplicate
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
865 node new_begin_dup = {0};
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
866 new_begin_dup.data = 1;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
867 CX_TEST_ASSERT(0 != cx_linked_list_insert_unique(
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
868 &begin, &end,
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
869 loc_prev, loc_next,
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
870 &new_begin_dup, test_cmp_node
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
871 ));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
872 CX_TEST_ASSERT(new_begin_dup.prev == NULL);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
873 CX_TEST_ASSERT(new_begin_dup.next == NULL);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
874 CX_TEST_ASSERT(new_begin.prev == NULL);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
875 CX_TEST_ASSERT(new_begin.next == &nodes[0]);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
876 CX_TEST_ASSERT(nodes[0].prev == &new_begin);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
877 CX_TEST_ASSERT(begin == &new_begin);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
878 CX_TEST_ASSERT(end == &nodes[4]);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
879
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
880 // now insert a chain with two duplicates
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
881 node chain_start = {NULL, NULL, 8};
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
882 node chain_mid1 = {NULL, NULL, 11};
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
883 node chain_mid2 = {NULL, NULL, 14};
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
884 node chain_mid3 = {NULL, NULL, 15};
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
885 node chain_mid4 = {NULL, NULL, 15};
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
886 node chain_end = {NULL, NULL, 17};
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
887 cx_linked_list_link(&chain_start, &chain_mid1, loc_prev, loc_next);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
888 cx_linked_list_link(&chain_mid1, &chain_mid2, loc_prev, loc_next);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
889 cx_linked_list_link(&chain_mid2, &chain_mid3, loc_prev, loc_next);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
890 cx_linked_list_link(&chain_mid3, &chain_mid4, loc_prev, loc_next);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
891 cx_linked_list_link(&chain_mid4, &chain_end, loc_prev, loc_next);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
892
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
893 node *dup_start = cx_linked_list_insert_unique_chain(
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
894 &begin, &end,
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
895 loc_prev, loc_next,
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
896 &chain_start, test_cmp_node
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
897 );
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
898
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
899 CX_TEST_ASSERT(chain_start.prev == &nodes[1]);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
900 CX_TEST_ASSERT(chain_start.next == &nodes[2]);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
901 CX_TEST_ASSERT(chain_mid2.prev == &nodes[3]);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
902 CX_TEST_ASSERT(chain_mid2.next == &nodes[4]);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
903 CX_TEST_ASSERT(chain_end.prev == &nodes[4]);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
904 CX_TEST_ASSERT(chain_end.next == NULL);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
905 CX_TEST_ASSERT(begin == &new_begin);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
906 CX_TEST_ASSERT(end == &chain_end);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
907
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
908 // the duplicates
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
909 CX_TEST_ASSERT(dup_start == &chain_mid1);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
910 CX_TEST_ASSERT(dup_start->prev == NULL);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
911 CX_TEST_ASSERT(dup_start->next == &chain_mid3);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
912 CX_TEST_ASSERT(chain_mid3.prev == &chain_mid1);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
913 CX_TEST_ASSERT(chain_mid3.next == &chain_mid4);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
914 CX_TEST_ASSERT(chain_mid4.prev == &chain_mid3);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
915 CX_TEST_ASSERT(chain_mid4.next == NULL);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
916 }
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
917 }
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
918
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
919 CX_TEST(test_linked_list_first) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
920 node *testdata = create_nodes_test_data(3);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
921 void *begin = testdata;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
922 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
923 CX_TEST_ASSERT(begin == cx_linked_list_first(testdata, loc_prev));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
924 CX_TEST_ASSERT(begin == cx_linked_list_first(testdata->next, loc_prev));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
925 CX_TEST_ASSERT(begin == cx_linked_list_first(testdata->next->next, loc_prev));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
926 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
927 destroy_nodes_test_data(testdata);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
928 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
929
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
930 CX_TEST(test_linked_list_last) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
931 node *testdata = create_nodes_test_data(3);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
932 void *end = testdata->next->next;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
933 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
934 CX_TEST_ASSERT(end == cx_linked_list_last(testdata, loc_next));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
935 CX_TEST_ASSERT(end == cx_linked_list_last(testdata->next, loc_next));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
936 CX_TEST_ASSERT(end == cx_linked_list_last(testdata->next->next, loc_next));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
937 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
938 destroy_nodes_test_data(testdata);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
939 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
940
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
941 CX_TEST(test_linked_list_prev) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
942 node *testdata = create_nodes_test_data(3);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
943 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
944 CX_TEST_ASSERT(cx_linked_list_prev(testdata, loc_next, testdata) == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
945 CX_TEST_ASSERT(cx_linked_list_prev(testdata, loc_next, testdata->next) == testdata);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
946 CX_TEST_ASSERT(cx_linked_list_prev(testdata, loc_next, testdata->next->next) == testdata->next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
947 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
948 destroy_nodes_test_data(testdata);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
949 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
950
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
951 CX_TEST(test_linked_list_remove) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
952 node *testdata = create_nodes_test_data(3);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
953 assign_nodes_test_data(testdata, 2, 4, 6);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
954 node *first = testdata;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
955 node *second = first->next;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
956 node *third = second->next;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
957 void *begin = testdata;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
958 void *end = third;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
959
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
960 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
961 cx_linked_list_remove(&begin, &end, loc_prev, loc_next, second);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
962 CX_TEST_ASSERT(begin == first);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
963 CX_TEST_ASSERT(end == third);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
964 CX_TEST_ASSERT(first->prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
965 CX_TEST_ASSERT(first->next == third);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
966 CX_TEST_ASSERT(third->prev == first);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
967 CX_TEST_ASSERT(third->next == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
968
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
969 cx_linked_list_remove(&begin, &end, loc_prev, loc_next, third);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
970 CX_TEST_ASSERT(begin == first);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
971 CX_TEST_ASSERT(end == first);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
972 CX_TEST_ASSERT(first->prev == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
973 CX_TEST_ASSERT(first->next == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
974
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
975 cx_linked_list_remove(&begin, &end, loc_prev, loc_next, first);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
976 CX_TEST_ASSERT(begin == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
977 CX_TEST_ASSERT(end == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
978 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
979 // list is not intact anymore, we have to free nodes individually
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
980 free(first);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
981 free(second);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
982 free(third);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
983 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
984
961
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
985 CX_TEST(test_linked_list_remove_chain) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
986 node *testdata = create_nodes_test_data(5);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
987 assign_nodes_test_data(testdata, 2, 4, 6, 8, 10);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
988 void *begin = testdata;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
989 void *end = cx_linked_list_last(testdata, loc_next);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
990 void *orig_end = end;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
991 // remember what we need to free
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
992 node *kill_list[5];
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
993 kill_list[0] = testdata;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
994 for (unsigned i = 1 ; i < 5 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
995 kill_list[i] = kill_list[i-1]->next;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
996 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
997
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
998 CX_TEST_DO {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
999 // remove chain, but pretend that we don't have a prev pointer!
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1000 size_t result = cx_linked_list_remove_chain(
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1001 &begin, &end, -1, loc_next,
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1002 cx_linked_list_at(begin, 0, loc_next, 2),
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1003 2
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1004 );
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1005 CX_TEST_ASSERT(result == 2);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1006 CX_TEST_ASSERT(begin == testdata);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1007 CX_TEST_ASSERT(end == orig_end);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1008 node *new_idx2 = cx_linked_list_at(begin, 0, loc_next, 2);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1009 CX_TEST_ASSERT(new_idx2->data == 10);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1010 CX_TEST_ASSERT(new_idx2->next == NULL);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1011 // we pretended we don't have prev, so it still points to 8!
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1012 CX_TEST_ASSERT(new_idx2->prev->data == 8);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1013
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1014 // remove last elements and try to remove more than we have
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1015 result = cx_linked_list_remove_chain(
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1016 &begin, &end, -1, loc_next,
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1017 cx_linked_list_at(begin, 0, loc_next, 2),
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1018 2
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1019 );
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1020 CX_TEST_ASSERT(result == 1);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1021 CX_TEST_ASSERT(begin == testdata);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1022 CX_TEST_ASSERT(end == testdata->next);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1023 CX_TEST_ASSERT(NULL == testdata->next->next);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1024 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1025
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1026 for (unsigned i = 0 ; i < 5 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1027 free(kill_list[i]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1028 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1029 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1030
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1031 CX_TEST(test_linked_list_size) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1032 node *td5 = create_nodes_test_data(5);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1033 node *td13 = create_nodes_test_data(13);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1034 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1035 CX_TEST_ASSERT(cx_linked_list_size(NULL, loc_next) == 0);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1036 CX_TEST_ASSERT(cx_linked_list_size(td5, loc_next) == 5);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1037 CX_TEST_ASSERT(cx_linked_list_size(td13, loc_next) == 13);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1038 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1039 destroy_nodes_test_data(td5);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1040 destroy_nodes_test_data(td13);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1041 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1042
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1043 CX_TEST(test_linked_list_sort_empty) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1044 void *begin = NULL;
799
a2a757d225b4 fix some broken cleanup
Mike Becker <universe@uap-core.de>
parents: 798
diff changeset
1045 CX_TEST_DO {
a2a757d225b4 fix some broken cleanup
Mike Becker <universe@uap-core.de>
parents: 798
diff changeset
1046 // cannot assert something, we can just test that it does not crash
a2a757d225b4 fix some broken cleanup
Mike Becker <universe@uap-core.de>
parents: 798
diff changeset
1047 cx_linked_list_sort(&begin, NULL, loc_prev, loc_next, loc_data, cx_cmp_int);
a2a757d225b4 fix some broken cleanup
Mike Becker <universe@uap-core.de>
parents: 798
diff changeset
1048 CX_TEST_ASSERT(true);
a2a757d225b4 fix some broken cleanup
Mike Becker <universe@uap-core.de>
parents: 798
diff changeset
1049 }
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1050 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1051
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1052 CX_TEST(test_linked_list_sort) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1053 const size_t len = 1500;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1054 int *testdata = int_test_data(len);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1055 void *scrambled = create_nodes_test_data(len);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1056 node *n = scrambled;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1057 for (size_t i = 0; i < len; i++) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1058 n->data = testdata[i];
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1059 n = n->next;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1060 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1061 int *sorted = malloc(len*sizeof(int));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1062 memcpy(sorted, testdata, len*sizeof(int));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1063 qsort(sorted, len, sizeof(int), cx_cmp_int);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1064
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1065 void *begin = scrambled;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1066 void *end = cx_linked_list_last(begin, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1067
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1068 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1069 cx_linked_list_sort(&begin, &end, loc_prev, loc_next, loc_data, cx_cmp_int);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1070 node *check = begin;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1071 node *check_last = NULL;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1072 for (size_t i = 0; i < len; i++) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1073 CX_TEST_ASSERT(check->data == sorted[i]);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1074 CX_TEST_ASSERT(check->prev == check_last);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1075 if (i < len - 1) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1076 CX_TEST_ASSERT(check->next != NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1077 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1078 check_last = check;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1079 check = check->next;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1080 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1081 CX_TEST_ASSERT(check == NULL);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1082 CX_TEST_ASSERT(end == check_last);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1083 }
799
a2a757d225b4 fix some broken cleanup
Mike Becker <universe@uap-core.de>
parents: 798
diff changeset
1084 destroy_nodes_test_data(begin);
a2a757d225b4 fix some broken cleanup
Mike Becker <universe@uap-core.de>
parents: 798
diff changeset
1085 free(sorted);
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1086 free(testdata);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1087 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1088
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1089 CX_TEST(test_linked_list_reverse) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1090 void *testdata = create_nodes_test_data(4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1091 void *expected = create_nodes_test_data(4);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1092 assign_nodes_test_data(testdata, 2, 4, 6, 8);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1093 assign_nodes_test_data(expected, 8, 6, 4, 2);
799
a2a757d225b4 fix some broken cleanup
Mike Becker <universe@uap-core.de>
parents: 798
diff changeset
1094 void *begin = testdata;
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1095 CX_TEST_DO {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1096 void *end = cx_linked_list_last(begin, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1097 void *orig_begin = begin, *orig_end = end;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1098
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1099 cx_linked_list_reverse(&begin, &end, loc_prev, loc_next);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1100 CX_TEST_ASSERT(end == orig_begin);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1101 CX_TEST_ASSERT(begin == orig_end);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1102 CX_TEST_ASSERT(0 == cx_linked_list_compare(begin, expected, loc_next, loc_data, cx_cmp_int));
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1103 }
799
a2a757d225b4 fix some broken cleanup
Mike Becker <universe@uap-core.de>
parents: 798
diff changeset
1104 destroy_nodes_test_data(begin);
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1105 destroy_nodes_test_data(expected);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1106 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1107
800
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1108
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1109 CX_TEST(test_empty_list_size) {
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1110 CX_TEST_DO {
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1111 CX_TEST_ASSERT(cxEmptyList->collection.size == 0);
800
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1112 CX_TEST_ASSERT(cxListSize(cxEmptyList) == 0);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1113 }
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1114 }
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1115
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1116 CX_TEST(test_empty_list_iterator) {
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1117 CxList *list = cxEmptyList;
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1118
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1119 CxIterator it1 = cxListIterator(list);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1120 CxIterator it2 = cxListBackwardsIterator(list);
853
d4baf4dd55c3 simplify iterator structures
Mike Becker <universe@uap-core.de>
parents: 850
diff changeset
1121 CxIterator it3 = cxListMutIterator(list);
d4baf4dd55c3 simplify iterator structures
Mike Becker <universe@uap-core.de>
parents: 850
diff changeset
1122 CxIterator it4 = cxListMutBackwardsIterator(list);
800
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1123
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1124 CX_TEST_DO {
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1125 CX_TEST_ASSERT(!cxIteratorValid(it1));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1126 CX_TEST_ASSERT(!cxIteratorValid(it2));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1127 CX_TEST_ASSERT(!cxIteratorValid(it3));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1128 CX_TEST_ASSERT(!cxIteratorValid(it4));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1129
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1130 int c = 0;
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1131 cx_foreach(void*, data, it1) c++;
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1132 cx_foreach(void*, data, it2) c++;
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1133 cx_foreach(void*, data, it3) c++;
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1134 cx_foreach(void*, data, it4) c++;
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1135 CX_TEST_ASSERT(c == 0);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1136 }
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1137 }
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1138
1388
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
1139 CX_TEST(test_null_list_iterator) {
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
1140 CxList *list = NULL;
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
1141
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
1142 CxIterator it1 = cxListIterator(list);
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
1143 CxIterator it2 = cxListBackwardsIterator(list);
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
1144 CxIterator it3 = cxListMutIterator(list);
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
1145 CxIterator it4 = cxListMutBackwardsIterator(list);
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
1146
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
1147 CX_TEST_DO {
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
1148 CX_TEST_ASSERT(!cxIteratorValid(it1));
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
1149 CX_TEST_ASSERT(!cxIteratorValid(it2));
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
1150 CX_TEST_ASSERT(!cxIteratorValid(it3));
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
1151 CX_TEST_ASSERT(!cxIteratorValid(it4));
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
1152
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
1153 int c = 0;
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
1154 cx_foreach(void*, data, it1) c++;
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
1155 cx_foreach(void*, data, it2) c++;
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
1156 cx_foreach(void*, data, it3) c++;
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
1157 cx_foreach(void*, data, it4) c++;
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
1158 CX_TEST_ASSERT(c == 0);
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
1159 }
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
1160 }
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
1161
800
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1162 CX_TEST(test_empty_list_noops) {
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1163 CX_TEST_DO {
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1164 CxList copy = *cxEmptyList;
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1165 cxListSort(cxEmptyList);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1166 cxListClear(cxEmptyList);
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1167 cxListFree(cxEmptyList);
800
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1168 CX_TEST_ASSERT(0 == memcmp(&copy, cxEmptyList, sizeof(CxList))); // NOLINT(*-suspicious-memory-comparison)
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1169 }
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1170 }
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1171
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1172 CX_TEST(test_empty_list_at) {
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1173 CX_TEST_DO {
1225
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
1174 // the placeholder empty list
800
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1175 CX_TEST_ASSERT(cxListAt(cxEmptyList, 0) == NULL);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1176 CX_TEST_ASSERT(cxListAt(cxEmptyList, 1) == NULL);
1225
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
1177 // a "true" empty list
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
1178 CxList *list = cxLinkedListCreateSimple(sizeof(int));
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
1179 CX_TEST_ASSERT(cxListAt(list, 0) == NULL);
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
1180 CX_TEST_ASSERT(cxListAt(list, 1) == NULL);
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
1181 cxListFree(list);
800
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1182 }
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1183 }
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1184
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1185 CX_TEST(test_empty_list_find) {
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1186 int x = 42, y = 1337;
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1187 CX_TEST_DO {
1225
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
1188 // the placeholder empty list
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
1189 CX_TEST_ASSERT(cxListFind(cxEmptyList, &x) == 0);
1225
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
1190 CX_TEST_ASSERT(cxListFindRemove(cxEmptyList, &y) == 0);
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
1191 // a "true" empty list
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
1192 CxList *list = cxLinkedListCreateSimple(sizeof(int));
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
1193 CX_TEST_ASSERT(cxListFind(list, &x) == 0);
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
1194 CX_TEST_ASSERT(cxListFindRemove(list, &y) == 0);
086e63c8dd06 fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents: 1163
diff changeset
1195 cxListFree(list);
800
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1196 }
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1197 }
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1198
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1199 CX_TEST(test_empty_list_compare) {
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1200 CxList *empty = cxEmptyList;
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1201 CxList *ll = cxLinkedListCreateSimple(sizeof(int));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1202 CxList *al = cxArrayListCreateSimple(sizeof(int), 8);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1203 int x = 5;
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1204 CX_TEST_DO {
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1205 CX_TEST_ASSERT(0 == cxListCompare(empty, cxEmptyList));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1206 CX_TEST_ASSERT(0 == cxListCompare(ll, cxEmptyList));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1207 CX_TEST_ASSERT(0 == cxListCompare(al, cxEmptyList));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1208 CX_TEST_ASSERT(0 == cxListCompare(cxEmptyList, ll));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1209 CX_TEST_ASSERT(0 == cxListCompare(cxEmptyList, al));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1210
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1211 cxListAdd(ll, &x);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1212 cxListAdd(al, &x);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1213
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1214 CX_TEST_ASSERT(0 < cxListCompare(ll, cxEmptyList));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1215 CX_TEST_ASSERT(0 < cxListCompare(al, cxEmptyList));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1216 CX_TEST_ASSERT(0 > cxListCompare(cxEmptyList, ll));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1217 CX_TEST_ASSERT(0 > cxListCompare(cxEmptyList, al));
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1218 }
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1219 cxListFree(ll);
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1220 cxListFree(al);
800
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1221 }
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
1222
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1223 CX_TEST(test_list_ll_create) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1224 CxTestingAllocator talloc;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1225 cx_testing_allocator_init(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1226 CxAllocator *alloc = &talloc.base;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1227 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1228 CxList *list = cxLinkedListCreate(alloc, cx_cmp_int, sizeof(int));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1229 CX_TEST_ASSERT(list != NULL);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1230 CX_TEST_ASSERT(list->collection.elem_size == sizeof(int));
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1231 CX_TEST_ASSERT(list->collection.simple_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1232 CX_TEST_ASSERT(list->collection.advanced_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1233 CX_TEST_ASSERT(list->collection.destructor_data == NULL);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1234 CX_TEST_ASSERT(cxListSize(list) == 0);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1235 CX_TEST_ASSERT(list->collection.allocator == alloc);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1236 CX_TEST_ASSERT(list->collection.cmpfunc == cx_cmp_int);
1111
78eeeb950883 remove API for changing the store_pointer property after list creation
Mike Becker <universe@uap-core.de>
parents: 1022
diff changeset
1237 CX_TEST_ASSERT(!list->collection.store_pointer);
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1238 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1239 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1240 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1241 cx_testing_allocator_destroy(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1242 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1243
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1244 CX_TEST(test_list_ll_create_simple) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1245 CxList *list = cxLinkedListCreateSimple(sizeof(int));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1246 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1247 CX_TEST_ASSERT(list != NULL);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1248 CX_TEST_ASSERT(list->collection.elem_size == sizeof(int));
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1249 CX_TEST_ASSERT(list->collection.simple_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1250 CX_TEST_ASSERT(list->collection.advanced_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1251 CX_TEST_ASSERT(list->collection.destructor_data == NULL);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1252 CX_TEST_ASSERT(cxListSize(list) == 0);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1253 CX_TEST_ASSERT(list->collection.allocator == cxDefaultAllocator);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1254 CX_TEST_ASSERT(list->collection.cmpfunc == NULL);
1111
78eeeb950883 remove API for changing the store_pointer property after list creation
Mike Becker <universe@uap-core.de>
parents: 1022
diff changeset
1255 CX_TEST_ASSERT(!list->collection.store_pointer);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1256 }
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1257 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1258 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1259
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1260 CX_TEST(test_list_ll_create_simple_for_pointers) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1261 CxList *list = cxLinkedListCreateSimple(CX_STORE_POINTERS);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1262 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1263 CX_TEST_ASSERT(list != NULL);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1264 CX_TEST_ASSERT(list->collection.elem_size == sizeof(void*));
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1265 CX_TEST_ASSERT(list->collection.simple_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1266 CX_TEST_ASSERT(list->collection.advanced_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1267 CX_TEST_ASSERT(list->collection.destructor_data == NULL);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1268 CX_TEST_ASSERT(cxListSize(list) == 0);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1269 CX_TEST_ASSERT(list->collection.allocator == cxDefaultAllocator);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1270 CX_TEST_ASSERT(list->collection.cmpfunc == cx_cmp_ptr);
1111
78eeeb950883 remove API for changing the store_pointer property after list creation
Mike Becker <universe@uap-core.de>
parents: 1022
diff changeset
1271 CX_TEST_ASSERT(list->collection.store_pointer);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1272 }
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1273 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1274 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1275
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1276 CX_TEST(test_list_arl_create) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1277 CxTestingAllocator talloc;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1278 cx_testing_allocator_init(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1279 CxAllocator *alloc = &talloc.base;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1280 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1281 CxList *list = cxArrayListCreate(alloc, cx_cmp_int, sizeof(int), 8);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1282 CX_TEST_ASSERT(list != NULL);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1283 CX_TEST_ASSERT(list->collection.elem_size == sizeof(int));
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1284 CX_TEST_ASSERT(list->collection.simple_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1285 CX_TEST_ASSERT(list->collection.advanced_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1286 CX_TEST_ASSERT(list->collection.destructor_data == NULL);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1287 CX_TEST_ASSERT(cxListSize(list) == 0);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1288 CX_TEST_ASSERT(list->collection.allocator == alloc);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1289 CX_TEST_ASSERT(list->collection.cmpfunc == cx_cmp_int);
1111
78eeeb950883 remove API for changing the store_pointer property after list creation
Mike Becker <universe@uap-core.de>
parents: 1022
diff changeset
1290 CX_TEST_ASSERT(!list->collection.store_pointer);
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1291 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1292 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1293 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1294 cx_testing_allocator_destroy(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1295 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1296
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1297 CX_TEST(test_list_arl_create_simple) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1298 CxList *list = cxArrayListCreateSimple(sizeof(int), 8);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1299 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1300 CX_TEST_ASSERT(list != NULL);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1301 CX_TEST_ASSERT(list->collection.elem_size == sizeof(int));
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1302 CX_TEST_ASSERT(list->collection.simple_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1303 CX_TEST_ASSERT(list->collection.advanced_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1304 CX_TEST_ASSERT(list->collection.destructor_data == NULL);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1305 CX_TEST_ASSERT(cxListSize(list) == 0);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1306 CX_TEST_ASSERT(list->collection.allocator == cxDefaultAllocator);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1307 CX_TEST_ASSERT(list->collection.cmpfunc == NULL);
1111
78eeeb950883 remove API for changing the store_pointer property after list creation
Mike Becker <universe@uap-core.de>
parents: 1022
diff changeset
1308 CX_TEST_ASSERT(!list->collection.store_pointer);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1309 }
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1310 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1311 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1312
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1313 CX_TEST(test_list_arl_create_simple_for_pointers) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1314 CxList *list = cxArrayListCreateSimple(CX_STORE_POINTERS, 8);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1315 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1316 CX_TEST_ASSERT(list != NULL);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1317 CX_TEST_ASSERT(list->collection.elem_size == sizeof(void*));
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1318 CX_TEST_ASSERT(list->collection.simple_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1319 CX_TEST_ASSERT(list->collection.advanced_destructor == NULL);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1320 CX_TEST_ASSERT(list->collection.destructor_data == NULL);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1321 CX_TEST_ASSERT(cxListSize(list) == 0);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1322 CX_TEST_ASSERT(list->collection.allocator == cxDefaultAllocator);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1323 CX_TEST_ASSERT(list->collection.cmpfunc == cx_cmp_ptr);
1111
78eeeb950883 remove API for changing the store_pointer property after list creation
Mike Becker <universe@uap-core.de>
parents: 1022
diff changeset
1324 CX_TEST_ASSERT(list->collection.store_pointer);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1325 }
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1326 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1327 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1328
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1329 static void test_fake_simple_int_destr(void *elem) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1330 *(int *) elem = 42;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1331 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1332
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1333 CX_TEST(test_list_pll_destroy_no_destr) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1334 CxTestingAllocator talloc;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1335 cx_testing_allocator_init(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1336 CxAllocator *alloc = &talloc.base;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1337 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1338 void *item = cxMalloc(alloc, sizeof(int));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1339 CxList *list = cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1340 cxListAdd(list, item);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1341 CX_TEST_ASSERT(!cx_testing_allocator_verify(&talloc));
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1342 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1343 // item is not yet freed
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1344 CX_TEST_ASSERT(!cx_testing_allocator_verify(&talloc));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1345 cxFree(alloc, item);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1346 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1347 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1348 cx_testing_allocator_destroy(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1349 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1350
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1351 CX_TEST(test_list_pll_destroy_simple_destr) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1352 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1353 int item = 0;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1354 CxList *list = cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1355 list->collection.simple_destructor = test_fake_simple_int_destr;
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1356 cxListAdd(list, &item);
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1357 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1358 CX_TEST_ASSERT(item == 42);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1359 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1360 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1361
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1362 CX_TEST(test_list_pll_destroy_adv_destr) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1363 CxTestingAllocator talloc;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1364 cx_testing_allocator_init(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1365 CxAllocator *alloc = &talloc.base;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1366 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1367 void *item = cxMalloc(alloc, sizeof(int));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1368 CxList *list = cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1369 list->collection.destructor_data = alloc;
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1370 list->collection.advanced_destructor = (cx_destructor_func2) cxFree;
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1371 cxListAdd(list, item);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1372 CX_TEST_ASSERT(!cx_testing_allocator_verify(&talloc));
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1373 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1374 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1375 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1376 cx_testing_allocator_destroy(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1377 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1378
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1379 CX_TEST(test_list_parl_destroy_no_destr) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1380 CxTestingAllocator talloc;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1381 cx_testing_allocator_init(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1382 CxAllocator *alloc = &talloc.base;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1383 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1384 void *item = cxMalloc(alloc, sizeof(int));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1385 CxList *list = cxArrayListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS, 4);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1386 cxListAdd(list, item);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1387 CX_TEST_ASSERT(!cx_testing_allocator_verify(&talloc));
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1388 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1389 // item is not yet freed
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1390 CX_TEST_ASSERT(!cx_testing_allocator_verify(&talloc));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1391 cxFree(alloc, item);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1392 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1393 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1394 cx_testing_allocator_destroy(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1395 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1396
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1397 CX_TEST(test_list_parl_destroy_simple_destr) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1398 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1399 int item = 0;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1400 CxList *list = cxArrayListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS, 4);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1401 list->collection.simple_destructor = test_fake_simple_int_destr;
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1402 cxListAdd(list, &item);
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1403 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1404 CX_TEST_ASSERT(item == 42);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1405 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1406 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1407
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1408 CX_TEST(test_list_parl_destroy_adv_destr) {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1409 CxTestingAllocator talloc;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1410 cx_testing_allocator_init(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1411 CxAllocator *alloc = &talloc.base;
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1412 CX_TEST_DO {
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1413 void *item = cxMalloc(alloc, sizeof(int));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1414 CxList *list = cxArrayListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS, 4);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1415 list->collection.destructor_data = alloc;
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
1416 list->collection.advanced_destructor = (cx_destructor_func2) cxFree;
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1417 cxListAdd(list, item);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1418 CX_TEST_ASSERT(!cx_testing_allocator_verify(&talloc));
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1419 cxListFree(list);
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1420 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1421 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1422 cx_testing_allocator_destroy(&talloc);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1423 }
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
1424
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1425 #define set_up_combo \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1426 CxTestingAllocator talloc; \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1427 cx_testing_allocator_init(&talloc); \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1428 CxAllocator *alloc = &talloc.base; \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1429 CX_TEST_DO {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1430 #define tear_down_combo \
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
1431 cxListFree(list); \
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1432 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));\
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1433 } \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1434 cx_testing_allocator_destroy(&talloc);
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1435 #define roll_out_test_invokers(name) \
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1436 CX_TEST(test_list_ll_##name) { \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1437 set_up_combo \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1438 CxList *list = cxLinkedListCreate(alloc, cx_cmp_int, sizeof(int)); \
807
c8d692131b1e remove flags to disable SBO in tests - fix #343 fix #358
Mike Becker <universe@uap-core.de>
parents: 804
diff changeset
1439 CX_TEST_CALL_SUBROUTINE(test_list_verify_##name, list, false); \
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1440 tear_down_combo \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1441 } \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1442 CX_TEST(test_list_arl_##name) { \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1443 set_up_combo \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1444 CxList *list = cxArrayListCreate(alloc, cx_cmp_int, sizeof(int), 8); \
807
c8d692131b1e remove flags to disable SBO in tests - fix #343 fix #358
Mike Becker <universe@uap-core.de>
parents: 804
diff changeset
1445 CX_TEST_CALL_SUBROUTINE(test_list_verify_##name, list, false); \
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1446 tear_down_combo \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1447 } \
1350
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1448 CX_TEST(test_list_kvl_##name) { \
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1449 set_up_combo \
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1450 CxList *list = cxKvListCreate(alloc, cx_cmp_int, sizeof(int)); \
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1451 CX_TEST_CALL_SUBROUTINE(test_list_verify_##name, list, false); \
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1452 tear_down_combo \
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1453 } \
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1454 CX_TEST(test_list_pll_##name) { \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1455 set_up_combo \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1456 CxList *list = cxLinkedListCreate(alloc, cx_cmp_int, CX_STORE_POINTERS); \
807
c8d692131b1e remove flags to disable SBO in tests - fix #343 fix #358
Mike Becker <universe@uap-core.de>
parents: 804
diff changeset
1457 CX_TEST_CALL_SUBROUTINE(test_list_verify_##name, list, true); \
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1458 tear_down_combo \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1459 } \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1460 CX_TEST(test_list_parl_##name) { \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1461 set_up_combo \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1462 CxList *list = cxArrayListCreate(alloc, cx_cmp_int, CX_STORE_POINTERS, 8); \
807
c8d692131b1e remove flags to disable SBO in tests - fix #343 fix #358
Mike Becker <universe@uap-core.de>
parents: 804
diff changeset
1463 CX_TEST_CALL_SUBROUTINE(test_list_verify_##name, list, true); \
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1464 tear_down_combo \
1350
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1465 } \
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1466 CX_TEST(test_list_pkvl_##name) { \
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1467 set_up_combo \
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1468 CxList *list = cxKvListCreate(alloc, cx_cmp_int, CX_STORE_POINTERS); \
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1469 CX_TEST_CALL_SUBROUTINE(test_list_verify_##name, list, true); \
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
1470 tear_down_combo \
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1471 }
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1472 #define roll_out_test_combos(name, body) \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1473 static CX_TEST_SUBROUTINE(test_list_verify_##name, CxList *list, \
985
68754c7de906 major refactoring of attributes
Mike Becker <universe@uap-core.de>
parents: 962
diff changeset
1474 cx_attr_unused bool isptrlist) body \
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1475 roll_out_test_invokers(name)
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1476
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1477 static void set_default_class_funcs(CxList *list, cx_list_class *defaulted_cl) {
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 886
diff changeset
1478 const cx_list_class *cl = list->climpl == NULL ? list->cl : list->climpl;
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1479 memcpy(defaulted_cl, cl, sizeof(cx_list_class));
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1480 defaulted_cl->insert_array = cx_list_default_insert_array;
1419
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1481 defaulted_cl->insert_unique = cx_list_default_insert_unique;
876
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1482 defaulted_cl->insert_sorted = cx_list_default_insert_sorted;
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1483 defaulted_cl->sort = cx_list_default_sort;
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1484 defaulted_cl->swap = cx_list_default_swap;
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1485 defaulted_cl->compare = NULL;
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1486 if (list->climpl == NULL) {
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1487 list->cl = defaulted_cl;
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1488 } else {
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1489 list->climpl = defaulted_cl;
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1490 }
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1491 }
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1492
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1493 #define do_set_default_class_funcs(list) \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1494 cx_list_class defaulted_cl; \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1495 set_default_class_funcs(list, &defaulted_cl)
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1496 #define roll_out_test_combos_with_defaulted_funcs(name, body) \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1497 static CX_TEST_SUBROUTINE(test_list_verify_##name, CxList *list, \
985
68754c7de906 major refactoring of attributes
Mike Becker <universe@uap-core.de>
parents: 962
diff changeset
1498 cx_attr_unused bool isptrlist) body \
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1499 roll_out_test_invokers(name) \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1500 CX_TEST(test_list_llm_##name) { \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1501 set_up_combo \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1502 CxList *list = cxLinkedListCreate(alloc, cx_cmp_int, sizeof(int)); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1503 do_set_default_class_funcs(list); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1504 CX_TEST_CALL_SUBROUTINE(test_list_verify_##name, list, false); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1505 tear_down_combo \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1506 } \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1507 CX_TEST(test_list_arlm_##name) { \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1508 set_up_combo \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1509 CxList *list = cxArrayListCreate(alloc, cx_cmp_int, sizeof(int), 8); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1510 do_set_default_class_funcs(list); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1511 CX_TEST_CALL_SUBROUTINE(test_list_verify_##name, list, false); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1512 tear_down_combo \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1513 } \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1514 CX_TEST(test_list_pllm_##name) { \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1515 set_up_combo \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1516 CxList *list = cxLinkedListCreate(alloc, cx_cmp_int, CX_STORE_POINTERS); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1517 do_set_default_class_funcs(list); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1518 CX_TEST_CALL_SUBROUTINE(test_list_verify_##name, list, true); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1519 tear_down_combo \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1520 } \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1521 CX_TEST(test_list_parlm_##name) { \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1522 set_up_combo \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1523 CxList *list = cxArrayListCreate(alloc, cx_cmp_int, CX_STORE_POINTERS, 8); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1524 do_set_default_class_funcs(list); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1525 CX_TEST_CALL_SUBROUTINE(test_list_verify_##name, list, true); \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1526 tear_down_combo \
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1527 }
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1528
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1529 #define array_init(...) {__VA_ARGS__}
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1530
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1531 static inline int *int_test_data_added_to_list(CxList *list, bool isptrlist, size_t len) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1532 int *testdata = int_test_data(len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1533 if (isptrlist) {
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1534 for (size_t i = 0; i < len; i++) {
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1535 cxListAdd(list, &testdata[i]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1536 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1537 } else {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1538 cxListAddArray(list, testdata, len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1539 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1540 return testdata;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1541 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1542
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1543 roll_out_test_combos(add, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1544 const size_t len = 250;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1545 int *testdata = int_test_data(len);
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1546 for (size_t i = 0; i < len; i++) {
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1547 CX_TEST_ASSERT(cxListAdd(list, &testdata[i]) == 0);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1548 }
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1549 CX_TEST_ASSERT(cxListSize(list) == len);
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1550 for (size_t i = 0; i < len; i++) {
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1551 CX_TEST_ASSERT(*(int *) cxListAt(list, i) == testdata[i]);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1552 }
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1553 for (size_t i = 0; i < len; i++) {
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1554 ++testdata[i];
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1555 }
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1556 if (isptrlist) {
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1557 for (size_t i = 0; i < len; i++) {
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1558 CX_TEST_ASSERT(*(int *) cxListAt(list, i) == testdata[i]);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1559 }
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1560 } else {
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1561 for (size_t i = 0; i < len; i++) {
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1562 CX_TEST_ASSERT(*(int *) cxListAt(list, i) == testdata[i] - 1);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1563 }
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1564 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1565 free(testdata);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1566 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1567
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1568 roll_out_test_combos(insert, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1569 int a = 5;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1570 int b = 47;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1571 int c = 13;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1572 int d = 42;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1573 CX_TEST_ASSERT(cxListInsert(list, 1, &a) != 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1574 CX_TEST_ASSERT(cxListSize(list) == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1575 CX_TEST_ASSERT(cxListInsert(list, 0, &a) == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1576 CX_TEST_ASSERT(cxListSize(list) == 1);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1577 CX_TEST_ASSERT(cxListInsert(list, 0, &b) == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1578 CX_TEST_ASSERT(cxListSize(list) == 2);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1579 CX_TEST_ASSERT(cxListInsert(list, 1, &c) == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1580 CX_TEST_ASSERT(cxListSize(list) == 3);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1581 CX_TEST_ASSERT(cxListInsert(list, 3, &d) == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1582 CX_TEST_ASSERT(cxListSize(list) == 4);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1583 CX_TEST_ASSERT(*(int *) cxListAt(list, 0) == 47);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1584 CX_TEST_ASSERT(*(int *) cxListAt(list, 1) == 13);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1585 CX_TEST_ASSERT(*(int *) cxListAt(list, 2) == 5);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1586 CX_TEST_ASSERT(*(int *) cxListAt(list, 3) == 42);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1587 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1588
1316
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1589 roll_out_test_combos(emplace, {
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1590 if (isptrlist) {
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1591 int **x;
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1592 int y = 5;
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1593 int z = 7;
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1594 int w = 13;
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1595
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1596 x = cxListEmplace(list);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1597 CX_TEST_ASSERT(x != NULL);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1598 CX_TEST_ASSERT(cxListSize(list) == 1);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1599 *x = &y;
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1600 CX_TEST_ASSERT(*(int*)cxListAt(list, 0) == 5);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1601
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1602 x = cxListEmplace(list);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1603 CX_TEST_ASSERT(x != NULL);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1604 CX_TEST_ASSERT(cxListSize(list) == 2);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1605 *x = &z;
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1606 CX_TEST_ASSERT(*(int*)cxListAt(list, 1) == 7);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1607
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1608 CX_TEST_ASSERT(NULL == cxListEmplaceAt(list, 3));
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1609 CX_TEST_ASSERT(cxListSize(list) == 2);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1610
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1611 x = cxListEmplaceAt(list, 1);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1612 CX_TEST_ASSERT(x != NULL);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1613 CX_TEST_ASSERT(cxListSize(list) == 3);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1614 *x = &w;
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1615 CX_TEST_ASSERT(*(int*)cxListAt(list, 0) == 5);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1616 CX_TEST_ASSERT(*(int*)cxListAt(list, 1) == 13);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1617 CX_TEST_ASSERT(*(int*)cxListAt(list, 2) == 7);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1618 } else {
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1619 int *x;
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1620
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1621 x = cxListEmplace(list);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1622 CX_TEST_ASSERT(x != NULL);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1623 CX_TEST_ASSERT(cxListSize(list) == 1);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1624 *x = 5;
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1625 CX_TEST_ASSERT(*(int*)cxListAt(list, 0) == 5);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1626
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1627 x = cxListEmplace(list);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1628 CX_TEST_ASSERT(x != NULL);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1629 CX_TEST_ASSERT(cxListSize(list) == 2);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1630 *x = 7;
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1631 CX_TEST_ASSERT(*(int*)cxListAt(list, 1) == 7);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1632
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1633 CX_TEST_ASSERT(NULL == cxListEmplaceAt(list, 3));
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1634 CX_TEST_ASSERT(cxListSize(list) == 2);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1635
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1636 x = cxListEmplaceAt(list, 1);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1637 CX_TEST_ASSERT(x != NULL);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1638 CX_TEST_ASSERT(cxListSize(list) == 3);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1639 *x = 13;
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1640 CX_TEST_ASSERT(*(int*)cxListAt(list, 0) == 5);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1641 CX_TEST_ASSERT(*(int*)cxListAt(list, 1) == 13);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1642 CX_TEST_ASSERT(*(int*)cxListAt(list, 2) == 7);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1643 }
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1644 })
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
1645
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
1646 roll_out_test_combos_with_defaulted_funcs(insert_array, {
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1647 int a[5] = array_init(5, 47, 11, 13, 42);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1648 int b[5] = array_init(9, 18, 72, 50, 7);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1649 int *aptr[5];
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1650 int *bptr[5];
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1651 for (size_t i = 0; i < 5; i++) {
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1652 aptr[i] = &a[i];
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1653 bptr[i] = &b[i];
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1654 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1655
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1656 size_t inserted;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1657
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1658 if (isptrlist) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1659 inserted = cxListInsertArray(list, 0, aptr, 5);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1660 } else {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1661 inserted = cxListInsertArray(list, 0, a, 5);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1662 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1663 CX_TEST_ASSERT(inserted == 5);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1664 CX_TEST_ASSERT(*(int *) cxListAt(list, 0) == 5);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1665 CX_TEST_ASSERT(*(int *) cxListAt(list, 1) == 47);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1666 CX_TEST_ASSERT(*(int *) cxListAt(list, 2) == 11);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1667 CX_TEST_ASSERT(*(int *) cxListAt(list, 3) == 13);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1668 CX_TEST_ASSERT(*(int *) cxListAt(list, 4) == 42);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1669 if (isptrlist) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1670 inserted = cxListInsertArray(list, 3, bptr, 5);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1671 } else {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1672 inserted = cxListInsertArray(list, 3, b, 5);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1673 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1674 CX_TEST_ASSERT(inserted == 5);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1675 CX_TEST_ASSERT(*(int *) cxListAt(list, 0) == 5);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1676 CX_TEST_ASSERT(*(int *) cxListAt(list, 1) == 47);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1677 CX_TEST_ASSERT(*(int *) cxListAt(list, 2) == 11);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1678 CX_TEST_ASSERT(*(int *) cxListAt(list, 3) == 9);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1679 CX_TEST_ASSERT(*(int *) cxListAt(list, 4) == 18);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1680 CX_TEST_ASSERT(*(int *) cxListAt(list, 5) == 72);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1681 CX_TEST_ASSERT(*(int *) cxListAt(list, 6) == 50);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1682 CX_TEST_ASSERT(*(int *) cxListAt(list, 7) == 7);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1683 CX_TEST_ASSERT(*(int *) cxListAt(list, 8) == 13);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1684 CX_TEST_ASSERT(*(int *) cxListAt(list, 9) == 42);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1685 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1686
876
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1687 roll_out_test_combos_with_defaulted_funcs(insert_sorted, {
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1688 int d1 = 50;
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1689 int d2 = 80;
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1690 int d3 = 60;
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1691 int d4 = 40;
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1692 int d5 = 70;
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1693 int d6a[6] = array_init(52, 54, 56, 62, 64, 75);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1694 int d7a[6] = array_init(51, 57, 58, 65, 77, 78);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1695 int d8 = 90;
1419
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1696 int d9 = 56;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1697 int d10a[3] = array_init(67, 75, 90);
876
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1698 int *d6ptr[6];
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1699 int *d7ptr[6];
1419
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1700 int *d10ptr[3];
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
1701 for (size_t i = 0; i < 6; i++) {
876
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1702 d6ptr[i] = &d6a[i];
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1703 d7ptr[i] = &d7a[i];
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1704 }
1419
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1705 for (size_t i = 0 ; i < 3 ; i++) {
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1706 d10ptr[i] = &d10a[i];
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1707 }
876
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1708 size_t inserted;
1419
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1709 int expected[22] = array_init(
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1710 40, 50, 51, 52, 54, 56, 56, 57, 58, 60,
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1711 62, 64, 65, 67, 70, 75, 75, 77, 78, 80, 90, 90
876
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1712 );
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1713
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1714 CX_TEST_ASSERT(0 == cxListInsertSorted(list, &d1));
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1715 CX_TEST_ASSERT(0 == cxListInsertSorted(list, &d2));
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1716 CX_TEST_ASSERT(0 == cxListInsertSorted(list, &d3));
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1717 CX_TEST_ASSERT(0 == cxListInsertSorted(list, &d4));
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1718 CX_TEST_ASSERT(0 == cxListInsertSorted(list, &d5));
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1719 if (isptrlist) {
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1720 inserted = cxListInsertSortedArray(list, d6ptr, 6);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1721 } else {
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1722 inserted = cxListInsertSortedArray(list, d6a, 6);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1723 }
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1724 CX_TEST_ASSERT(inserted == 6);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1725 if (isptrlist) {
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1726 inserted = cxListInsertSortedArray(list, d7ptr, 6);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1727 } else {
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1728 inserted = cxListInsertSortedArray(list, d7a, 6);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1729 }
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1730 CX_TEST_ASSERT(inserted == 6);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1731 CX_TEST_ASSERT(0 == cxListInsertSorted(list, &d8));
1419
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1732 CX_TEST_ASSERT(0 == cxListInsertSorted(list, &d9));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1733 if (isptrlist) {
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1734 inserted = cxListInsertSortedArray(list, d10ptr, 3);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1735 } else {
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1736 inserted = cxListInsertSortedArray(list, d10a, 3);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1737 }
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1738 CX_TEST_ASSERT(inserted == 3);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1739 CX_TEST_ASSERT(cxListSize(list) == 22);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1740 for (size_t i = 0; i < 22; i++) {
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1741 CX_TEST_ASSERT(*(int *) cxListAt(list, i) == expected[i]);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1742 }
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1743 })
876
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1744
1419
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1745 roll_out_test_combos_with_defaulted_funcs(insert_unique, {
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1746 int d1 = 50;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1747 int d2 = 80;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1748 int d3 = 60;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1749 int d4 = 40;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1750 int d5 = 70;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1751 int d6a[6] = array_init(52, 54, 56, 62, 64, 75);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1752 int d7a[6] = array_init(51, 57, 58, 65, 77, 78);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1753 int d8 = 90;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1754 int d9 = 56;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1755 int d10a[3] = array_init(67, 75, 90);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1756 int *d6ptr[6];
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1757 int *d7ptr[6];
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1758 int *d10ptr[3];
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1759 for (size_t i = 0; i < 6; i++) {
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1760 d6ptr[i] = &d6a[i];
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1761 d7ptr[i] = &d7a[i];
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1762 }
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1763 for (size_t i = 0 ; i < 3 ; i++) {
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1764 d10ptr[i] = &d10a[i];
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1765 }
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1766 size_t inserted;
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1767 int expected[19] = array_init(
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1768 40, 50, 51, 52, 54, 56, 57, 58, 60,
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1769 62, 64, 65, 67, 70, 75, 77, 78, 80, 90
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1770 );
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1771
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1772 CX_TEST_ASSERT(0 == cxListInsertUnique(list, &d1));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1773 CX_TEST_ASSERT(0 == cxListInsertUnique(list, &d2));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1774 CX_TEST_ASSERT(0 == cxListInsertUnique(list, &d3));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1775 CX_TEST_ASSERT(0 == cxListInsertUnique(list, &d4));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1776 CX_TEST_ASSERT(0 == cxListInsertUnique(list, &d5));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1777 if (isptrlist) {
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1778 inserted = cxListInsertUniqueArray(list, d6ptr, 6);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1779 } else {
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1780 inserted = cxListInsertUniqueArray(list, d6a, 6);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1781 }
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1782 CX_TEST_ASSERT(inserted == 6);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1783 if (isptrlist) {
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1784 inserted = cxListInsertUniqueArray(list, d7ptr, 6);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1785 } else {
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1786 inserted = cxListInsertUniqueArray(list, d7a, 6);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1787 }
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1788 CX_TEST_ASSERT(inserted == 6);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1789 CX_TEST_ASSERT(0 == cxListInsertUnique(list, &d8));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1790 CX_TEST_ASSERT(0 == cxListInsertUnique(list, &d9));
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1791 if (isptrlist) {
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1792 inserted = cxListInsertUniqueArray(list, d10ptr, 3);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1793 } else {
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1794 inserted = cxListInsertUniqueArray(list, d10a, 3);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1795 }
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1796 CX_TEST_ASSERT(inserted == 3);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1797 CX_TEST_ASSERT(cxListSize(list) == 19);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
1798 for (size_t i = 0; i < 19; i++) {
876
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1799 CX_TEST_ASSERT(*(int *) cxListAt(list, i) == expected[i]);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1800 }
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1801 })
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
1802
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1803 roll_out_test_combos(remove, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1804 const size_t testdata_len = 32;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1805 int *testdata = int_test_data_added_to_list(list, isptrlist, testdata_len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1806
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1807 CX_TEST_ASSERT(cxListRemove(list, 2) == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1808 CX_TEST_ASSERT(cxListRemove(list, 4) == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1809 CX_TEST_ASSERT(cxListSize(list) == testdata_len - 2);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1810 CX_TEST_ASSERT(*(int *) cxListAt(list, 0) == testdata[0]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1811 CX_TEST_ASSERT(*(int *) cxListAt(list, 1) == testdata[1]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1812 CX_TEST_ASSERT(*(int *) cxListAt(list, 2) == testdata[3]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1813 CX_TEST_ASSERT(*(int *) cxListAt(list, 3) == testdata[4]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1814 CX_TEST_ASSERT(*(int *) cxListAt(list, 4) == testdata[6]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1815 CX_TEST_ASSERT(cxListRemove(list, 0) == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1816 CX_TEST_ASSERT(cxListSize(list) == testdata_len - 3);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1817 CX_TEST_ASSERT(*(int *) cxListAt(list, 0) == testdata[1]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1818 CX_TEST_ASSERT(*(int *) cxListAt(list, 1) == testdata[3]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1819 CX_TEST_ASSERT(cxListRemove(list, testdata_len) != 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1820 free(testdata);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1821 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1822
1315
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1823 roll_out_test_combos(remove_and_get, {
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1824 int testdata[10];
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1825 for (unsigned i = 0 ; i < 10 ; i++) {
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1826 testdata[i] = 2*i;
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1827 cxListAdd(list, &testdata[i]);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1828 }
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1829 if (isptrlist) {
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1830 int *x;
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1831 CX_TEST_ASSERT(cxListPop(list, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1832 CX_TEST_ASSERT(*x == 18);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1833 CX_TEST_ASSERT(cxListPop(list, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1834 CX_TEST_ASSERT(*x == 16);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1835 CX_TEST_ASSERT(cxListPopFront(list, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1836 CX_TEST_ASSERT(*x == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1837 CX_TEST_ASSERT(cxListPopFront(list, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1838 CX_TEST_ASSERT(*x == 2);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1839 CX_TEST_ASSERT(cxListRemoveAndGet(list, 3, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1840 CX_TEST_ASSERT(*x == 10);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1841 CX_TEST_ASSERT(cxListRemoveAndGet(list, 3, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1842 CX_TEST_ASSERT(*x == 12);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1843 CX_TEST_ASSERT(cxListRemoveAndGet(list, 8, &x) != 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1844 CX_TEST_ASSERT(*x == 12);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1845
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1846 *x = 1337;
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1847 cxListClear(list);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1848 CX_TEST_ASSERT(cxListRemoveAndGet(list, 0, &x) != 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1849 CX_TEST_ASSERT(cxListRemoveAndGet(list, 1, &x) != 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1850 CX_TEST_ASSERT(cxListPop(list, &x) != 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1851 CX_TEST_ASSERT(cxListPopFront(list, &x) != 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1852 CX_TEST_ASSERT(*x == 1337);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1853 } else {
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1854 int x;
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1855 CX_TEST_ASSERT(cxListPop(list, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1856 CX_TEST_ASSERT(x == 18);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1857 CX_TEST_ASSERT(cxListPop(list, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1858 CX_TEST_ASSERT(x == 16);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1859 CX_TEST_ASSERT(cxListPopFront(list, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1860 CX_TEST_ASSERT(x == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1861 CX_TEST_ASSERT(cxListPopFront(list, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1862 CX_TEST_ASSERT(x == 2);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1863 CX_TEST_ASSERT(cxListRemoveAndGet(list, 3, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1864 CX_TEST_ASSERT(x == 10);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1865 CX_TEST_ASSERT(cxListRemoveAndGet(list, 3, &x) == 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1866 CX_TEST_ASSERT(x == 12);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1867 CX_TEST_ASSERT(cxListRemoveAndGet(list, 8, &x) != 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1868 CX_TEST_ASSERT(x == 12);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1869
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1870 x = 1337;
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1871 cxListClear(list);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1872 CX_TEST_ASSERT(cxListRemoveAndGet(list, 0, &x) != 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1873 CX_TEST_ASSERT(cxListRemoveAndGet(list, 1, &x) != 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1874 CX_TEST_ASSERT(cxListPop(list, &x) != 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1875 CX_TEST_ASSERT(cxListPopFront(list, &x) != 0);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1876 CX_TEST_ASSERT(x == 1337);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1877 }
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1878 })
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1879
961
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1880 static unsigned test_remove_array_destr_ctr;
985
68754c7de906 major refactoring of attributes
Mike Becker <universe@uap-core.de>
parents: 962
diff changeset
1881 static void test_remove_array_destr(cx_attr_unused void *d) {
961
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1882 test_remove_array_destr_ctr++;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1883 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1884
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1885 roll_out_test_combos(remove_array, {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1886 const size_t testdata_len = 32;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1887 int *testdata = int_test_data_added_to_list(list, isptrlist, testdata_len);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1888 cxDefineDestructor(list, test_remove_array_destr);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1889 test_remove_array_destr_ctr = 0;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1890
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1891 // first, remove and get - no destructor must be called
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1892 int targete[8];
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1893 int *targetp[8];
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1894 memset(targete, 0, sizeof(targete));
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1895 memset(targetp, 0, sizeof(targetp));
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1896 void *target = isptrlist ? (void*) targetp : targete;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1897 CX_TEST_ASSERT(8 == cxListRemoveArrayAndGet(list, 8, 8, target));
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1898 CX_TEST_ASSERT(0 == test_remove_array_destr_ctr);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1899 CX_TEST_ASSERT(24 == cxListSize(list));
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1900 for (unsigned int i = 0 ; i < 8 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1901 CX_TEST_ASSERT((*(int*)cxListAt(list, i)) == testdata[i]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1902 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1903 for (unsigned int i = 8 ; i < 24 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1904 CX_TEST_ASSERT((*(int*)cxListAt(list, i)) == testdata[8+i]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1905 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1906 for (unsigned int i = 0 ; i < 8 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1907 if (isptrlist) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1908 CX_TEST_ASSERT(targetp[i] == &testdata[8 + i]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1909 } else {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1910 CX_TEST_ASSERT(targete[i] == testdata[8 + i]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1911 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1912 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1913
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1914 // now, just remove - destructor must be called
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1915 CX_TEST_ASSERT(8 == cxListRemoveArray(list, 8, 8));
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1916 CX_TEST_ASSERT(8 == test_remove_array_destr_ctr);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1917 CX_TEST_ASSERT(16 == cxListSize(list));
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1918 for (unsigned int i = 0 ; i < 8 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1919 CX_TEST_ASSERT((*(int*)cxListAt(list, i)) == testdata[i]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1920 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1921 for (unsigned int i = 8 ; i < 16 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1922 CX_TEST_ASSERT((*(int*)cxListAt(list, i)) == testdata[16+i]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1923 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1924
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1925 // finally, remove and get out of bounds
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1926 test_remove_array_destr_ctr = 0;
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1927 memset(targete, 0, sizeof(targete));
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1928 memset(targetp, 0, sizeof(targetp));
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1929 CX_TEST_ASSERT(4 == cxListRemoveArrayAndGet(list, 12, 8, target));
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1930 CX_TEST_ASSERT(0 == test_remove_array_destr_ctr);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1931 CX_TEST_ASSERT(12 == cxListSize(list));
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1932 for (unsigned int i = 0 ; i < 8 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1933 CX_TEST_ASSERT((*(int*)cxListAt(list, i)) == testdata[i]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1934 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1935 for (unsigned int i = 8 ; i < 12 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1936 CX_TEST_ASSERT((*(int*)cxListAt(list, i)) == testdata[16+i]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1937 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1938 for (unsigned int i = 0 ; i < 4 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1939 if (isptrlist) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1940 CX_TEST_ASSERT(targetp[i] == &testdata[28 + i]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1941 } else {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1942 CX_TEST_ASSERT(targete[i] == testdata[28 + i]);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1943 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1944 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1945 for (unsigned int i = 4 ; i < 8 ; i++) {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1946 if (isptrlist) {
1315
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
1947 CX_TEST_ASSERT(targetp[i] == NULL);
961
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1948 } else {
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1949 CX_TEST_ASSERT(targete[i] == 0);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1950 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1951 }
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1952
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1953 free(testdata);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1954 })
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
1955
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1956 roll_out_test_combos(find_remove, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1957 const size_t testdata_len = 250;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1958 int *testdata = int_test_data_added_to_list(list, isptrlist, testdata_len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1959
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
1960 unsigned exp = rand() % testdata_len; // NOLINT(cert-msc50-cpp)
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1961 int val = testdata[exp];
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1962 // randomly picked number could occur earlier in list - find first position
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
1963 for (unsigned i = 0 ; i < exp ; i++) {
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1964 if (testdata[i] == val) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1965 exp = i;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1966 break;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1967 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1968 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1969 CX_TEST_ASSERT(cxListSize(list) == testdata_len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1970 CX_TEST_ASSERT(cxListFind(list, &val) == exp);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1971 CX_TEST_ASSERT(cxListFindRemove(list, &val) == exp);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1972 CX_TEST_ASSERT(cxListSize(list) == testdata_len - 1);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1973 CX_TEST_ASSERT(cxListFind(list, &val) != exp);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1974
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1975 int notinlist = -1;
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
1976 CX_TEST_ASSERT(cxListFindRemove(list, &notinlist) == cxListSize(list));
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1977 CX_TEST_ASSERT(cxListSize(list) == testdata_len - 1);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1978
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1979 free(testdata);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1980 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
1981
1163
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1982 roll_out_test_combos(find_remove_sorted, {
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1983 const size_t testdata_len = 250;
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1984 int *testdata = int_test_data_added_to_list(list, isptrlist, testdata_len);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1985 qsort(testdata, testdata_len, sizeof(int), cx_cmp_int);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1986 cxListSort(list);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1987
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1988 unsigned exp = rand() % testdata_len; // NOLINT(cert-msc50-cpp)
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1989 int val = testdata[exp];
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1990 // randomly picked number could occur earlier in list - find first position
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1991 for (unsigned i = 0 ; i < exp ; i++) {
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1992 if (testdata[i] == val) {
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1993 exp = i;
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1994 break;
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1995 }
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1996 }
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1997 CX_TEST_ASSERT(cxListSize(list) == testdata_len);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1998 CX_TEST_ASSERT(cxListFind(list, &val) == exp);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
1999 CX_TEST_ASSERT(cxListFindRemove(list, &val) == exp);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
2000 CX_TEST_ASSERT(cxListSize(list) == testdata_len - 1);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
2001 CX_TEST_ASSERT(cxListFind(list, &val) != exp);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
2002
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
2003 int notinlist = -1;
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
2004 CX_TEST_ASSERT(cxListFindRemove(list, &notinlist) == cxListSize(list));
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
2005 CX_TEST_ASSERT(cxListSize(list) == testdata_len - 1);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
2006
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
2007 free(testdata);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
2008 })
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
2009
1294
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2010 roll_out_test_combos(contains, {
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2011 int a = 37;
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2012 int b = 42;
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2013 int c = 55;
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2014 cxListAdd(list, &a);
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2015 cxListAdd(list, &b);
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2016 cxListAdd(list, &c);
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2017 int x;
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2018 x = 37;
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2019 CX_TEST_ASSERT(cxListContains(list, &x));
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2020 x = 42;
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2021 CX_TEST_ASSERT(cxListContains(list, &x));
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2022 x = 55;
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2023 CX_TEST_ASSERT(cxListContains(list, &x));
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2024 x = 47;
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2025 CX_TEST_ASSERT(!cxListContains(list, &x));
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2026 })
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2027
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2028 roll_out_test_combos(clear, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2029 int *testdata = int_test_data_added_to_list(list, isptrlist, 8);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2030 CX_TEST_ASSERT(cxListSize(list) > 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2031 cxListClear(list);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2032 CX_TEST_ASSERT(cxListSize(list) == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2033 free(testdata);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2034 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2035
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2036 roll_out_test_combos(at, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2037 size_t len = 128;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2038 int *testdata = int_test_data_added_to_list(list, isptrlist, 128);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2039 CX_TEST_ASSERT(cxListSize(list) == len);
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2040 for (size_t i = 0; i < len; i++) {
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
2041 CX_TEST_ASSERT(cxListIndexValid(list, i));
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2042 CX_TEST_ASSERT(*(int *) cxListAt(list, i) == testdata[i]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2043 }
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
2044 CX_TEST_ASSERT(!cxListIndexValid(list, len));
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
2045 CX_TEST_ASSERT(cxListAt(list, len) == NULL);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2046 free(testdata);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2047 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2048
1287
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2049 roll_out_test_combos(set, {
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2050 // Add some values
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2051 int v1 = 42;
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2052 cxListAdd(list, &v1);
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2053 int v2 = 100;
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2054 cxListAdd(list, &v2);
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2055 int v3 = 47;
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2056 cxListAdd(list, &v3);
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2057
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2058 // Change the first element
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2059 int v1new = 99;
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2060 CX_TEST_ASSERT(cxListSet(list, 0, &v1new) == 0);
1315
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
2061 CX_TEST_ASSERT(*(int *) cxListFirst(list) == 99);
1287
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2062
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2063 // Change the last element
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2064 int v3new = 101;
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2065 CX_TEST_ASSERT(cxListSet(list, 2, &v3new) == 0);
1315
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
2066 CX_TEST_ASSERT(*(int *) cxListLast(list) == 101);
1287
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2067
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2068 // Try index out of bounds
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2069 int oob = 1337;
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2070 CX_TEST_ASSERT(cxListSet(list, 3, &oob) != 0);
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2071 })
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2072
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2073 roll_out_test_combos_with_defaulted_funcs(swap, {
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2074 int original[16] = array_init(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2075 int swapped[16] = array_init(8, 4, 14, 3, 1, 5, 9, 12, 0, 6, 11, 10, 7, 15, 2, 13);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2076
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2077 for (size_t i = 0; i < 16; i++) {
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2078 cxListAdd(list, &original[i]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2079 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2080
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2081 CX_TEST_ASSERT(0 == cxListSwap(list, 1, 4));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2082 CX_TEST_ASSERT(0 == cxListSwap(list, 2, 14));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2083 CX_TEST_ASSERT(0 == cxListSwap(list, 9, 6));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2084 CX_TEST_ASSERT(0 == cxListSwap(list, 3, 3));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2085 CX_TEST_ASSERT(0 == cxListSwap(list, 10, 11));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2086 CX_TEST_ASSERT(0 == cxListSwap(list, 8, 0));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2087 CX_TEST_ASSERT(0 == cxListSwap(list, 7, 12));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2088 CX_TEST_ASSERT(0 == cxListSwap(list, 13, 15));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2089
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2090 CX_TEST_ASSERT(0 != cxListSwap(list, 5, 16));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2091 CX_TEST_ASSERT(0 != cxListSwap(list, 16, 6));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2092 CX_TEST_ASSERT(0 != cxListSwap(list, 16, 17));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2093
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2094 CxIterator iter = cxListIterator(list);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2095 cx_foreach(int*, e, iter) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2096 CX_TEST_ASSERT(*e == swapped[iter.index]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2097 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2098 iter = cxListBackwardsIterator(list);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2099 cx_foreach(int*, e, iter) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2100 CX_TEST_ASSERT(*e == swapped[iter.index]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2101 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2102 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2103
807
c8d692131b1e remove flags to disable SBO in tests - fix #343 fix #358
Mike Becker <universe@uap-core.de>
parents: 804
diff changeset
2104 CX_TEST(test_list_arl_swap_no_sbo) {
1321
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2105 CxTestingAllocator talloc;
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2106 cx_testing_allocator_init(&talloc);
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2107 CxAllocator *alloc = &talloc.base;
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2108 CX_TEST_DO {
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2109 size_t item_size = 2*cx_array_swap_sbo_size;
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2110 CxList *list = cxArrayListCreate(alloc, cx_cmp_int, item_size, 8);
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2111
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2112 char *obj = malloc(item_size);
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2113 for (char c = 'a' ; c <= 'z' ; c++) {
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2114 obj[0] = c;
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2115 obj[item_size-1] = c;
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2116 cxListAdd(list, obj);
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2117 }
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2118 free(obj);
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2119
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2120 CX_TEST_ASSERT(((char*)cxListAt(list, 3))[0] == 'd');
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2121 CX_TEST_ASSERT(((char*)cxListAt(list, 17))[0] == 'r');
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2122 CX_TEST_ASSERT(((char*)cxListAt(list, 3))[item_size-1] == 'd');
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2123 CX_TEST_ASSERT(((char*)cxListAt(list, 17))[item_size-1] == 'r');
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2124 cxListSwap(list, 3, 17);
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2125 CX_TEST_ASSERT(((char*)cxListAt(list, 17))[0] == 'd');
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2126 CX_TEST_ASSERT(((char*)cxListAt(list, 3))[0] == 'r');
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2127 CX_TEST_ASSERT(((char*)cxListAt(list, 17))[item_size-1] == 'd');
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2128 CX_TEST_ASSERT(((char*)cxListAt(list, 3))[item_size-1] == 'r');
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2129
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2130 cxListFree(list);
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2131 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2132 }
1003c014bf92 fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents: 1319
diff changeset
2133 cx_testing_allocator_destroy(&talloc);
807
c8d692131b1e remove flags to disable SBO in tests - fix #343 fix #358
Mike Becker <universe@uap-core.de>
parents: 804
diff changeset
2134 }
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2135
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2136 roll_out_test_combos(find, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2137 const size_t testdata_len = 500;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2138 int *testdata = int_test_data_added_to_list(list, isptrlist, testdata_len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2139
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2140 for (size_t attempt = 0; attempt < 25; attempt++) {
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
2141 unsigned exp = rand() % testdata_len; // NOLINT(cert-msc50-cpp)
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2142 int val = testdata[exp];
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2143 // randomly picked number could occur earlier in list - find first position
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
2144 for (unsigned i = 0 ; i < exp ; i++) {
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2145 if (testdata[i] == val) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2146 exp = i;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2147 break;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2148 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2149 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2150 CX_TEST_ASSERT(cxListFind(list, &val) == exp);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2151 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2152
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2153 int notinlist = -1;
1162
e3bb67b72d33 remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
2154 CX_TEST_ASSERT(cxListFind(list, &notinlist) == cxListSize(list));
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2155
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2156 free(testdata);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2157 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2158
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2159 roll_out_test_combos_with_defaulted_funcs(sort, {
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2160 const size_t testdata_len = 250;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2161 int *testdata = int_test_data_added_to_list(list, isptrlist, testdata_len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2162 int *expected = malloc(testdata_len*sizeof(int));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2163 memcpy(expected, testdata, testdata_len*sizeof(int));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2164 qsort(expected, testdata_len, sizeof(int), cx_cmp_int);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2165
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2166 cxListSort(list);
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2167 for (size_t i = 0; i < testdata_len; i++) {
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2168 CX_TEST_ASSERT(*(int *) cxListAt(list, i) == expected[i]);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2169 }
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2170
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2171 free(expected);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2172 free(testdata);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2173 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2174
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2175 roll_out_test_combos(reverse, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2176 const size_t testdata_len = 50;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2177 int *testdata = int_test_data_added_to_list(list, isptrlist, testdata_len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2178 cxListReverse(list);
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2179 for (size_t i = 0; i < testdata_len; i++) {
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2180 CX_TEST_ASSERT(*(int *) cxListAt(list, i) == testdata[testdata_len - 1 - i]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2181 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2182 free(testdata);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2183 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2184
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2185 roll_out_test_combos(iterator, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2186 const size_t len = 50;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2187 int *testdata = int_test_data_added_to_list(list, isptrlist, len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2188
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2189 CxIterator iter = cxListIterator(list);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
2190 CX_TEST_ASSERT(iter.elem_size == list->collection.elem_size);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
2191 CX_TEST_ASSERT(iter.elem_count == list->collection.size);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2192 size_t i = 0;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2193 cx_foreach(int*, x, iter) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2194 CX_TEST_ASSERT(i == iter.index);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2195 CX_TEST_ASSERT(*x == testdata[iter.index]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2196 i++;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2197 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2198 CX_TEST_ASSERT(i == cxListSize(list));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2199 iter = cxListBackwardsIterator(list);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2200 cx_foreach(int*, x, iter) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2201 CX_TEST_ASSERT(i - 1 == iter.index);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2202 CX_TEST_ASSERT(*x == testdata[iter.index]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2203 i--;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2204 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2205 CX_TEST_ASSERT(i == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2206 i = len / 2;
853
d4baf4dd55c3 simplify iterator structures
Mike Becker <universe@uap-core.de>
parents: 850
diff changeset
2207 CxIterator mut_iter = cxListMutIteratorAt(list, i);
856
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
2208 CX_TEST_ASSERT(mut_iter.elem_size == list->collection.elem_size);
6bbbf219251d fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents: 855
diff changeset
2209 CX_TEST_ASSERT(mut_iter.elem_count == list->collection.size);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2210 size_t j = 0;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2211 cx_foreach(int*, x, mut_iter) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2212 CX_TEST_ASSERT(mut_iter.index == len / 2 + j / 2);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2213 CX_TEST_ASSERT(*x == testdata[i]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2214 if (i % 2 == 1) cxIteratorFlagRemoval(mut_iter);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2215 i++;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2216 j++;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2217 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2218 CX_TEST_ASSERT(i == len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2219 i = len / 2;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2220 j = 0;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2221 mut_iter = cxListMutBackwardsIteratorAt(list, i - 1);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2222 cx_foreach(int*, x, mut_iter) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2223 CX_TEST_ASSERT(mut_iter.index == len / 2 - 1 - j);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2224 CX_TEST_ASSERT(*x == testdata[i - 1]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2225 if (i % 2 == 0) cxIteratorFlagRemoval(mut_iter);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2226 i--;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2227 j++;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2228 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2229 CX_TEST_ASSERT(i == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2230 CX_TEST_ASSERT(cxListSize(list) == len / 2);
1387
9bdd053820b7 the elem_count member of an iterator was not updated after removing an element flagged by cxIteratorFlagRemoval() - fixes #728
Mike Becker <universe@uap-core.de>
parents: 1350
diff changeset
2231 CX_TEST_ASSERT(mut_iter.elem_count == len / 2);
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2232 for (size_t k = 0; k < len / 2; k++) {
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2233 CX_TEST_ASSERT(*(int *) cxListAt(list, k) == testdata[k * 2]);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2234 }
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2235
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2236 free(testdata);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2237 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2238
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2239 roll_out_test_combos(insert_with_iterator, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2240 int fivenums[] = array_init(0, 1, 2, 3, 4);
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2241 for (size_t i = 0; i < 5; i++) {
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2242 cxListAdd(list, &fivenums[i]);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2243 }
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2244 int newdata[] = array_init(10, 20, 30, 40, 50);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2245
853
d4baf4dd55c3 simplify iterator structures
Mike Becker <universe@uap-core.de>
parents: 850
diff changeset
2246 CxIterator iter = cxListMutIteratorAt(list, 2);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2247 CX_TEST_ASSERT(cxIteratorValid(iter));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2248 CX_TEST_ASSERT(iter.index == 2);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2249 CX_TEST_ASSERT(*(int *) cxIteratorCurrent(iter) == 2);
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2250 CX_TEST_ASSERT(iter.elem_count == 5);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2251 cxListInsertAfter(&iter, &newdata[0]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2252 CX_TEST_ASSERT(cxIteratorValid(iter));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2253 CX_TEST_ASSERT(iter.index == 2);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2254 CX_TEST_ASSERT(*(int *) cxIteratorCurrent(iter) == 2);
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2255 CX_TEST_ASSERT(iter.elem_count == 6);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2256 cxListInsertBefore(&iter, &newdata[1]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2257 CX_TEST_ASSERT(cxIteratorValid(iter));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2258 CX_TEST_ASSERT(iter.index == 3);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2259 CX_TEST_ASSERT(*(int *) cxIteratorCurrent(iter) == 2);
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2260 CX_TEST_ASSERT(iter.elem_count == 7);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2261
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2262 iter = cxListMutIterator(list);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2263 cxListInsertBefore(&iter, &newdata[2]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2264 CX_TEST_ASSERT(cxIteratorValid(iter));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2265 CX_TEST_ASSERT(iter.index == 1);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2266 CX_TEST_ASSERT(*(int *) cxIteratorCurrent(iter) == 0);
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2267 CX_TEST_ASSERT(iter.elem_count == 8);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2268 iter = cxListMutIteratorAt(list, cxListSize(list));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2269 cxListInsertBefore(&iter, &newdata[3]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2270 CX_TEST_ASSERT(!cxIteratorValid(iter));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2271 CX_TEST_ASSERT(iter.index == 9);
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2272 CX_TEST_ASSERT(iter.elem_count == 9);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2273 iter = cxListMutIteratorAt(list, cxListSize(list));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2274 cxListInsertAfter(&iter, &newdata[4]);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2275 CX_TEST_ASSERT(!cxIteratorValid(iter));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2276 CX_TEST_ASSERT(iter.index == 10);
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2277 CX_TEST_ASSERT(iter.elem_count == 10);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2278
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2279 int expdata[] = array_init(30, 0, 1, 20, 2, 10, 3, 4, 40, 50);
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2280 for (size_t j = 0; j < 10; j++) {
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2281 CX_TEST_ASSERT(*(int *) cxListAt(list, j) == expdata[j]);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2282 }
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2283 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2284
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2285 static CX_TEST_SUBROUTINE(test_list_verify_compare, CxList *left, CxList *right) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2286 CX_TEST_ASSERTM(cxListCompare(left, right) == 0, "lists don't start identical");
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2287 int x = 42;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2288 cxListAdd(left, &x);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2289 CX_TEST_ASSERT(cxListSize(left) > cxListSize(right));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2290 CX_TEST_ASSERT(cxListCompare(left, right) > 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2291 CX_TEST_ASSERT(cxListCompare(right, left) < 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2292 cxListAdd(right, &x);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2293 CX_TEST_ASSERT(cxListSize(left) == cxListSize(right));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2294 CX_TEST_ASSERT(cxListCompare(left, right) == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2295 int a = 5, b = 10;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2296 cxListInsert(left, 15, &a);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2297 cxListInsert(right, 15, &b);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2298 CX_TEST_ASSERT(cxListSize(left) == cxListSize(right));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2299 CX_TEST_ASSERT(cxListCompare(left, right) < 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2300 CX_TEST_ASSERT(cxListCompare(right, left) > 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2301 *(int *) cxListAt(left, 15) = 10;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2302 CX_TEST_ASSERT(cxListCompare(left, right) == 0);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2303 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2304
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2305 #define roll_out_compare_tests(suffix, otherctr) \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2306 roll_out_test_combos(compare_##suffix, { \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2307 const size_t len = 47; \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2308 int *testdata = int_test_data_added_to_list(list, isptrlist, len); \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2309 CxList *other = otherctr; \
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2310 for (size_t i = 0; i < len; i++) cxListAdd(other, &testdata[i]); \
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2311 CX_TEST_CALL_SUBROUTINE(test_list_verify_compare, list, other); \
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
2312 cxListFree(other); \
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2313 free(testdata); \
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2314 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2315
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2316 roll_out_compare_tests(
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2317 ll, cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int))
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2318 )
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2319
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2320 roll_out_compare_tests(
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2321 pll, cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS)
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2322 )
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2323
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2324 roll_out_compare_tests(
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2325 arl, cxArrayListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int), 50)
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2326 )
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2327
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2328 roll_out_compare_tests(
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2329 parl, cxArrayListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS, 50)
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2330 )
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2331
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2332 roll_out_test_combos_with_defaulted_funcs(compare_unoptimized, {
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2333 const size_t len = 33;
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2334 int *testdata = int_test_data_added_to_list(list, isptrlist, len);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2335 CxList *other = cxArrayListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int), 50);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2336 do_set_default_class_funcs(other);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2337 for (size_t i = 0; i < len; i++) cxListAdd(other, &testdata[i]);
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2338 CX_TEST_CALL_SUBROUTINE(test_list_verify_compare, list, other);
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 986
diff changeset
2339 cxListFree(other);
962
cd418898af5c remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents: 961
diff changeset
2340 free(testdata);
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2341 })
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2342
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2343 static unsigned destr_test_ctr;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2344 static int destr_last_value;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2345
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2346 static void simple_destr_test_fun(void *data) {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2347 int *ptr = data;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2348 destr_last_value = *ptr;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2349 *ptr = destr_last_value + 1;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2350 destr_test_ctr++;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2351 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2352
985
68754c7de906 major refactoring of attributes
Mike Becker <universe@uap-core.de>
parents: 962
diff changeset
2353 static void advanced_destr_test_fun(cx_attr_unused void *u, void *data) {
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2354 simple_destr_test_fun(data);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2355 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2356
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2357 static CX_TEST_SUBROUTINE(test_list_verify_destructor, CxList *list,
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 886
diff changeset
2358 const int *testdata, size_t testdata_len) {
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2359 destr_test_ctr = 0;
1316
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
2360
1111
78eeeb950883 remove API for changing the store_pointer property after list creation
Mike Becker <universe@uap-core.de>
parents: 1022
diff changeset
2361 int off = list->collection.store_pointer ? 1 : 0;
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2362
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2363 cxListRemove(list, 15);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2364 CX_TEST_ASSERT(1 == destr_test_ctr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2365 CX_TEST_ASSERT(testdata[15] == destr_last_value + off);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2366 CX_TEST_ASSERT(testdata_len - destr_test_ctr == cxListSize(list));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2367 cxListRemove(list, 47);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2368 CX_TEST_ASSERT(2 == destr_test_ctr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2369 CX_TEST_ASSERT(testdata[48] == destr_last_value + off);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2370 CX_TEST_ASSERT(testdata_len - destr_test_ctr == cxListSize(list));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2371
853
d4baf4dd55c3 simplify iterator structures
Mike Becker <universe@uap-core.de>
parents: 850
diff changeset
2372 CxIterator iter = cxListMutIteratorAt(list, 7);
1387
9bdd053820b7 the elem_count member of an iterator was not updated after removing an element flagged by cxIteratorFlagRemoval() - fixes #728
Mike Becker <universe@uap-core.de>
parents: 1350
diff changeset
2373 CX_TEST_ASSERT(iter.elem_count == testdata_len - 2);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2374 cxIteratorNext(iter);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2375 CX_TEST_ASSERT(2 == destr_test_ctr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2376 CX_TEST_ASSERT(testdata[48] == destr_last_value + off);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2377 CX_TEST_ASSERT(testdata_len - destr_test_ctr == cxListSize(list));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2378 cxIteratorFlagRemoval(iter);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2379 cxIteratorNext(iter);
1387
9bdd053820b7 the elem_count member of an iterator was not updated after removing an element flagged by cxIteratorFlagRemoval() - fixes #728
Mike Becker <universe@uap-core.de>
parents: 1350
diff changeset
2380 CX_TEST_ASSERT(iter.elem_count == testdata_len - 3);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2381 CX_TEST_ASSERT(3 == destr_test_ctr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2382 CX_TEST_ASSERT(testdata[8] == destr_last_value + off);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2383 CX_TEST_ASSERT(testdata_len - destr_test_ctr == cxListSize(list));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2384
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2385 iter = cxListMutBackwardsIteratorAt(list, 5);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2386 cxIteratorNext(iter);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2387 CX_TEST_ASSERT(3 == destr_test_ctr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2388 CX_TEST_ASSERT(testdata[8] == destr_last_value + off);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2389 CX_TEST_ASSERT(testdata_len - destr_test_ctr == cxListSize(list));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2390 cxIteratorFlagRemoval(iter);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2391 cxIteratorNext(iter);
1387
9bdd053820b7 the elem_count member of an iterator was not updated after removing an element flagged by cxIteratorFlagRemoval() - fixes #728
Mike Becker <universe@uap-core.de>
parents: 1350
diff changeset
2392 CX_TEST_ASSERT(iter.elem_count == testdata_len - 4);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2393 CX_TEST_ASSERT(4 == destr_test_ctr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2394 CX_TEST_ASSERT(testdata[4] == destr_last_value + off);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2395 CX_TEST_ASSERT(testdata_len - destr_test_ctr == cxListSize(list));
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2396
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2397 cxListClear(list);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2398 CX_TEST_ASSERT(testdata_len == destr_test_ctr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2399 CX_TEST_ASSERT(testdata[testdata_len - 1] == destr_last_value + off);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2400 }
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2401
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2402 roll_out_test_combos(simple_destr, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2403 const size_t len = 60;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2404 int *testdata = int_test_data_added_to_list(list, isptrlist, len);
857
4d12e34bb130 add missing convenience functions
Mike Becker <universe@uap-core.de>
parents: 856
diff changeset
2405 cxDefineDestructor(list, simple_destr_test_fun);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2406 CX_TEST_CALL_SUBROUTINE(test_list_verify_destructor, list, testdata, len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2407 free(testdata);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2408 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2409
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2410 roll_out_test_combos(advanced_destr, {
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2411 const size_t len = 75;
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2412 int *testdata = int_test_data_added_to_list(list, isptrlist, len);
857
4d12e34bb130 add missing convenience functions
Mike Becker <universe@uap-core.de>
parents: 856
diff changeset
2413 cxDefineAdvancedDestructor(list, advanced_destr_test_fun, NULL);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2414 CX_TEST_CALL_SUBROUTINE(test_list_verify_destructor, list, testdata, len);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2415 free(testdata);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2416 })
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2417
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2418 CxTestSuite *cx_test_suite_array_list(void) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2419 CxTestSuite *suite = cx_test_suite_new("array_list");
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2420
818
2be8fe3d5a2d add cx_array_add() + fix type of cx_array_default_reallocator
Mike Becker <universe@uap-core.de>
parents: 807
diff changeset
2421 cx_test_register(suite, test_array_add);
998
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
2422 cx_test_register(suite, test_array_add8);
bb196054f3fd make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
2423 cx_test_register(suite, test_array_copy_unsupported_width);
999
84fc42b04d3b add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents: 998
diff changeset
2424 cx_test_register(suite, test_array_reserve);
883
3012e9b4214e add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents: 876
diff changeset
2425 cx_test_register(suite, test_array_insert_sorted);
1419
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
2426 cx_test_register(suite, test_array_insert_unique);
884
d375d8056262 add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents: 883
diff changeset
2427 cx_test_register(suite, test_array_binary_search);
818
2be8fe3d5a2d add cx_array_add() + fix type of cx_array_default_reallocator
Mike Becker <universe@uap-core.de>
parents: 807
diff changeset
2428
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2429 cx_test_register(suite, test_list_arl_create);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2430 cx_test_register(suite, test_list_arl_create_simple);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2431 cx_test_register(suite, test_list_arl_create_simple_for_pointers);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2432 cx_test_register(suite, test_list_parl_destroy_no_destr);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2433 cx_test_register(suite, test_list_parl_destroy_simple_destr);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2434 cx_test_register(suite, test_list_parl_destroy_adv_destr);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2435
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2436 cx_test_register(suite, test_list_arl_add);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2437 cx_test_register(suite, test_list_parl_add);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2438 cx_test_register(suite, test_list_arl_insert);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2439 cx_test_register(suite, test_list_parl_insert);
1316
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
2440 cx_test_register(suite, test_list_arl_emplace);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
2441 cx_test_register(suite, test_list_parl_emplace);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2442 cx_test_register(suite, test_list_arl_insert_array);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2443 cx_test_register(suite, test_list_parl_insert_array);
876
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
2444 cx_test_register(suite, test_list_arl_insert_sorted);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
2445 cx_test_register(suite, test_list_parl_insert_sorted);
1419
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
2446 cx_test_register(suite, test_list_arl_insert_unique);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
2447 cx_test_register(suite, test_list_parl_insert_unique);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2448 cx_test_register(suite, test_list_arl_remove);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2449 cx_test_register(suite, test_list_parl_remove);
1315
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
2450 cx_test_register(suite, test_list_arl_remove_and_get);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
2451 cx_test_register(suite, test_list_parl_remove_and_get);
961
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
2452 cx_test_register(suite, test_list_arl_remove_array);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
2453 cx_test_register(suite, test_list_parl_remove_array);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2454 cx_test_register(suite, test_list_arl_find_remove);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2455 cx_test_register(suite, test_list_parl_find_remove);
1163
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
2456 cx_test_register(suite, test_list_arl_find_remove_sorted);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
2457 cx_test_register(suite, test_list_parl_find_remove_sorted);
1294
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2458 cx_test_register(suite, test_list_arl_contains);
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2459 cx_test_register(suite, test_list_parl_contains);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2460 cx_test_register(suite, test_list_arl_clear);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2461 cx_test_register(suite, test_list_parl_clear);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2462 cx_test_register(suite, test_list_arl_at);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2463 cx_test_register(suite, test_list_parl_at);
1287
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2464 cx_test_register(suite, test_list_arl_set);
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2465 cx_test_register(suite, test_list_parl_set);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2466 cx_test_register(suite, test_list_arl_swap);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2467 cx_test_register(suite, test_list_parl_swap);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2468 cx_test_register(suite, test_list_arl_swap_no_sbo);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2469 cx_test_register(suite, test_list_arl_find);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2470 cx_test_register(suite, test_list_parl_find);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2471 cx_test_register(suite, test_list_arl_sort);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2472 cx_test_register(suite, test_list_parl_sort);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2473 cx_test_register(suite, test_list_arl_reverse);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2474 cx_test_register(suite, test_list_parl_reverse);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2475 cx_test_register(suite, test_list_arl_iterator);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2476 cx_test_register(suite, test_list_parl_iterator);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2477 cx_test_register(suite, test_list_arl_insert_with_iterator);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2478 cx_test_register(suite, test_list_parl_insert_with_iterator);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2479 cx_test_register(suite, test_list_arl_compare_ll);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2480 cx_test_register(suite, test_list_arl_compare_arl);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2481 cx_test_register(suite, test_list_arl_compare_pll);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2482 cx_test_register(suite, test_list_arl_compare_parl);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2483 cx_test_register(suite, test_list_parl_compare_ll);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2484 cx_test_register(suite, test_list_parl_compare_arl);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2485 cx_test_register(suite, test_list_parl_compare_pll);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2486 cx_test_register(suite, test_list_parl_compare_parl);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2487 cx_test_register(suite, test_list_arl_simple_destr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2488 cx_test_register(suite, test_list_parl_simple_destr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2489 cx_test_register(suite, test_list_arl_advanced_destr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2490 cx_test_register(suite, test_list_parl_advanced_destr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2491
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2492 return suite;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2493 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2494
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2495 CxTestSuite *cx_test_suite_array_list_defaulted_funcs(void) {
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2496 CxTestSuite *suite = cx_test_suite_new(
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2497 "array_list with defaulted functions");
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2498
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2499 cx_test_register(suite, test_list_arlm_insert_array);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2500 cx_test_register(suite, test_list_parlm_insert_array);
876
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
2501 cx_test_register(suite, test_list_arlm_insert_sorted);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
2502 cx_test_register(suite, test_list_parlm_insert_sorted);
1419
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
2503 cx_test_register(suite, test_list_arlm_insert_unique);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
2504 cx_test_register(suite, test_list_parlm_insert_unique);
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2505 cx_test_register(suite, test_list_arlm_swap);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2506 cx_test_register(suite, test_list_parlm_swap);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2507 cx_test_register(suite, test_list_arlm_sort);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2508 cx_test_register(suite, test_list_parlm_sort);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2509
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2510 cx_test_register(suite, test_list_arl_compare_unoptimized);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2511 cx_test_register(suite, test_list_parl_compare_unoptimized);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2512 cx_test_register(suite, test_list_arlm_compare_unoptimized);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2513 cx_test_register(suite, test_list_parlm_compare_unoptimized);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2514
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2515 return suite;
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2516 }
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2517
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2518 CxTestSuite *cx_test_suite_linked_list(void) {
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2519 CxTestSuite *suite = cx_test_suite_new("linked_list");
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2520
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2521 cx_test_register(suite, test_linked_list_link_unlink);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2522 cx_test_register(suite, test_linked_list_at);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2523 cx_test_register(suite, test_linked_list_find);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2524 cx_test_register(suite, test_linked_list_compare);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2525 cx_test_register(suite, test_linked_list_add);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2526 cx_test_register(suite, test_linked_list_prepend);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2527 cx_test_register(suite, test_linked_list_insert);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2528 cx_test_register(suite, test_linked_list_insert_chain);
961
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
2529 cx_test_register(suite, test_linked_list_insert_sorted);
1419
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
2530 cx_test_register(suite, test_linked_list_insert_unique);
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2531 cx_test_register(suite, test_linked_list_first);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2532 cx_test_register(suite, test_linked_list_last);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2533 cx_test_register(suite, test_linked_list_prev);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2534 cx_test_register(suite, test_linked_list_remove);
961
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
2535 cx_test_register(suite, test_linked_list_remove_chain);
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2536 cx_test_register(suite, test_linked_list_size);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2537 cx_test_register(suite, test_linked_list_sort_empty);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2538 cx_test_register(suite, test_linked_list_sort);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2539 cx_test_register(suite, test_linked_list_reverse);
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2540
801
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2541 cx_test_register(suite, test_list_ll_create);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2542 cx_test_register(suite, test_list_ll_create_simple);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2543 cx_test_register(suite, test_list_ll_create_simple_for_pointers);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2544 cx_test_register(suite, test_list_pll_destroy_no_destr);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2545 cx_test_register(suite, test_list_pll_destroy_simple_destr);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2546 cx_test_register(suite, test_list_pll_destroy_adv_destr);
04aa3913c0e3 migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 800
diff changeset
2547
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2548 cx_test_register(suite, test_list_ll_add);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2549 cx_test_register(suite, test_list_pll_add);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2550 cx_test_register(suite, test_list_ll_insert);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2551 cx_test_register(suite, test_list_pll_insert);
1316
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
2552 cx_test_register(suite, test_list_ll_emplace);
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
2553 cx_test_register(suite, test_list_pll_emplace);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2554 cx_test_register(suite, test_list_ll_insert_array);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2555 cx_test_register(suite, test_list_pll_insert_array);
876
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
2556 cx_test_register(suite, test_list_ll_insert_sorted);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
2557 cx_test_register(suite, test_list_pll_insert_sorted);
1419
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
2558 cx_test_register(suite, test_list_ll_insert_unique);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
2559 cx_test_register(suite, test_list_pll_insert_unique);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2560 cx_test_register(suite, test_list_ll_remove);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2561 cx_test_register(suite, test_list_pll_remove);
1315
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
2562 cx_test_register(suite, test_list_ll_remove_and_get);
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
2563 cx_test_register(suite, test_list_pll_remove_and_get);
961
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
2564 cx_test_register(suite, test_list_ll_remove_array);
bc8b7c5f55fb increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents: 912
diff changeset
2565 cx_test_register(suite, test_list_pll_remove_array);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2566 cx_test_register(suite, test_list_ll_find_remove);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2567 cx_test_register(suite, test_list_pll_find_remove);
1163
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
2568 cx_test_register(suite, test_list_ll_find_remove_sorted);
68ff0839bc6a optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents: 1162
diff changeset
2569 cx_test_register(suite, test_list_pll_find_remove_sorted);
1294
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2570 cx_test_register(suite, test_list_ll_contains);
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1287
diff changeset
2571 cx_test_register(suite, test_list_pll_contains);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2572 cx_test_register(suite, test_list_ll_clear);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2573 cx_test_register(suite, test_list_pll_clear);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2574 cx_test_register(suite, test_list_ll_at);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2575 cx_test_register(suite, test_list_pll_at);
1287
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2576 cx_test_register(suite, test_list_ll_set);
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1225
diff changeset
2577 cx_test_register(suite, test_list_pll_set);
803
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2578 cx_test_register(suite, test_list_ll_swap);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2579 cx_test_register(suite, test_list_pll_swap);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2580 cx_test_register(suite, test_list_ll_find);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2581 cx_test_register(suite, test_list_pll_find);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2582 cx_test_register(suite, test_list_ll_sort);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2583 cx_test_register(suite, test_list_pll_sort);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2584 cx_test_register(suite, test_list_ll_reverse);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2585 cx_test_register(suite, test_list_pll_reverse);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2586 cx_test_register(suite, test_list_ll_iterator);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2587 cx_test_register(suite, test_list_pll_iterator);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2588 cx_test_register(suite, test_list_ll_insert_with_iterator);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2589 cx_test_register(suite, test_list_pll_insert_with_iterator);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2590 cx_test_register(suite, test_list_ll_compare_ll);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2591 cx_test_register(suite, test_list_ll_compare_arl);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2592 cx_test_register(suite, test_list_ll_compare_pll);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2593 cx_test_register(suite, test_list_ll_compare_parl);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2594 cx_test_register(suite, test_list_pll_compare_ll);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2595 cx_test_register(suite, test_list_pll_compare_arl);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2596 cx_test_register(suite, test_list_pll_compare_pll);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2597 cx_test_register(suite, test_list_pll_compare_parl);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2598 cx_test_register(suite, test_list_ll_simple_destr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2599 cx_test_register(suite, test_list_pll_simple_destr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2600 cx_test_register(suite, test_list_ll_advanced_destr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2601 cx_test_register(suite, test_list_pll_advanced_destr);
0711d869ce4d complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents: 801
diff changeset
2602
798
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2603 return suite;
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2604 }
7644da6e2d35 migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2605
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2606 CxTestSuite *cx_test_suite_linked_list_defaulted_funcs(void) {
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2607 CxTestSuite *suite = cx_test_suite_new(
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2608 "linked_list with defaulted functions");
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2609
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2610 cx_test_register(suite, test_list_llm_insert_array);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2611 cx_test_register(suite, test_list_pllm_insert_array);
876
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
2612 cx_test_register(suite, test_list_llm_insert_sorted);
f4ce7df9cff0 add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents: 875
diff changeset
2613 cx_test_register(suite, test_list_pllm_insert_sorted);
1419
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
2614 cx_test_register(suite, test_list_llm_insert_unique);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
2615 cx_test_register(suite, test_list_pllm_insert_unique);
875
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2616 cx_test_register(suite, test_list_llm_swap);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2617 cx_test_register(suite, test_list_pllm_swap);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2618 cx_test_register(suite, test_list_llm_sort);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2619 cx_test_register(suite, test_list_pllm_sort);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2620
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2621 cx_test_register(suite, test_list_ll_compare_unoptimized);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2622 cx_test_register(suite, test_list_pll_compare_unoptimized);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2623 cx_test_register(suite, test_list_llm_compare_unoptimized);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2624 cx_test_register(suite, test_list_pllm_compare_unoptimized);
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2625
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2626 return suite;
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2627 }
ee84ac776cbc add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents: 857
diff changeset
2628
1350
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2629 CxTestSuite *cx_test_suite_kv_list(void) {
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2630 CxTestSuite *suite = cx_test_suite_new("kv_list");
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2631
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2632 cx_test_register(suite, test_list_kvl_add);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2633 cx_test_register(suite, test_list_pkvl_add);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2634 cx_test_register(suite, test_list_kvl_insert);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2635 cx_test_register(suite, test_list_pkvl_insert);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2636 cx_test_register(suite, test_list_kvl_emplace);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2637 cx_test_register(suite, test_list_pkvl_emplace);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2638 cx_test_register(suite, test_list_kvl_insert_array);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2639 cx_test_register(suite, test_list_pkvl_insert_array);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2640 cx_test_register(suite, test_list_kvl_insert_sorted);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2641 cx_test_register(suite, test_list_pkvl_insert_sorted);
1419
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
2642 cx_test_register(suite, test_list_kvl_insert_unique);
e46406fd1b3c add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents: 1388
diff changeset
2643 cx_test_register(suite, test_list_pkvl_insert_unique);
1350
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2644 cx_test_register(suite, test_list_kvl_remove);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2645 cx_test_register(suite, test_list_pkvl_remove);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2646 cx_test_register(suite, test_list_kvl_remove_and_get);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2647 cx_test_register(suite, test_list_pkvl_remove_and_get);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2648 cx_test_register(suite, test_list_kvl_remove_array);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2649 cx_test_register(suite, test_list_pkvl_remove_array);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2650 cx_test_register(suite, test_list_kvl_find_remove);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2651 cx_test_register(suite, test_list_pkvl_find_remove);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2652 cx_test_register(suite, test_list_kvl_find_remove_sorted);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2653 cx_test_register(suite, test_list_pkvl_find_remove_sorted);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2654 cx_test_register(suite, test_list_kvl_contains);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2655 cx_test_register(suite, test_list_pkvl_contains);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2656 cx_test_register(suite, test_list_kvl_clear);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2657 cx_test_register(suite, test_list_pkvl_clear);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2658 cx_test_register(suite, test_list_kvl_at);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2659 cx_test_register(suite, test_list_pkvl_at);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2660 cx_test_register(suite, test_list_kvl_set);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2661 cx_test_register(suite, test_list_pkvl_set);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2662 cx_test_register(suite, test_list_kvl_swap);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2663 cx_test_register(suite, test_list_pkvl_swap);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2664 cx_test_register(suite, test_list_kvl_find);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2665 cx_test_register(suite, test_list_pkvl_find);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2666 cx_test_register(suite, test_list_kvl_sort);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2667 cx_test_register(suite, test_list_pkvl_sort);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2668 cx_test_register(suite, test_list_kvl_reverse);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2669 cx_test_register(suite, test_list_pkvl_reverse);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2670 cx_test_register(suite, test_list_kvl_iterator);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2671 cx_test_register(suite, test_list_pkvl_iterator);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2672 cx_test_register(suite, test_list_kvl_insert_with_iterator);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2673 cx_test_register(suite, test_list_pkvl_insert_with_iterator);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2674 cx_test_register(suite, test_list_kvl_compare_ll);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2675 cx_test_register(suite, test_list_kvl_compare_arl);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2676 cx_test_register(suite, test_list_kvl_compare_pll);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2677 cx_test_register(suite, test_list_kvl_compare_parl);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2678 cx_test_register(suite, test_list_pkvl_compare_ll);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2679 cx_test_register(suite, test_list_pkvl_compare_arl);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2680 cx_test_register(suite, test_list_pkvl_compare_pll);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2681 cx_test_register(suite, test_list_pkvl_compare_parl);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2682 cx_test_register(suite, test_list_kvl_simple_destr);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2683 cx_test_register(suite, test_list_pkvl_simple_destr);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2684 cx_test_register(suite, test_list_kvl_advanced_destr);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2685 cx_test_register(suite, test_list_pkvl_advanced_destr);
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2686
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2687 return suite;
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2688 }
189756516eaa implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents: 1321
diff changeset
2689
800
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2690 CxTestSuite *cx_test_suite_empty_list(void) {
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2691 CxTestSuite *suite = cx_test_suite_new("empty list dummy");
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2692
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2693 cx_test_register(suite, test_empty_list_size);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2694 cx_test_register(suite, test_empty_list_iterator);
1388
edc34e904fe3 add tests for creating iterators with NULL lists or maps
Mike Becker <universe@uap-core.de>
parents: 1387
diff changeset
2695 cx_test_register(suite, test_null_list_iterator);
800
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2696 cx_test_register(suite, test_empty_list_noops);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2697 cx_test_register(suite, test_empty_list_at);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2698 cx_test_register(suite, test_empty_list_find);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2699 cx_test_register(suite, test_empty_list_compare);
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2700
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2701 return suite;
1274e46b3013 migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents: 799
diff changeset
2702 }

mercurial