Sun, 23 Nov 2025 13:15:19 +0100
optimize sorted insertion by using the infimum instead of the supremum
The reason is that the supremum returns the equal element with the smallest index, and we want the largest.
Therefore, we use the infimum, which already gives us the largest index when there are equal elements, and increase the index by one. The infimum is also guaranteed to exist in that case.
|
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 | |
|
1495
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
122 | CX_TEST(test_array_add16) { |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
123 | CX_ARRAY_DECLARE_SIZED(char, arr, uint16_t); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
124 | cx_array_initialize(arr, 300); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
125 | arr_size = 270; |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
126 | int result; |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
127 | CX_TEST_DO { |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
128 | char elem = 'A'; |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
129 | result = cx_array_simple_add(arr, elem); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
130 | CX_TEST_ASSERT(result == 0); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
131 | CX_TEST_ASSERT(arr[270] == 'A'); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
132 | CX_TEST_ASSERT(arr_size == 271); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
133 | CX_TEST_ASSERT(arr_capacity == 300); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
134 | |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
135 | char *hello = "Hello"; |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
136 | result = cx_array_simple_copy(arr, 9000, hello, 5); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
137 | CX_TEST_ASSERT(result == 0); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
138 | CX_TEST_ASSERT(arr[9000] == 'H'); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
139 | CX_TEST_ASSERT(arr[9001] == 'e'); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
140 | CX_TEST_ASSERT(arr[9002] == 'l'); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
141 | CX_TEST_ASSERT(arr[9003] == 'l'); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
142 | CX_TEST_ASSERT(arr[9004] == 'o'); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
143 | CX_TEST_ASSERT(arr_size == 9005); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
144 | CX_TEST_ASSERT(arr_capacity == 9*1024); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
145 | |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
146 | // does not fit into 16-bit sized array |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
147 | result = cx_array_simple_copy(arr, 65532, hello, 5); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
148 | CX_TEST_ASSERT(result != 0); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
149 | CX_TEST_ASSERT(errno == EOVERFLOW); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
150 | CX_TEST_ASSERT(arr_size == 9005); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
151 | CX_TEST_ASSERT(arr_capacity == 9*1024); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
152 | } |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
153 | cxFreeDefault(arr); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
154 | } |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
155 | |
|
998
bb196054f3fd
make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents:
993
diff
changeset
|
156 | 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
|
157 | 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
|
158 | 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
|
159 | 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
|
160 | 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
|
161 | 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
|
162 | 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
|
163 | (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
|
164 | &(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
|
165 | &(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
|
166 | 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
|
167 | 5, |
|
bb196054f3fd
make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents:
993
diff
changeset
|
168 | &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
|
169 | 1, |
|
bb196054f3fd
make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents:
993
diff
changeset
|
170 | 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
|
171 | ); |
|
bb196054f3fd
make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents:
993
diff
changeset
|
172 | 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
|
173 | 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
|
174 | 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
|
175 | 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
|
176 | } |
|
1319
aa1f580f8f59
add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents:
1318
diff
changeset
|
177 | 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
|
178 | } |
|
bb196054f3fd
make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents:
993
diff
changeset
|
179 | |
|
1495
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
180 | CX_TEST(test_array_copy_overlap) { |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
181 | CX_ARRAY_DECLARE_SIZED(char, arr, uint8_t); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
182 | cx_array_initialize(arr, 16); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
183 | strcpy(arr, "Hello, World!"); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
184 | CX_TEST_DO { |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
185 | errno = 0; |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
186 | int result = cx_array_simple_copy(arr, 7, arr, 14); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
187 | CX_TEST_ASSERT(result == 0); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
188 | CX_TEST_ASSERT(errno == 0); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
189 | CX_TEST_ASSERT(arr_size == 21); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
190 | CX_TEST_ASSERT(arr_capacity == 32); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
191 | CX_TEST_ASSERT(0 == memcmp(arr, "Hello, Hello, World!\0", 21)); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
192 | } |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
193 | cxFreeDefault(arr); |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
194 | } |
|
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
195 | |
|
999
84fc42b04d3b
add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents:
998
diff
changeset
|
196 | CX_TEST(test_array_reserve) { |
|
1494
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
197 | { |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
198 | // default size |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
199 | CX_ARRAY_DECLARE(int, arr); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
200 | cx_array_initialize(arr, 16); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
201 | int result; |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
202 | CX_TEST_DO { |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
203 | result = cx_array_reserve( |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
204 | (void **) &(arr), |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
205 | &(arr_size), |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
206 | &(arr_capacity), |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
207 | 0, // default width |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
208 | sizeof(int), |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
209 | 30, |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
210 | cx_array_default_reallocator |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
211 | ); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
212 | CX_TEST_ASSERT(result == 0); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
213 | CX_TEST_ASSERT(arr_size == 0); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
214 | CX_TEST_ASSERT(arr_capacity == 30); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
215 | } |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
216 | cxFreeDefault(arr); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
217 | } |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
218 | { |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
219 | // 16-bit size |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
220 | CX_ARRAY_DECLARE_SIZED(char, arr, uint16_t); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
221 | cx_array_initialize(arr, 16); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
222 | arr_size = 5; |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
223 | int result; |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
224 | CX_TEST_DO { |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
225 | errno = 0; |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
226 | result = cx_array_simple_reserve(arr, 3); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
227 | CX_TEST_ASSERT(result == 0); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
228 | CX_TEST_ASSERT(errno == 0); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
229 | CX_TEST_ASSERT(arr_size == 5); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
230 | CX_TEST_ASSERT(arr_capacity == 16); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
231 | |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
232 | result = cx_array_simple_reserve(arr, 20); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
233 | CX_TEST_ASSERT(result == 0); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
234 | CX_TEST_ASSERT(errno == 0); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
235 | CX_TEST_ASSERT(arr_size == 5); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
236 | CX_TEST_ASSERT(arr_capacity == 25); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
237 | |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
238 | result = cx_array_simple_reserve(arr, 2000); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
239 | CX_TEST_ASSERT(result == 0); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
240 | CX_TEST_ASSERT(errno == 0); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
241 | CX_TEST_ASSERT(arr_size == 5); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
242 | CX_TEST_ASSERT(arr_capacity == 2005); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
243 | |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
244 | // this does not fit into an array with a 16-bit size |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
245 | result = cx_array_simple_reserve(arr, 70000); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
246 | CX_TEST_ASSERT(result == 1); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
247 | CX_TEST_ASSERT(errno == EOVERFLOW); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
248 | CX_TEST_ASSERT(arr_size == 5); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
249 | CX_TEST_ASSERT(arr_capacity == 2005); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
250 | } |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
251 | cxFreeDefault(arr); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
252 | } |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
253 | { |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
254 | // 8-bit size |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
255 | CX_ARRAY_DECLARE_SIZED(char, arr, uint8_t); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
256 | cx_array_initialize(arr, 16); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
257 | arr_size = 5; |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
258 | int result; |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
259 | CX_TEST_DO { |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
260 | errno = 0; |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
261 | result = cx_array_simple_reserve(arr, 3); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
262 | CX_TEST_ASSERT(result == 0); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
263 | CX_TEST_ASSERT(errno == 0); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
264 | CX_TEST_ASSERT(arr_size == 5); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
265 | CX_TEST_ASSERT(arr_capacity == 16); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
266 | |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
267 | result = cx_array_simple_reserve(arr, 20); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
268 | CX_TEST_ASSERT(result == 0); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
269 | CX_TEST_ASSERT(errno == 0); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
270 | CX_TEST_ASSERT(arr_size == 5); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
271 | CX_TEST_ASSERT(arr_capacity == 25); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
272 | |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
273 | // this does not fit into an array with an 8-bit size |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
274 | arr_size = 10; |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
275 | result = cx_array_simple_reserve(arr, 250); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
276 | CX_TEST_ASSERT(result == 1); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
277 | CX_TEST_ASSERT(errno == EOVERFLOW); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
278 | CX_TEST_ASSERT(arr_size == 10); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
279 | CX_TEST_ASSERT(arr_capacity == 25); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
280 | } |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
281 | cxFreeDefault(arr); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
282 | } |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
283 | } |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
284 | |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
285 | CX_TEST(test_array_reserve_unsupported_width) { |
|
999
84fc42b04d3b
add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents:
998
diff
changeset
|
286 | 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
|
287 | 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
|
288 | int result; |
|
84fc42b04d3b
add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents:
998
diff
changeset
|
289 | CX_TEST_DO { |
|
1494
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
290 | result = cx_array_reserve( |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
291 | (void **) &(arr), |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
292 | &(arr_size), |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
293 | &(arr_capacity), |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
294 | 12, // unsupported width |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
295 | sizeof(int), |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
296 | 30, |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
297 | cx_array_default_reallocator |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
298 | ); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
299 | CX_TEST_ASSERT(result != 0); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
300 | CX_TEST_ASSERT(errno == EINVAL); |
|
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
301 | CX_TEST_ASSERT(arr_size == 0); |
|
999
84fc42b04d3b
add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents:
998
diff
changeset
|
302 | 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
|
303 | } |
|
1319
aa1f580f8f59
add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents:
1318
diff
changeset
|
304 | cxFreeDefault(arr); |
|
999
84fc42b04d3b
add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents:
998
diff
changeset
|
305 | } |
|
84fc42b04d3b
add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents:
998
diff
changeset
|
306 | |
|
883
3012e9b4214e
add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents:
876
diff
changeset
|
307 | 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
|
308 | int d1 = 50; |
|
3012e9b4214e
add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents:
876
diff
changeset
|
309 | int d2 = 80; |
|
3012e9b4214e
add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents:
876
diff
changeset
|
310 | int d3 = 60; |
|
3012e9b4214e
add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents:
876
diff
changeset
|
311 | int d4 = 40; |
|
3012e9b4214e
add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents:
876
diff
changeset
|
312 | int d5 = 70; |
|
3012e9b4214e
add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents:
876
diff
changeset
|
313 | 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
|
314 | 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
|
315 | 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
|
316 | 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
|
317 | int d10a[3] = {67, 75, 90}; |
|
1508
dfc0ddd9571e
optimize sorted insertion by using the infimum instead of the supremum
Mike Becker <universe@uap-core.de>
parents:
1507
diff
changeset
|
318 | int d11a[6] = {58, 59, 71, 71, 72, 75}; |
|
dfc0ddd9571e
optimize sorted insertion by using the infimum instead of the supremum
Mike Becker <universe@uap-core.de>
parents:
1507
diff
changeset
|
319 | int d12a[3] = {10, 120, 130}; |
|
dfc0ddd9571e
optimize sorted insertion by using the infimum instead of the supremum
Mike Becker <universe@uap-core.de>
parents:
1507
diff
changeset
|
320 | int expected[31] = { |
|
dfc0ddd9571e
optimize sorted insertion by using the infimum instead of the supremum
Mike Becker <universe@uap-core.de>
parents:
1507
diff
changeset
|
321 | 10, 40, 50, 51, 52, 54, 56, 56, 57, 58, 58, 59, 60, 62, 64, 65, 67, |
|
dfc0ddd9571e
optimize sorted insertion by using the infimum instead of the supremum
Mike Becker <universe@uap-core.de>
parents:
1507
diff
changeset
|
322 | 70, 71, 71, 72, 75, 75, 75, 77, 78, 80, 90, 90, 120, 130 |
|
883
3012e9b4214e
add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents:
876
diff
changeset
|
323 | }; |
|
3012e9b4214e
add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents:
876
diff
changeset
|
324 | |
|
3012e9b4214e
add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents:
876
diff
changeset
|
325 | 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
|
326 | 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
|
327 | |
|
3012e9b4214e
add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents:
876
diff
changeset
|
328 | CX_TEST_DO { |
|
3012e9b4214e
add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents:
876
diff
changeset
|
329 | 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
|
330 | 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
|
331 | 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
|
332 | 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
|
333 | 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
|
334 | 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
|
335 | 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
|
336 | 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
|
337 | 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
|
338 | 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
|
339 | 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
|
340 | 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
|
341 | 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
|
342 | 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
|
343 | 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
|
344 | 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
|
345 | 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
|
346 | 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
|
347 | 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
|
348 | 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
|
349 | 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
|
350 | 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
|
351 | 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
|
352 | 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
|
353 | 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
|
354 | 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
|
355 | 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
|
356 | 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
|
357 | 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
|
358 | CX_TEST_ASSERT(array_capacity >= 22); |
|
1508
dfc0ddd9571e
optimize sorted insertion by using the infimum instead of the supremum
Mike Becker <universe@uap-core.de>
parents:
1507
diff
changeset
|
359 | CX_TEST_ASSERT(0 == cx_array_simple_insert_sorted(array, d11a, 6, cx_cmp_int)); |
|
dfc0ddd9571e
optimize sorted insertion by using the infimum instead of the supremum
Mike Becker <universe@uap-core.de>
parents:
1507
diff
changeset
|
360 | CX_TEST_ASSERT(array_size == 28); |
|
dfc0ddd9571e
optimize sorted insertion by using the infimum instead of the supremum
Mike Becker <universe@uap-core.de>
parents:
1507
diff
changeset
|
361 | CX_TEST_ASSERT(array_capacity >= 28); |
|
dfc0ddd9571e
optimize sorted insertion by using the infimum instead of the supremum
Mike Becker <universe@uap-core.de>
parents:
1507
diff
changeset
|
362 | CX_TEST_ASSERT(0 == cx_array_simple_insert_sorted(array, d12a, 3, cx_cmp_int)); |
|
dfc0ddd9571e
optimize sorted insertion by using the infimum instead of the supremum
Mike Becker <universe@uap-core.de>
parents:
1507
diff
changeset
|
363 | CX_TEST_ASSERT(array_size == 31); |
|
dfc0ddd9571e
optimize sorted insertion by using the infimum instead of the supremum
Mike Becker <universe@uap-core.de>
parents:
1507
diff
changeset
|
364 | CX_TEST_ASSERT(array_capacity >= 31); |
|
dfc0ddd9571e
optimize sorted insertion by using the infimum instead of the supremum
Mike Becker <universe@uap-core.de>
parents:
1507
diff
changeset
|
365 | |
|
dfc0ddd9571e
optimize sorted insertion by using the infimum instead of the supremum
Mike Becker <universe@uap-core.de>
parents:
1507
diff
changeset
|
366 | CX_TEST_ASSERT(0 == memcmp(array, expected, 31 * sizeof(int))); |
|
1419
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
367 | } |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
368 | 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
|
369 | } |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
370 | |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
371 | 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
|
372 | 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
|
373 | 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
|
374 | 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
|
375 | 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
|
376 | 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
|
377 | 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
|
378 | 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
|
379 | 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
|
380 | 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
|
381 | int d10a[3] = {67, 75, 90}; |
|
1508
dfc0ddd9571e
optimize sorted insertion by using the infimum instead of the supremum
Mike Becker <universe@uap-core.de>
parents:
1507
diff
changeset
|
382 | int d11a[8] = {90, 90, 90, 95, 95, 100, 110, 110}; |
|
dfc0ddd9571e
optimize sorted insertion by using the infimum instead of the supremum
Mike Becker <universe@uap-core.de>
parents:
1507
diff
changeset
|
383 | int expected[22] = { |
|
dfc0ddd9571e
optimize sorted insertion by using the infimum instead of the supremum
Mike Becker <universe@uap-core.de>
parents:
1507
diff
changeset
|
384 | 40, 50, 51, 52, 54, 56, 57, 58, 60, 62, 64, |
|
dfc0ddd9571e
optimize sorted insertion by using the infimum instead of the supremum
Mike Becker <universe@uap-core.de>
parents:
1507
diff
changeset
|
385 | 65, 67, 70, 75, 77, 78, 80, 90, 95, 100, 110 |
|
1419
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
386 | }; |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
387 | |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
388 | 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
|
389 | 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
|
390 | |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
391 | 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
|
392 | 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
|
393 | 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
|
394 | 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
|
395 | 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
|
396 | 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
|
397 | 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
|
398 | 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
|
399 | 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
|
400 | 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
|
401 | 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
|
402 | 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
|
403 | 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
|
404 | 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
|
405 | 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
|
406 | 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
|
407 | 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
|
408 | 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
|
409 | 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
|
410 | 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
|
411 | 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
|
412 | 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
|
413 | 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
|
414 | 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
|
415 | 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
|
416 | 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
|
417 | 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
|
418 | 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
|
419 | 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
|
420 | 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
|
421 | CX_TEST_ASSERT(array_capacity >= 19); |
|
1508
dfc0ddd9571e
optimize sorted insertion by using the infimum instead of the supremum
Mike Becker <universe@uap-core.de>
parents:
1507
diff
changeset
|
422 | CX_TEST_ASSERT(0 == cx_array_simple_insert_unique(array, d11a, 8, cx_cmp_int)); |
|
dfc0ddd9571e
optimize sorted insertion by using the infimum instead of the supremum
Mike Becker <universe@uap-core.de>
parents:
1507
diff
changeset
|
423 | CX_TEST_ASSERT(array_size == 22); |
|
dfc0ddd9571e
optimize sorted insertion by using the infimum instead of the supremum
Mike Becker <universe@uap-core.de>
parents:
1507
diff
changeset
|
424 | CX_TEST_ASSERT(array_capacity >= 22); |
|
dfc0ddd9571e
optimize sorted insertion by using the infimum instead of the supremum
Mike Becker <universe@uap-core.de>
parents:
1507
diff
changeset
|
425 | |
|
dfc0ddd9571e
optimize sorted insertion by using the infimum instead of the supremum
Mike Becker <universe@uap-core.de>
parents:
1507
diff
changeset
|
426 | CX_TEST_ASSERT(0 == memcmp(array, expected, 22 * sizeof(int))); |
|
883
3012e9b4214e
add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents:
876
diff
changeset
|
427 | } |
|
1319
aa1f580f8f59
add convenience macros for using the default allocator - relates to #669
Mike Becker <universe@uap-core.de>
parents:
1318
diff
changeset
|
428 | cxFreeDefault(array); |
|
883
3012e9b4214e
add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents:
876
diff
changeset
|
429 | } |
|
3012e9b4214e
add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents:
876
diff
changeset
|
430 | |
|
884
d375d8056262
add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents:
883
diff
changeset
|
431 | CX_TEST(test_array_binary_search) { |
|
d375d8056262
add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents:
883
diff
changeset
|
432 | int array[18] = { |
|
d375d8056262
add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents:
883
diff
changeset
|
433 | 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
|
434 | 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
|
435 | }; |
|
d375d8056262
add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents:
883
diff
changeset
|
436 | |
|
d375d8056262
add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents:
883
diff
changeset
|
437 | CX_TEST_DO { |
|
962
cd418898af5c
remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents:
961
diff
changeset
|
438 | 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
|
439 | 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
|
440 | } |
|
d375d8056262
add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents:
883
diff
changeset
|
441 | |
|
d375d8056262
add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents:
883
diff
changeset
|
442 | int s = 58; |
|
d375d8056262
add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents:
883
diff
changeset
|
443 | 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
|
444 | 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
|
445 | s = 60; |
|
d375d8056262
add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents:
883
diff
changeset
|
446 | 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
|
447 | 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
|
448 | s = 59; |
|
d375d8056262
add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents:
883
diff
changeset
|
449 | 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
|
450 | 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
|
451 | 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
|
452 | s = 79; |
|
d375d8056262
add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents:
883
diff
changeset
|
453 | 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
|
454 | 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
|
455 | 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
|
456 | s = 66; |
|
d375d8056262
add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents:
883
diff
changeset
|
457 | 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
|
458 | 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
|
459 | 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
|
460 | s = 69; |
|
d375d8056262
add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents:
883
diff
changeset
|
461 | 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
|
462 | 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
|
463 | 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
|
464 | 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
|
465 | 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
|
466 | 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
|
467 | 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
|
468 | 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
|
469 | 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
|
470 | 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
|
471 | CX_TEST_ASSERT(18 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int)); |
|
1024
2911c1f4a570
add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents:
999
diff
changeset
|
472 | |
|
2911c1f4a570
add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents:
999
diff
changeset
|
473 | // 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
|
474 | s = 40; |
|
2911c1f4a570
add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents:
999
diff
changeset
|
475 | 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
|
476 | 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
|
477 | 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
|
478 | |
|
2911c1f4a570
add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents:
999
diff
changeset
|
479 | // 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
|
480 | s = 30; |
|
2911c1f4a570
add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents:
999
diff
changeset
|
481 | 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
|
482 | 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
|
483 | 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
|
484 | |
|
2911c1f4a570
add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents:
999
diff
changeset
|
485 | // 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
|
486 | s = 50; |
|
2911c1f4a570
add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents:
999
diff
changeset
|
487 | 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
|
488 | 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
|
489 | 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
|
490 | |
|
2911c1f4a570
add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents:
999
diff
changeset
|
491 | // 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
|
492 | s = 40; |
|
2911c1f4a570
add shortcut to binary search when array size is one
Mike Becker <universe@uap-core.de>
parents:
999
diff
changeset
|
493 | 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
|
494 | 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
|
495 | 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
|
496 | } |
|
d375d8056262
add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents:
883
diff
changeset
|
497 | } |
|
d375d8056262
add cx_array_binary_search() - fixes #424
Mike Becker <universe@uap-core.de>
parents:
883
diff
changeset
|
498 | |
|
1507
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
499 | CX_TEST(test_array_binary_search_with_duplicates) { |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
500 | int array[18] = { |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
501 | 40, 50, 55, 55, 55, 57, 57, 58, 60, |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
502 | 62, 64, 65, 70, 70, 70, 78, 80, 90 |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
503 | }; |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
504 | int s; |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
505 | CX_TEST_DO { |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
506 | // exact matches (largest index on duplicate) |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
507 | s = 40; |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
508 | CX_TEST_ASSERT(0 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int)); |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
509 | s = 50; |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
510 | CX_TEST_ASSERT(1 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int)); |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
511 | s = 55; |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
512 | CX_TEST_ASSERT(4 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int)); |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
513 | s = 57; |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
514 | CX_TEST_ASSERT(6 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int)); |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
515 | s = 58; |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
516 | CX_TEST_ASSERT(7 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int)); |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
517 | s = 65; |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
518 | CX_TEST_ASSERT(11 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int)); |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
519 | s = 70; |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
520 | CX_TEST_ASSERT(14 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int)); |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
521 | s = 78; |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
522 | CX_TEST_ASSERT(15 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int)); |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
523 | |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
524 | // not found |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
525 | s = 30; |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
526 | CX_TEST_ASSERT(18 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int)); |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
527 | s = 75; |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
528 | CX_TEST_ASSERT(18 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int)); |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
529 | s = 52; |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
530 | CX_TEST_ASSERT(18 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int)); |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
531 | s = 100; |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
532 | CX_TEST_ASSERT(18 == cx_array_binary_search(array, 18, sizeof(int), &s, cx_cmp_int)); |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
533 | |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
534 | // infimum |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
535 | s = 55; // also yields an exact match |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
536 | CX_TEST_ASSERT(4 == cx_array_binary_search_inf(array, 18, sizeof(int), &s, cx_cmp_int)); |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
537 | s = 56; |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
538 | CX_TEST_ASSERT(4 == cx_array_binary_search_inf(array, 18, sizeof(int), &s, cx_cmp_int)); |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
539 | s = 75; |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
540 | CX_TEST_ASSERT(14 == cx_array_binary_search_inf(array, 18, sizeof(int), &s, cx_cmp_int)); |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
541 | |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
542 | // supremum (smallest index) |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
543 | s = 52; |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
544 | CX_TEST_ASSERT(2 == cx_array_binary_search_sup(array, 18, sizeof(int), &s, cx_cmp_int)); |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
545 | s = 66; |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
546 | CX_TEST_ASSERT(12 == cx_array_binary_search_sup(array, 18, sizeof(int), &s, cx_cmp_int)); |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
547 | s = 75; |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
548 | CX_TEST_ASSERT(15 == cx_array_binary_search_sup(array, 18, sizeof(int), &s, cx_cmp_int)); |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
549 | s = 70; // exact match, we want the smallest index |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
550 | CX_TEST_ASSERT(12 == cx_array_binary_search_sup(array, 18, sizeof(int), &s, cx_cmp_int)); |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
551 | } |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
552 | } |
|
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
553 | |
|
798
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
554 | typedef struct node { |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
555 | struct node *next; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
556 | struct node *prev; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
557 | int data; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
558 | } node; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
559 | |
|
961
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
560 | 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
|
561 | const node *left = l; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
562 | const node *right = r; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
563 | return left->data - right->data; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
564 | } |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
565 | |
|
798
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
566 | 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
|
567 | 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
|
568 | 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
|
569 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
570 | 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
|
571 | 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
|
572 | void *prev = begin; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
573 | 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
|
574 | 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
|
575 | 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
|
576 | prev = n; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
577 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
578 | return begin; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
579 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
580 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
581 | 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
|
582 | va_list ap; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
583 | va_start(ap, n); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
584 | while (n != NULL) { |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
585 | 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
|
586 | n = n->next; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
587 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
588 | va_end(ap); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
589 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
590 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
591 | 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
|
592 | while (n != NULL) { |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
593 | void *next = n->next; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
594 | free(n); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
595 | n = next; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
596 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
597 | } |
|
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 | 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
|
600 | 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
|
601 | 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
|
602 | 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
|
603 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
604 | return data; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
605 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
606 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
607 | 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
|
608 | 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
|
609 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
610 | CX_TEST_DO { |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
611 | 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
|
612 | 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
|
613 | 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
|
614 | 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
|
615 | 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
|
616 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
617 | 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
|
618 | 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
|
619 | 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
|
620 | 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
|
621 | 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
|
622 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
623 | 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
|
624 | 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
|
625 | 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
|
626 | 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
|
627 | 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
|
628 | 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
|
629 | 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
|
630 | 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
|
631 | 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
|
632 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
633 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
634 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
635 | 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
|
636 | 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
|
637 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
638 | 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
|
639 | 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
|
640 | 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
|
641 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
642 | CX_TEST_DO { |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
643 | 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
|
644 | 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
|
645 | 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
|
646 | 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
|
647 | 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
|
648 | 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
|
649 | 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
|
650 | 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
|
651 | 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
|
652 | 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
|
653 | 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
|
654 | 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
|
655 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
656 | } |
|
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_TEST(test_linked_list_find) { |
|
1162
e3bb67b72d33
remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents:
1113
diff
changeset
|
659 | 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
|
660 | 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
|
661 | CX_TEST_DO { |
|
1162
e3bb67b72d33
remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents:
1113
diff
changeset
|
662 | size_t i = 10; |
|
798
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
663 | int s; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
664 | s = 2; |
|
1162
e3bb67b72d33
remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents:
1113
diff
changeset
|
665 | node *n = list; |
|
e3bb67b72d33
remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents:
1113
diff
changeset
|
666 | 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
|
667 | CX_TEST_ASSERT(i == 0); |
|
e3bb67b72d33
remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents:
1113
diff
changeset
|
668 | n = n->next; |
|
798
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
669 | s = 4; |
|
1162
e3bb67b72d33
remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents:
1113
diff
changeset
|
670 | 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
|
671 | CX_TEST_ASSERT(i == 1); |
|
e3bb67b72d33
remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents:
1113
diff
changeset
|
672 | n = n->next; |
|
798
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
673 | s = 6; |
|
1162
e3bb67b72d33
remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents:
1113
diff
changeset
|
674 | 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
|
675 | CX_TEST_ASSERT(i == 2); |
|
e3bb67b72d33
remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents:
1113
diff
changeset
|
676 | n = n->next; |
|
798
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
677 | s = 8; |
|
1162
e3bb67b72d33
remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents:
1113
diff
changeset
|
678 | 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
|
679 | 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
|
680 | s = 10; |
|
1162
e3bb67b72d33
remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents:
1113
diff
changeset
|
681 | 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
|
682 | s = -2; |
|
1162
e3bb67b72d33
remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents:
1113
diff
changeset
|
683 | 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
|
684 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
685 | destroy_nodes_test_data(list); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
686 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
687 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
688 | 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
|
689 | 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
|
690 | 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
|
691 | 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
|
692 | 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
|
693 | 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
|
694 | 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
|
695 | CX_TEST_DO { |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
696 | 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
|
697 | 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
|
698 | 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
|
699 | 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
|
700 | 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
|
701 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
702 | destroy_nodes_test_data(la); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
703 | destroy_nodes_test_data(lb); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
704 | destroy_nodes_test_data(lc); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
705 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
706 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
707 | 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
|
708 | node nodes[4]; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
709 | void *begin, *end; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
710 | CX_TEST_DO { |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
711 | // 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
|
712 | 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
|
713 | end = begin = NULL; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
714 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
715 | 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
|
716 | 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
|
717 | 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
|
718 | 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
|
719 | 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
|
720 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
721 | 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
|
722 | 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
|
723 | 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
|
724 | 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
|
725 | 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
|
726 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
727 | // 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
|
728 | 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
|
729 | end = begin = NULL; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
730 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
731 | 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
|
732 | 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
|
733 | 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
|
734 | 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
|
735 | 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
|
736 | 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
|
737 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
738 | 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
|
739 | 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
|
740 | 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
|
741 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
742 | // 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
|
743 | 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
|
744 | end = begin = NULL; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
745 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
746 | 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
|
747 | 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
|
748 | 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
|
749 | 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
|
750 | 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
|
751 | 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
|
752 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
753 | 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
|
754 | 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
|
755 | 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
|
756 | 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
|
757 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
758 | // test with begin, end / next |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
759 | 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
|
760 | end = begin = NULL; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
761 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
762 | 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
|
763 | 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
|
764 | 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
|
765 | 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
|
766 | 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
|
767 | 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
|
768 | 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
|
769 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
770 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
771 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
772 | 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
|
773 | node nodes[4]; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
774 | void *begin, *end; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
775 | CX_TEST_DO { |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
776 | // 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
|
777 | 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
|
778 | end = begin = NULL; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
779 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
780 | 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
|
781 | 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
|
782 | 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
|
783 | 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
|
784 | 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
|
785 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
786 | 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
|
787 | 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
|
788 | 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
|
789 | 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
|
790 | 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
|
791 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
792 | // 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
|
793 | 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
|
794 | end = begin = NULL; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
795 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
796 | 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
|
797 | 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
|
798 | 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
|
799 | 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
|
800 | 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
|
801 | 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
|
802 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
803 | 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
|
804 | 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
|
805 | 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
|
806 | 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
|
807 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
808 | // 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
|
809 | 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
|
810 | end = begin = NULL; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
811 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
812 | 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
|
813 | 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
|
814 | 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
|
815 | 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
|
816 | 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
|
817 | 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
|
818 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
819 | 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
|
820 | 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
|
821 | 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
|
822 | 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
|
823 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
824 | // test with begin, end / next |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
825 | 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
|
826 | end = begin = NULL; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
827 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
828 | 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
|
829 | 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
|
830 | 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
|
831 | 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
|
832 | 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
|
833 | 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
|
834 | 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
|
835 | 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
|
836 | 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
|
837 | 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
|
838 | 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
|
839 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
840 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
841 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
842 | 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
|
843 | node nodes[4]; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
844 | void *begin, *end; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
845 | CX_TEST_DO { |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
846 | // insert mid list |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
847 | 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
|
848 | begin = &nodes[0]; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
849 | end = &nodes[2]; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
850 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
851 | 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
|
852 | 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
|
853 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
854 | 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
|
855 | 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
|
856 | 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
|
857 | 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
|
858 | 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
|
859 | 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
|
860 | 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
|
861 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
862 | // insert end |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
863 | 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
|
864 | begin = &nodes[0]; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
865 | end = &nodes[2]; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
866 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
867 | 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
|
868 | 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
|
869 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
870 | 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
|
871 | 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
|
872 | 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
|
873 | 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
|
874 | 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
|
875 | 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
|
876 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
877 | // insert begin |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
878 | 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
|
879 | begin = &nodes[0]; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
880 | end = &nodes[2]; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
881 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
882 | 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
|
883 | 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
|
884 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
885 | 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
|
886 | 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
|
887 | 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
|
888 | 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
|
889 | 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
|
890 | 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
|
891 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
892 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
893 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
894 | 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
|
895 | node nodes[5]; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
896 | void *begin, *end; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
897 | CX_TEST_DO { |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
898 | // insert mid list |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
899 | 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
|
900 | 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
|
901 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
902 | 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
|
903 | 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
|
904 | 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
|
905 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
906 | 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
|
907 | 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
|
908 | 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
|
909 | 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
|
910 | 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
|
911 | 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
|
912 | 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
|
913 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
914 | // insert end |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
915 | 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
|
916 | 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
|
917 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
918 | 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
|
919 | 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
|
920 | 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
|
921 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
922 | 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
|
923 | 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
|
924 | 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
|
925 | 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
|
926 | 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
|
927 | 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
|
928 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
929 | // insert begin |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
930 | 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
|
931 | 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
|
932 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
933 | 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
|
934 | 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
|
935 | 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
|
936 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
937 | 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
|
938 | 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
|
939 | 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
|
940 | 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
|
941 | 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
|
942 | 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
|
943 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
944 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
945 | |
|
961
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
946 | CX_TEST(test_linked_list_insert_sorted) { |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
947 | node nodes[5] = {0}; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
948 | void *begin, *end; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
949 | nodes[0].data = 3; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
950 | nodes[1].data = 6; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
951 | nodes[2].data = 10; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
952 | nodes[3].data = 11; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
953 | nodes[4].data = 15; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
954 | for (unsigned i = 0 ; i < 4 ; i++) { |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
955 | 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
|
956 | } |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
957 | begin = &nodes[0]; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
958 | end = &nodes[4]; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
959 | CX_TEST_DO { |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
960 | // insert a single node |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
961 | node new_node = {0}; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
962 | new_node.data = 5; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
963 | cx_linked_list_insert_sorted( |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
964 | &begin, &end, |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
965 | loc_prev, loc_next, |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
966 | &new_node, test_cmp_node |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
967 | ); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
968 | 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
|
969 | 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
|
970 | 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
|
971 | 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
|
972 | CX_TEST_ASSERT(begin == &nodes[0]); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
973 | CX_TEST_ASSERT(end == &nodes[4]); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
974 | |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
975 | // insert a new beginning node |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
976 | node new_begin = {0}; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
977 | new_begin.data = 1; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
978 | cx_linked_list_insert_sorted( |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
979 | &begin, &end, |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
980 | loc_prev, loc_next, |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
981 | &new_begin, test_cmp_node |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
982 | ); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
983 | CX_TEST_ASSERT(new_begin.prev == NULL); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
984 | 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
|
985 | 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
|
986 | CX_TEST_ASSERT(begin == &new_begin); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
987 | CX_TEST_ASSERT(end == &nodes[4]); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
988 | |
|
1493
33f556a7eca6
add missing test coverage for inserting a duplicate for the beginning node with cx_linked_list_insert_sorted()
Mike Becker <universe@uap-core.de>
parents:
1486
diff
changeset
|
989 | // duplicate the beginning node |
|
33f556a7eca6
add missing test coverage for inserting a duplicate for the beginning node with cx_linked_list_insert_sorted()
Mike Becker <universe@uap-core.de>
parents:
1486
diff
changeset
|
990 | // (expectation is that the duplicate is inserted after the first node) |
|
33f556a7eca6
add missing test coverage for inserting a duplicate for the beginning node with cx_linked_list_insert_sorted()
Mike Becker <universe@uap-core.de>
parents:
1486
diff
changeset
|
991 | node new_begin_dup = {0}; |
|
33f556a7eca6
add missing test coverage for inserting a duplicate for the beginning node with cx_linked_list_insert_sorted()
Mike Becker <universe@uap-core.de>
parents:
1486
diff
changeset
|
992 | new_begin_dup.data = 1; |
|
33f556a7eca6
add missing test coverage for inserting a duplicate for the beginning node with cx_linked_list_insert_sorted()
Mike Becker <universe@uap-core.de>
parents:
1486
diff
changeset
|
993 | cx_linked_list_insert_sorted( |
|
33f556a7eca6
add missing test coverage for inserting a duplicate for the beginning node with cx_linked_list_insert_sorted()
Mike Becker <universe@uap-core.de>
parents:
1486
diff
changeset
|
994 | &begin, &end, |
|
33f556a7eca6
add missing test coverage for inserting a duplicate for the beginning node with cx_linked_list_insert_sorted()
Mike Becker <universe@uap-core.de>
parents:
1486
diff
changeset
|
995 | loc_prev, loc_next, |
|
33f556a7eca6
add missing test coverage for inserting a duplicate for the beginning node with cx_linked_list_insert_sorted()
Mike Becker <universe@uap-core.de>
parents:
1486
diff
changeset
|
996 | &new_begin_dup, test_cmp_node |
|
33f556a7eca6
add missing test coverage for inserting a duplicate for the beginning node with cx_linked_list_insert_sorted()
Mike Becker <universe@uap-core.de>
parents:
1486
diff
changeset
|
997 | ); |
|
33f556a7eca6
add missing test coverage for inserting a duplicate for the beginning node with cx_linked_list_insert_sorted()
Mike Becker <universe@uap-core.de>
parents:
1486
diff
changeset
|
998 | CX_TEST_ASSERT(new_begin_dup.prev == &new_begin); |
|
33f556a7eca6
add missing test coverage for inserting a duplicate for the beginning node with cx_linked_list_insert_sorted()
Mike Becker <universe@uap-core.de>
parents:
1486
diff
changeset
|
999 | CX_TEST_ASSERT(new_begin_dup.next == &nodes[0]); |
|
33f556a7eca6
add missing test coverage for inserting a duplicate for the beginning node with cx_linked_list_insert_sorted()
Mike Becker <universe@uap-core.de>
parents:
1486
diff
changeset
|
1000 | CX_TEST_ASSERT(nodes[0].prev == &new_begin_dup); |
|
33f556a7eca6
add missing test coverage for inserting a duplicate for the beginning node with cx_linked_list_insert_sorted()
Mike Becker <universe@uap-core.de>
parents:
1486
diff
changeset
|
1001 | CX_TEST_ASSERT(new_begin.next == &new_begin_dup); |
|
33f556a7eca6
add missing test coverage for inserting a duplicate for the beginning node with cx_linked_list_insert_sorted()
Mike Becker <universe@uap-core.de>
parents:
1486
diff
changeset
|
1002 | CX_TEST_ASSERT(begin == &new_begin); |
|
33f556a7eca6
add missing test coverage for inserting a duplicate for the beginning node with cx_linked_list_insert_sorted()
Mike Becker <universe@uap-core.de>
parents:
1486
diff
changeset
|
1003 | CX_TEST_ASSERT(end == &nodes[4]); |
|
33f556a7eca6
add missing test coverage for inserting a duplicate for the beginning node with cx_linked_list_insert_sorted()
Mike Becker <universe@uap-core.de>
parents:
1486
diff
changeset
|
1004 | |
|
961
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1005 | // now insert a chain |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1006 | node chain_start = {NULL, NULL, 8}; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1007 | node chain_mid = {NULL, NULL, 14}; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1008 | node chain_end = {NULL, NULL, 17}; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1009 | 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
|
1010 | 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
|
1011 | |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1012 | cx_linked_list_insert_sorted_chain( |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1013 | &begin, &end, |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1014 | loc_prev, loc_next, |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1015 | &chain_start, test_cmp_node |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1016 | ); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1017 | |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1018 | 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
|
1019 | 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
|
1020 | 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
|
1021 | 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
|
1022 | 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
|
1023 | CX_TEST_ASSERT(chain_end.next == NULL); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1024 | CX_TEST_ASSERT(begin == &new_begin); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1025 | CX_TEST_ASSERT(end == &chain_end); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1026 | } |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1027 | } |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1028 | |
|
1419
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
1029 | 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
|
1030 | 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
|
1031 | 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
|
1032 | 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
|
1033 | 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
|
1034 | 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
|
1035 | 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
|
1036 | 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
|
1037 | 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
|
1038 | 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
|
1039 | } |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
1040 | 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
|
1041 | 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
|
1042 | 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
|
1043 | // 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
|
1044 | 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
|
1045 | 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
|
1046 | 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
|
1047 | &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
|
1048 | 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
|
1049 | &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
|
1050 | )); |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
1051 | 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
|
1052 | 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
|
1053 | 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
|
1054 | 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
|
1055 | 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
|
1056 | 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
|
1057 | |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
1058 | // 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
|
1059 | 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
|
1060 | 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
|
1061 | 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
|
1062 | &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
|
1063 | 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
|
1064 | &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
|
1065 | )); |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
1066 | 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
|
1067 | 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
|
1068 | 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
|
1069 | 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
|
1070 | 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
|
1071 | 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
|
1072 | 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
|
1073 | 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
|
1074 | |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
1075 | // 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
|
1076 | 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
|
1077 | 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
|
1078 | 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
|
1079 | &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
|
1080 | 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
|
1081 | &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
|
1082 | )); |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
1083 | 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
|
1084 | 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
|
1085 | 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
|
1086 | 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
|
1087 | 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
|
1088 | |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
1089 | // 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
|
1090 | 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
|
1091 | 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
|
1092 | 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
|
1093 | &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
|
1094 | 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
|
1095 | &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
|
1096 | )); |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
1097 | 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
|
1098 | 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
|
1099 | 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
|
1100 | 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
|
1101 | 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
|
1102 | 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
|
1103 | 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
|
1104 | |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
1105 | // 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
|
1106 | 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
|
1107 | 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
|
1108 | 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
|
1109 | 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
|
1110 | 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
|
1111 | 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
|
1112 | 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
|
1113 | 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
|
1114 | 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
|
1115 | 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
|
1116 | 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
|
1117 | |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
1118 | 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
|
1119 | &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
|
1120 | 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
|
1121 | &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
|
1122 | ); |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
1123 | |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
1124 | 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
|
1125 | 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
|
1126 | 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
|
1127 | 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
|
1128 | 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
|
1129 | 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
|
1130 | 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
|
1131 | 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
|
1132 | |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
1133 | // 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
|
1134 | 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
|
1135 | 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
|
1136 | 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
|
1137 | 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
|
1138 | 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
|
1139 | 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
|
1140 | 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
|
1141 | } |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
1142 | } |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
1143 | |
|
798
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1144 | 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
|
1145 | 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
|
1146 | void *begin = testdata; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1147 | CX_TEST_DO { |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1148 | 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
|
1149 | 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
|
1150 | 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
|
1151 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1152 | destroy_nodes_test_data(testdata); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1153 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1154 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1155 | 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
|
1156 | 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
|
1157 | void *end = testdata->next->next; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1158 | CX_TEST_DO { |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1159 | 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
|
1160 | 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
|
1161 | 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
|
1162 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1163 | destroy_nodes_test_data(testdata); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1164 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1165 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1166 | 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
|
1167 | 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
|
1168 | CX_TEST_DO { |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1169 | 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
|
1170 | 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
|
1171 | 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
|
1172 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1173 | destroy_nodes_test_data(testdata); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1174 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1175 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1176 | 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
|
1177 | 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
|
1178 | 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
|
1179 | node *first = testdata; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1180 | node *second = first->next; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1181 | node *third = second->next; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1182 | void *begin = testdata; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1183 | void *end = third; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1184 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1185 | CX_TEST_DO { |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1186 | 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
|
1187 | CX_TEST_ASSERT(begin == first); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1188 | CX_TEST_ASSERT(end == third); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1189 | 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
|
1190 | 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
|
1191 | 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
|
1192 | 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
|
1193 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1194 | 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
|
1195 | CX_TEST_ASSERT(begin == first); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1196 | CX_TEST_ASSERT(end == first); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1197 | 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
|
1198 | 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
|
1199 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1200 | 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
|
1201 | CX_TEST_ASSERT(begin == NULL); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1202 | CX_TEST_ASSERT(end == NULL); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1203 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1204 | // 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
|
1205 | free(first); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1206 | free(second); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1207 | free(third); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1208 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1209 | |
|
961
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1210 | CX_TEST(test_linked_list_remove_chain) { |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1211 | node *testdata = create_nodes_test_data(5); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1212 | 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
|
1213 | void *begin = testdata; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1214 | 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
|
1215 | void *orig_end = end; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1216 | // remember what we need to free |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1217 | node *kill_list[5]; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1218 | kill_list[0] = testdata; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1219 | for (unsigned i = 1 ; i < 5 ; i++) { |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1220 | 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
|
1221 | } |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1222 | |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1223 | CX_TEST_DO { |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1224 | // 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
|
1225 | 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
|
1226 | &begin, &end, -1, loc_next, |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1227 | 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
|
1228 | 2 |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1229 | ); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1230 | CX_TEST_ASSERT(result == 2); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1231 | CX_TEST_ASSERT(begin == testdata); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1232 | CX_TEST_ASSERT(end == orig_end); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1233 | 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
|
1234 | CX_TEST_ASSERT(new_idx2->data == 10); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1235 | CX_TEST_ASSERT(new_idx2->next == NULL); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1236 | // 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
|
1237 | 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
|
1238 | |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1239 | // 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
|
1240 | result = cx_linked_list_remove_chain( |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1241 | &begin, &end, -1, loc_next, |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1242 | 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
|
1243 | 2 |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1244 | ); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1245 | CX_TEST_ASSERT(result == 1); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1246 | CX_TEST_ASSERT(begin == testdata); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1247 | CX_TEST_ASSERT(end == testdata->next); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1248 | CX_TEST_ASSERT(NULL == testdata->next->next); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1249 | } |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1250 | |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1251 | for (unsigned i = 0 ; i < 5 ; i++) { |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1252 | free(kill_list[i]); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1253 | } |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1254 | } |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
1255 | |
|
798
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1256 | 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
|
1257 | 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
|
1258 | 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
|
1259 | CX_TEST_DO { |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1260 | 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
|
1261 | 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
|
1262 | 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
|
1263 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1264 | destroy_nodes_test_data(td5); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1265 | destroy_nodes_test_data(td13); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1266 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1267 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1268 | 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
|
1269 | void *begin = NULL; |
| 799 | 1270 | CX_TEST_DO { |
| 1271 | // cannot assert something, we can just test that it does not crash | |
| 1272 | cx_linked_list_sort(&begin, NULL, loc_prev, loc_next, loc_data, cx_cmp_int); | |
| 1273 | CX_TEST_ASSERT(true); | |
| 1274 | } | |
|
798
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1275 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1276 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1277 | 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
|
1278 | const size_t len = 1500; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1279 | 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
|
1280 | 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
|
1281 | node *n = scrambled; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1282 | 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
|
1283 | n->data = testdata[i]; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1284 | n = n->next; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1285 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1286 | 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
|
1287 | 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
|
1288 | 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
|
1289 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1290 | void *begin = scrambled; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1291 | 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
|
1292 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1293 | CX_TEST_DO { |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1294 | 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
|
1295 | node *check = begin; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1296 | node *check_last = NULL; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1297 | 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
|
1298 | 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
|
1299 | 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
|
1300 | if (i < len - 1) { |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1301 | 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
|
1302 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1303 | check_last = check; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1304 | check = check->next; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1305 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1306 | CX_TEST_ASSERT(check == NULL); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1307 | 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
|
1308 | } |
| 799 | 1309 | destroy_nodes_test_data(begin); |
| 1310 | free(sorted); | |
|
798
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1311 | free(testdata); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1312 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1313 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1314 | 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
|
1315 | 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
|
1316 | 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
|
1317 | 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
|
1318 | assign_nodes_test_data(expected, 8, 6, 4, 2); |
| 799 | 1319 | void *begin = testdata; |
|
798
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1320 | CX_TEST_DO { |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1321 | 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
|
1322 | 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
|
1323 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1324 | 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
|
1325 | 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
|
1326 | 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
|
1327 | 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
|
1328 | } |
| 799 | 1329 | 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
|
1330 | destroy_nodes_test_data(expected); |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1331 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1332 | |
|
800
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1333 | |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1334 | CX_TEST(test_empty_list_size) { |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1335 | 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
|
1336 | 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
|
1337 | CX_TEST_ASSERT(cxListSize(cxEmptyList) == 0); |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1338 | } |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1339 | } |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1340 | |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1341 | CX_TEST(test_empty_list_iterator) { |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1342 | CxList *list = cxEmptyList; |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1343 | |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1344 | CxIterator it1 = cxListIterator(list); |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1345 | CxIterator it2 = cxListBackwardsIterator(list); |
|
1429
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
1346 | |
|
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
1347 | CX_TEST_DO { |
|
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
1348 | CX_TEST_ASSERT(!cxIteratorValid(it1)); |
|
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
1349 | CX_TEST_ASSERT(!cxIteratorValid(it2)); |
|
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
1350 | |
|
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
1351 | int c = 0; |
|
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
1352 | cx_foreach(void*, data, it1) c++; |
|
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
1353 | cx_foreach(void*, data, it2) c++; |
|
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
1354 | CX_TEST_ASSERT(c == 0); |
|
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
1355 | } |
|
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
1356 | } |
|
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
1357 | |
|
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
1358 | CX_TEST(test_null_list_iterator) { |
|
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
1359 | CxList *list = NULL; |
|
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
1360 | |
|
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
1361 | CxIterator it1 = cxListIterator(list); |
|
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
1362 | CxIterator it2 = cxListBackwardsIterator(list); |
|
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
1363 | CxIterator it3 = cxListIteratorAt(list, 0); |
|
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
1364 | CxIterator it4 = cxListBackwardsIteratorAt(list, 0); |
|
800
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1365 | |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1366 | CX_TEST_DO { |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1367 | CX_TEST_ASSERT(!cxIteratorValid(it1)); |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1368 | CX_TEST_ASSERT(!cxIteratorValid(it2)); |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1369 | CX_TEST_ASSERT(!cxIteratorValid(it3)); |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1370 | CX_TEST_ASSERT(!cxIteratorValid(it4)); |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1371 | |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1372 | int c = 0; |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1373 | cx_foreach(void*, data, it1) c++; |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1374 | cx_foreach(void*, data, it2) c++; |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1375 | cx_foreach(void*, data, it3) c++; |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1376 | cx_foreach(void*, data, it4) c++; |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1377 | CX_TEST_ASSERT(c == 0); |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1378 | } |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1379 | } |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1380 | |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1381 | CX_TEST(test_empty_list_noops) { |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1382 | CX_TEST_DO { |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1383 | CxList copy = *cxEmptyList; |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1384 | cxListSort(cxEmptyList); |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1385 | cxListClear(cxEmptyList); |
|
993
b642eca4b956
make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents:
986
diff
changeset
|
1386 | cxListFree(cxEmptyList); |
|
800
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1387 | CX_TEST_ASSERT(0 == memcmp(©, cxEmptyList, sizeof(CxList))); // NOLINT(*-suspicious-memory-comparison) |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1388 | } |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1389 | } |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1390 | |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1391 | CX_TEST(test_empty_list_at) { |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1392 | CX_TEST_DO { |
|
1225
086e63c8dd06
fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents:
1163
diff
changeset
|
1393 | // the placeholder empty list |
|
800
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1394 | CX_TEST_ASSERT(cxListAt(cxEmptyList, 0) == NULL); |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1395 | 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
|
1396 | // a "true" empty list |
|
086e63c8dd06
fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents:
1163
diff
changeset
|
1397 | CxList *list = cxLinkedListCreateSimple(sizeof(int)); |
|
086e63c8dd06
fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents:
1163
diff
changeset
|
1398 | 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
|
1399 | 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
|
1400 | cxListFree(list); |
|
800
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1401 | } |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1402 | } |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1403 | |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1404 | CX_TEST(test_empty_list_find) { |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1405 | int x = 42, y = 1337; |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1406 | CX_TEST_DO { |
|
1225
086e63c8dd06
fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents:
1163
diff
changeset
|
1407 | // the placeholder empty list |
|
1162
e3bb67b72d33
remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents:
1113
diff
changeset
|
1408 | 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
|
1409 | 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
|
1410 | // a "true" empty list |
|
086e63c8dd06
fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents:
1163
diff
changeset
|
1411 | CxList *list = cxLinkedListCreateSimple(sizeof(int)); |
|
086e63c8dd06
fix cxListFind() crashing on empty linked lists
Mike Becker <universe@uap-core.de>
parents:
1163
diff
changeset
|
1412 | 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
|
1413 | 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
|
1414 | cxListFree(list); |
|
800
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1415 | } |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1416 | } |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1417 | |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1418 | CX_TEST(test_empty_list_compare) { |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1419 | CxList *empty = cxEmptyList; |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1420 | CxList *ll = cxLinkedListCreateSimple(sizeof(int)); |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1421 | CxList *al = cxArrayListCreateSimple(sizeof(int), 8); |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1422 | int x = 5; |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1423 | CX_TEST_DO { |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1424 | CX_TEST_ASSERT(0 == cxListCompare(empty, cxEmptyList)); |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1425 | CX_TEST_ASSERT(0 == cxListCompare(ll, cxEmptyList)); |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1426 | CX_TEST_ASSERT(0 == cxListCompare(al, cxEmptyList)); |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1427 | CX_TEST_ASSERT(0 == cxListCompare(cxEmptyList, ll)); |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1428 | CX_TEST_ASSERT(0 == cxListCompare(cxEmptyList, al)); |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1429 | |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1430 | cxListAdd(ll, &x); |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1431 | cxListAdd(al, &x); |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1432 | |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1433 | CX_TEST_ASSERT(0 < cxListCompare(ll, cxEmptyList)); |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1434 | CX_TEST_ASSERT(0 < cxListCompare(al, cxEmptyList)); |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1435 | CX_TEST_ASSERT(0 > cxListCompare(cxEmptyList, ll)); |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1436 | CX_TEST_ASSERT(0 > cxListCompare(cxEmptyList, al)); |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1437 | } |
|
993
b642eca4b956
make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents:
986
diff
changeset
|
1438 | cxListFree(ll); |
|
b642eca4b956
make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents:
986
diff
changeset
|
1439 | cxListFree(al); |
|
800
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1440 | } |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
1441 | |
|
1422
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
1442 | CX_TEST(test_null_list_free) { |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
1443 | CX_TEST_DO { |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
1444 | // cannot really verify, but asan or valgrind would complain |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
1445 | cxListFree(NULL); |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
1446 | } |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
1447 | } |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
1448 | |
|
801
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1449 | 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
|
1450 | CxTestingAllocator talloc; |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1451 | 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
|
1452 | CxAllocator *alloc = &talloc.base; |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1453 | CX_TEST_DO { |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1454 | 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
|
1455 | 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
|
1456 | 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
|
1457 | 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
|
1458 | 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
|
1459 | 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
|
1460 | 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
|
1461 | 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
|
1462 | 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:
1024
diff
changeset
|
1463 | 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
|
1464 | cxListFree(list); |
|
801
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1465 | 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
|
1466 | } |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1467 | 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
|
1468 | } |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1469 | |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1470 | 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
|
1471 | 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
|
1472 | CX_TEST_DO { |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1473 | 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
|
1474 | 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
|
1475 | 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
|
1476 | 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
|
1477 | 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
|
1478 | 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
|
1479 | 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
|
1480 | 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:
1024
diff
changeset
|
1481 | 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
|
1482 | } |
|
993
b642eca4b956
make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents:
986
diff
changeset
|
1483 | cxListFree(list); |
|
801
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1484 | } |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1485 | |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1486 | 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
|
1487 | 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
|
1488 | CX_TEST_DO { |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1489 | 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
|
1490 | 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
|
1491 | 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
|
1492 | 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
|
1493 | 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
|
1494 | 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
|
1495 | 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
|
1496 | 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:
1024
diff
changeset
|
1497 | 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
|
1498 | } |
|
993
b642eca4b956
make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents:
986
diff
changeset
|
1499 | cxListFree(list); |
|
801
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1500 | } |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1501 | |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1502 | 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
|
1503 | CxTestingAllocator talloc; |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1504 | 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
|
1505 | CxAllocator *alloc = &talloc.base; |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1506 | CX_TEST_DO { |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1507 | 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
|
1508 | 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
|
1509 | 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
|
1510 | 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
|
1511 | 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
|
1512 | 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
|
1513 | 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
|
1514 | 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
|
1515 | 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:
1024
diff
changeset
|
1516 | 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
|
1517 | cxListFree(list); |
|
801
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1518 | 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
|
1519 | } |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1520 | 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
|
1521 | } |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1522 | |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1523 | 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
|
1524 | 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
|
1525 | CX_TEST_DO { |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1526 | 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
|
1527 | 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
|
1528 | 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
|
1529 | 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
|
1530 | 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
|
1531 | 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
|
1532 | 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
|
1533 | 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:
1024
diff
changeset
|
1534 | 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
|
1535 | } |
|
993
b642eca4b956
make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents:
986
diff
changeset
|
1536 | cxListFree(list); |
|
801
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1537 | } |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1538 | |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1539 | 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
|
1540 | 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
|
1541 | CX_TEST_DO { |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1542 | 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
|
1543 | 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
|
1544 | 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
|
1545 | 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
|
1546 | 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
|
1547 | 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
|
1548 | 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
|
1549 | 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:
1024
diff
changeset
|
1550 | 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
|
1551 | } |
|
993
b642eca4b956
make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents:
986
diff
changeset
|
1552 | cxListFree(list); |
|
801
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1553 | } |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1554 | |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1555 | 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
|
1556 | *(int *) elem = 42; |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1557 | } |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1558 | |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1559 | 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
|
1560 | CxTestingAllocator talloc; |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1561 | 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
|
1562 | CxAllocator *alloc = &talloc.base; |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1563 | CX_TEST_DO { |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1564 | 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
|
1565 | 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
|
1566 | cxListAdd(list, item); |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1567 | 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
|
1568 | cxListFree(list); |
|
801
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1569 | // 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
|
1570 | 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
|
1571 | cxFree(alloc, item); |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1572 | 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
|
1573 | } |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1574 | 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
|
1575 | } |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1576 | |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1577 | 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
|
1578 | CX_TEST_DO { |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1579 | int item = 0; |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1580 | 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
|
1581 | 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
|
1582 | 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
|
1583 | cxListFree(list); |
|
801
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1584 | 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
|
1585 | } |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1586 | } |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1587 | |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1588 | 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
|
1589 | CxTestingAllocator talloc; |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1590 | 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
|
1591 | CxAllocator *alloc = &talloc.base; |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1592 | CX_TEST_DO { |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1593 | 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
|
1594 | 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
|
1595 | 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
|
1596 | 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
|
1597 | cxListAdd(list, item); |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1598 | 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
|
1599 | cxListFree(list); |
|
801
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1600 | 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
|
1601 | } |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1602 | 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
|
1603 | } |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1604 | |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1605 | 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
|
1606 | CxTestingAllocator talloc; |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1607 | 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
|
1608 | CxAllocator *alloc = &talloc.base; |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1609 | CX_TEST_DO { |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1610 | 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
|
1611 | 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
|
1612 | cxListAdd(list, item); |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1613 | 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
|
1614 | cxListFree(list); |
|
801
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1615 | // 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
|
1616 | 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
|
1617 | cxFree(alloc, item); |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1618 | 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
|
1619 | } |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1620 | 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
|
1621 | } |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1622 | |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1623 | 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
|
1624 | CX_TEST_DO { |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1625 | int item = 0; |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1626 | 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
|
1627 | 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
|
1628 | 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
|
1629 | cxListFree(list); |
|
801
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1630 | 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
|
1631 | } |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1632 | } |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1633 | |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1634 | 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
|
1635 | CxTestingAllocator talloc; |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1636 | 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
|
1637 | CxAllocator *alloc = &talloc.base; |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1638 | CX_TEST_DO { |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1639 | 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
|
1640 | 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
|
1641 | 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
|
1642 | 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
|
1643 | cxListAdd(list, item); |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1644 | 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
|
1645 | cxListFree(list); |
|
801
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1646 | 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
|
1647 | } |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1648 | 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
|
1649 | } |
|
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
1650 | |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1651 | #define set_up_combo \ |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1652 | CxTestingAllocator talloc; \ |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1653 | cx_testing_allocator_init(&talloc); \ |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1654 | CxAllocator *alloc = &talloc.base; \ |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1655 | CX_TEST_DO { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1656 | #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
|
1657 | cxListFree(list); \ |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1658 | 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
|
1659 | } \ |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1660 | 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
|
1661 | #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
|
1662 | CX_TEST(test_list_ll_##name) { \ |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1663 | set_up_combo \ |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1664 | 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
|
1665 | 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
|
1666 | tear_down_combo \ |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1667 | } \ |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1668 | CX_TEST(test_list_arl_##name) { \ |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1669 | set_up_combo \ |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1670 | 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
|
1671 | 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
|
1672 | tear_down_combo \ |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1673 | } \ |
|
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
|
1674 | 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
|
1675 | 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
|
1676 | 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
|
1677 | 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
|
1678 | 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
|
1679 | } \ |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1680 | CX_TEST(test_list_pll_##name) { \ |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1681 | set_up_combo \ |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1682 | 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
|
1683 | 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
|
1684 | tear_down_combo \ |
|
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 | CX_TEST(test_list_parl_##name) { \ |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1687 | set_up_combo \ |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1688 | 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
|
1689 | 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
|
1690 | 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
|
1691 | } \ |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
1321
diff
changeset
|
1692 | 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
|
1693 | 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
|
1694 | 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
|
1695 | 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
|
1696 | tear_down_combo \ |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1697 | } |
|
875
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1698 | #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
|
1699 | 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
|
1700 | 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
|
1701 | roll_out_test_invokers(name) |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1702 | |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1703 | 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
|
1704 | 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
|
1705 | 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
|
1706 | 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
|
1707 | 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
|
1708 | 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
|
1709 | 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
|
1710 | 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
|
1711 | defaulted_cl->compare = NULL; |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1712 | if (list->climpl == NULL) { |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1713 | list->cl = defaulted_cl; |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1714 | } else { |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1715 | list->climpl = defaulted_cl; |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1716 | } |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1717 | } |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1718 | |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1719 | #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
|
1720 | cx_list_class defaulted_cl; \ |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1721 | 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
|
1722 | #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
|
1723 | 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
|
1724 | 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
|
1725 | roll_out_test_invokers(name) \ |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1726 | 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
|
1727 | set_up_combo \ |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1728 | 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
|
1729 | 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
|
1730 | 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
|
1731 | tear_down_combo \ |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1732 | } \ |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1733 | 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
|
1734 | set_up_combo \ |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1735 | 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
|
1736 | 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
|
1737 | 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
|
1738 | tear_down_combo \ |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1739 | } \ |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1740 | 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
|
1741 | set_up_combo \ |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1742 | 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
|
1743 | 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
|
1744 | 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
|
1745 | tear_down_combo \ |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1746 | } \ |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1747 | 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
|
1748 | set_up_combo \ |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1749 | 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
|
1750 | 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
|
1751 | 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
|
1752 | tear_down_combo \ |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1753 | } |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1754 | |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1755 | #define array_init(...) {__VA_ARGS__} |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1756 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1757 | 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
|
1758 | int *testdata = int_test_data(len); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1759 | if (isptrlist) { |
|
962
cd418898af5c
remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents:
961
diff
changeset
|
1760 | 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
|
1761 | cxListAdd(list, &testdata[i]); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1762 | } |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1763 | } else { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1764 | cxListAddArray(list, testdata, len); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1765 | } |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1766 | return testdata; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1767 | } |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1768 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1769 | roll_out_test_combos(add, { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1770 | const size_t len = 250; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1771 | 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
|
1772 | 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
|
1773 | 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
|
1774 | } |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1775 | 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
|
1776 | 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
|
1777 | 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
|
1778 | } |
|
cd418898af5c
remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents:
961
diff
changeset
|
1779 | 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
|
1780 | ++testdata[i]; |
|
cd418898af5c
remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents:
961
diff
changeset
|
1781 | } |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1782 | if (isptrlist) { |
|
962
cd418898af5c
remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents:
961
diff
changeset
|
1783 | 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
|
1784 | 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
|
1785 | } |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1786 | } else { |
|
962
cd418898af5c
remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents:
961
diff
changeset
|
1787 | 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
|
1788 | 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
|
1789 | } |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1790 | } |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1791 | free(testdata); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1792 | }) |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1793 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1794 | roll_out_test_combos(insert, { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1795 | int a = 5; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1796 | int b = 47; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1797 | int c = 13; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1798 | int d = 42; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1799 | 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
|
1800 | CX_TEST_ASSERT(cxListSize(list) == 0); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1801 | 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
|
1802 | CX_TEST_ASSERT(cxListSize(list) == 1); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1803 | 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
|
1804 | CX_TEST_ASSERT(cxListSize(list) == 2); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1805 | 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
|
1806 | CX_TEST_ASSERT(cxListSize(list) == 3); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1807 | 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
|
1808 | CX_TEST_ASSERT(cxListSize(list) == 4); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1809 | 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
|
1810 | 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
|
1811 | 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
|
1812 | 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
|
1813 | }) |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1814 | |
|
1316
c41538edfcef
add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents:
1315
diff
changeset
|
1815 | 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
|
1816 | 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
|
1817 | 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
|
1818 | 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
|
1819 | 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
|
1820 | 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
|
1821 | |
|
c41538edfcef
add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents:
1315
diff
changeset
|
1822 | 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
|
1823 | 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
|
1824 | 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
|
1825 | *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
|
1826 | 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
|
1827 | |
|
c41538edfcef
add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents:
1315
diff
changeset
|
1828 | 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
|
1829 | 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
|
1830 | 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
|
1831 | *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
|
1832 | 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
|
1833 | |
|
c41538edfcef
add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents:
1315
diff
changeset
|
1834 | 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
|
1835 | 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
|
1836 | |
|
c41538edfcef
add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents:
1315
diff
changeset
|
1837 | 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
|
1838 | 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
|
1839 | 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
|
1840 | *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
|
1841 | 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
|
1842 | 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
|
1843 | 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
|
1844 | } else { |
|
c41538edfcef
add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents:
1315
diff
changeset
|
1845 | 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
|
1846 | |
|
c41538edfcef
add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents:
1315
diff
changeset
|
1847 | 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
|
1848 | 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
|
1849 | 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
|
1850 | *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
|
1851 | 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
|
1852 | |
|
c41538edfcef
add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents:
1315
diff
changeset
|
1853 | 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
|
1854 | 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
|
1855 | 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
|
1856 | *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
|
1857 | 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
|
1858 | |
|
c41538edfcef
add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents:
1315
diff
changeset
|
1859 | 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
|
1860 | 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
|
1861 | |
|
c41538edfcef
add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents:
1315
diff
changeset
|
1862 | 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
|
1863 | 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
|
1864 | 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
|
1865 | *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
|
1866 | 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
|
1867 | 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
|
1868 | 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
|
1869 | } |
|
c41538edfcef
add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents:
1315
diff
changeset
|
1870 | }) |
|
c41538edfcef
add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents:
1315
diff
changeset
|
1871 | |
|
875
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
1872 | 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
|
1873 | 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
|
1874 | 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
|
1875 | int *aptr[5]; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1876 | int *bptr[5]; |
|
962
cd418898af5c
remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents:
961
diff
changeset
|
1877 | 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
|
1878 | aptr[i] = &a[i]; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1879 | bptr[i] = &b[i]; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1880 | } |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1881 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1882 | size_t inserted; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1883 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1884 | if (isptrlist) { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1885 | inserted = cxListInsertArray(list, 0, aptr, 5); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1886 | } else { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1887 | inserted = cxListInsertArray(list, 0, a, 5); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1888 | } |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1889 | CX_TEST_ASSERT(inserted == 5); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1890 | 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
|
1891 | 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
|
1892 | 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
|
1893 | 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
|
1894 | 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
|
1895 | if (isptrlist) { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1896 | inserted = cxListInsertArray(list, 3, bptr, 5); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1897 | } else { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1898 | inserted = cxListInsertArray(list, 3, b, 5); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1899 | } |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1900 | CX_TEST_ASSERT(inserted == 5); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1901 | 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
|
1902 | 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
|
1903 | 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
|
1904 | 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
|
1905 | 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
|
1906 | 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
|
1907 | 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
|
1908 | 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
|
1909 | 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
|
1910 | 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
|
1911 | }) |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
1912 | |
|
1433
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1913 | roll_out_test_combos_with_defaulted_funcs(emplace_array, { |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1914 | int a[5] = array_init(5, 47, 11, 13, 42); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1915 | int b[5] = array_init(9, 18, 72, 50, 7); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1916 | |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1917 | CxIterator iter; |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1918 | |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1919 | iter = cxListEmplaceArray(list, 5); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1920 | CX_TEST_ASSERT(cxListSize(list) == 5); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1921 | CX_TEST_ASSERT(iter.elem_count == 5); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1922 | CX_TEST_ASSERT(iter.index == 0); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1923 | if (isptrlist) { |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1924 | cx_foreach(int **, elem, iter) { |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1925 | *elem = a + iter.index; |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1926 | } |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1927 | } else { |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1928 | cx_foreach(int *, elem, iter) { |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1929 | *elem = a[iter.index]; |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1930 | } |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1931 | } |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1932 | CX_TEST_ASSERT(*(int *) cxListAt(list, 0) == 5); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1933 | CX_TEST_ASSERT(*(int *) cxListAt(list, 1) == 47); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1934 | CX_TEST_ASSERT(*(int *) cxListAt(list, 2) == 11); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1935 | CX_TEST_ASSERT(*(int *) cxListAt(list, 3) == 13); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1936 | CX_TEST_ASSERT(*(int *) cxListAt(list, 4) == 42); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1937 | iter = cxListEmplaceArrayAt(list, 3, 5); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1938 | CX_TEST_ASSERT(cxListSize(list) == 10); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1939 | CX_TEST_ASSERT(iter.elem_count == 5); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1940 | CX_TEST_ASSERT(iter.index == 0); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1941 | if (isptrlist) { |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1942 | cx_foreach(int **, elem, iter) { |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1943 | *elem = b + iter.index; |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1944 | } |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1945 | } else { |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1946 | cx_foreach(int *, elem, iter) { |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1947 | *elem = b[iter.index]; |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1948 | } |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1949 | } |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1950 | CX_TEST_ASSERT(*(int *) cxListAt(list, 0) == 5); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1951 | CX_TEST_ASSERT(*(int *) cxListAt(list, 1) == 47); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1952 | CX_TEST_ASSERT(*(int *) cxListAt(list, 2) == 11); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1953 | CX_TEST_ASSERT(*(int *) cxListAt(list, 3) == 9); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1954 | CX_TEST_ASSERT(*(int *) cxListAt(list, 4) == 18); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1955 | CX_TEST_ASSERT(*(int *) cxListAt(list, 5) == 72); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1956 | CX_TEST_ASSERT(*(int *) cxListAt(list, 6) == 50); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1957 | CX_TEST_ASSERT(*(int *) cxListAt(list, 7) == 7); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1958 | CX_TEST_ASSERT(*(int *) cxListAt(list, 8) == 13); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1959 | CX_TEST_ASSERT(*(int *) cxListAt(list, 9) == 42); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1960 | }) |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
1961 | |
|
876
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
1962 | 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
|
1963 | int d1 = 50; |
|
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
1964 | int d2 = 80; |
|
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
1965 | int d3 = 60; |
|
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
1966 | int d4 = 40; |
|
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
1967 | int d5 = 70; |
|
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
1968 | 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
|
1969 | 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
|
1970 | 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
|
1971 | 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
|
1972 | 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
|
1973 | int *d6ptr[6]; |
|
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
1974 | 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
|
1975 | int *d10ptr[3]; |
|
962
cd418898af5c
remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents:
961
diff
changeset
|
1976 | 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
|
1977 | d6ptr[i] = &d6a[i]; |
|
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
1978 | d7ptr[i] = &d7a[i]; |
|
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
1979 | } |
|
1419
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
1980 | 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
|
1981 | 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
|
1982 | } |
|
876
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
1983 | 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
|
1984 | 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
|
1985 | 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
|
1986 | 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
|
1987 | ); |
|
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
1988 | |
|
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
1989 | 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
|
1990 | 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
|
1991 | 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
|
1992 | 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
|
1993 | 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
|
1994 | if (isptrlist) { |
|
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
1995 | 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
|
1996 | } else { |
|
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
1997 | 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
|
1998 | } |
|
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
1999 | 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
|
2000 | if (isptrlist) { |
|
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
2001 | 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
|
2002 | } else { |
|
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
2003 | 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
|
2004 | } |
|
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
2005 | 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
|
2006 | 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
|
2007 | 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
|
2008 | 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
|
2009 | 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
|
2010 | } else { |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
2011 | 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
|
2012 | } |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
2013 | 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
|
2014 | 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
|
2015 | 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
|
2016 | 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
|
2017 | } |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
2018 | }) |
|
876
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
2019 | |
|
1419
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
2020 | 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
|
2021 | 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
|
2022 | 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
|
2023 | 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
|
2024 | 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
|
2025 | int d5 = 70; |
|
1481
1dda1eed1899
improve insert_unique test case to cover previously uncovered cases
Mike Becker <universe@uap-core.de>
parents:
1480
diff
changeset
|
2026 | int d6a[8] = array_init(52, 54, 56, 56, 62, 62, 64, 75); |
|
1dda1eed1899
improve insert_unique test case to cover previously uncovered cases
Mike Becker <universe@uap-core.de>
parents:
1480
diff
changeset
|
2027 | int d7a[8] = array_init(51, 51, 57, 58, 65, 77, 78, 78); |
|
1419
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
2028 | 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
|
2029 | int d9 = 56; |
|
1481
1dda1eed1899
improve insert_unique test case to cover previously uncovered cases
Mike Becker <universe@uap-core.de>
parents:
1480
diff
changeset
|
2030 | int d10a[5] = array_init(58, 58, 67, 75, 90); |
|
1dda1eed1899
improve insert_unique test case to cover previously uncovered cases
Mike Becker <universe@uap-core.de>
parents:
1480
diff
changeset
|
2031 | int *d6ptr[8]; |
|
1dda1eed1899
improve insert_unique test case to cover previously uncovered cases
Mike Becker <universe@uap-core.de>
parents:
1480
diff
changeset
|
2032 | int *d7ptr[8]; |
|
1dda1eed1899
improve insert_unique test case to cover previously uncovered cases
Mike Becker <universe@uap-core.de>
parents:
1480
diff
changeset
|
2033 | int *d10ptr[5]; |
|
1dda1eed1899
improve insert_unique test case to cover previously uncovered cases
Mike Becker <universe@uap-core.de>
parents:
1480
diff
changeset
|
2034 | for (size_t i = 0; i < 8; i++) { |
|
1419
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
2035 | 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
|
2036 | 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
|
2037 | } |
|
1481
1dda1eed1899
improve insert_unique test case to cover previously uncovered cases
Mike Becker <universe@uap-core.de>
parents:
1480
diff
changeset
|
2038 | for (size_t i = 0 ; i < 5 ; i++) { |
|
1419
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
2039 | 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
|
2040 | } |
|
1481
1dda1eed1899
improve insert_unique test case to cover previously uncovered cases
Mike Becker <universe@uap-core.de>
parents:
1480
diff
changeset
|
2041 | size_t processed; |
|
1419
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
2042 | 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
|
2043 | 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
|
2044 | 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
|
2045 | ); |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
2046 | |
|
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
2047 | 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
|
2048 | 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
|
2049 | 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
|
2050 | 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
|
2051 | 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
|
2052 | if (isptrlist) { |
|
1481
1dda1eed1899
improve insert_unique test case to cover previously uncovered cases
Mike Becker <universe@uap-core.de>
parents:
1480
diff
changeset
|
2053 | processed = cxListInsertUniqueArray(list, d6ptr, 8); |
|
1419
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
2054 | } else { |
|
1481
1dda1eed1899
improve insert_unique test case to cover previously uncovered cases
Mike Becker <universe@uap-core.de>
parents:
1480
diff
changeset
|
2055 | processed = cxListInsertUniqueArray(list, d6a, 8); |
|
1419
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
2056 | } |
|
1481
1dda1eed1899
improve insert_unique test case to cover previously uncovered cases
Mike Becker <universe@uap-core.de>
parents:
1480
diff
changeset
|
2057 | CX_TEST_ASSERT(processed == 8); |
|
1419
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
2058 | if (isptrlist) { |
|
1481
1dda1eed1899
improve insert_unique test case to cover previously uncovered cases
Mike Becker <universe@uap-core.de>
parents:
1480
diff
changeset
|
2059 | processed = cxListInsertUniqueArray(list, d7ptr, 8); |
|
1419
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
2060 | } else { |
|
1481
1dda1eed1899
improve insert_unique test case to cover previously uncovered cases
Mike Becker <universe@uap-core.de>
parents:
1480
diff
changeset
|
2061 | processed = cxListInsertUniqueArray(list, d7a, 8); |
|
1419
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
2062 | } |
|
1481
1dda1eed1899
improve insert_unique test case to cover previously uncovered cases
Mike Becker <universe@uap-core.de>
parents:
1480
diff
changeset
|
2063 | CX_TEST_ASSERT(processed == 8); |
|
1419
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
2064 | 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
|
2065 | 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
|
2066 | if (isptrlist) { |
|
1481
1dda1eed1899
improve insert_unique test case to cover previously uncovered cases
Mike Becker <universe@uap-core.de>
parents:
1480
diff
changeset
|
2067 | processed = cxListInsertUniqueArray(list, d10ptr, 5); |
|
1419
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
2068 | } else { |
|
1481
1dda1eed1899
improve insert_unique test case to cover previously uncovered cases
Mike Becker <universe@uap-core.de>
parents:
1480
diff
changeset
|
2069 | processed = cxListInsertUniqueArray(list, d10a, 5); |
|
1419
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
2070 | } |
|
1481
1dda1eed1899
improve insert_unique test case to cover previously uncovered cases
Mike Becker <universe@uap-core.de>
parents:
1480
diff
changeset
|
2071 | CX_TEST_ASSERT(processed == 5); |
|
1419
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
Mike Becker <universe@uap-core.de>
parents:
1388
diff
changeset
|
2072 | 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
|
2073 | 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
|
2074 | 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
|
2075 | } |
|
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
2076 | }) |
|
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
2077 | |
|
1428
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2078 | roll_out_test_combos_with_defaulted_funcs(insert_unique_not_sorted, { |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2079 | int d1 = 50; |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2080 | int d2 = 80; |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2081 | int d3 = 60; |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2082 | int d4 = 40; |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2083 | int d5 = 70; |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2084 | int d6a[6] = array_init(52, 54, 56, 62, 64, 75); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2085 | int d7a[6] = array_init(51, 57, 58, 65, 77, 78); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2086 | int d8 = 90; |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2087 | int d9 = 56; |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2088 | int d10a[3] = array_init(67, 75, 90); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2089 | int *d6ptr[6]; |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2090 | int *d7ptr[6]; |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2091 | int *d10ptr[3]; |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2092 | for (size_t i = 0; i < 6; i++) { |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2093 | d6ptr[i] = &d6a[i]; |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2094 | d7ptr[i] = &d7a[i]; |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2095 | } |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2096 | for (size_t i = 0 ; i < 3 ; i++) { |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2097 | d10ptr[i] = &d10a[i]; |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2098 | } |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2099 | size_t inserted; |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2100 | int expected[19] = array_init( |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2101 | 50, 80, 60, 40, 70, 52, 54, 56, 62, 64, |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2102 | 75, 51, 57, 58, 65, 77, 78, 90, 67 |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2103 | ); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2104 | |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2105 | // begin with an unsorted list! |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2106 | CX_TEST_ASSERT(0 == cxListAdd(list, &d1)); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2107 | CX_TEST_ASSERT(0 == cxListAdd(list, &d2)); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2108 | CX_TEST_ASSERT(0 == cxListAdd(list, &d3)); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2109 | CX_TEST_ASSERT(0 == cxListAdd(list, &d4)); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2110 | |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2111 | // not start adding unique items |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2112 | CX_TEST_ASSERT(0 == cxListInsertUnique(list, &d5)); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2113 | if (isptrlist) { |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2114 | inserted = cxListInsertUniqueArray(list, d6ptr, 6); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2115 | } else { |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2116 | inserted = cxListInsertUniqueArray(list, d6a, 6); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2117 | } |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2118 | CX_TEST_ASSERT(inserted == 6); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2119 | if (isptrlist) { |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2120 | inserted = cxListInsertUniqueArray(list, d7ptr, 6); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2121 | } else { |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2122 | inserted = cxListInsertUniqueArray(list, d7a, 6); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2123 | } |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2124 | CX_TEST_ASSERT(inserted == 6); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2125 | CX_TEST_ASSERT(0 == cxListInsertUnique(list, &d8)); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2126 | CX_TEST_ASSERT(0 == cxListInsertUnique(list, &d9)); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2127 | if (isptrlist) { |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2128 | inserted = cxListInsertUniqueArray(list, d10ptr, 3); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2129 | } else { |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2130 | inserted = cxListInsertUniqueArray(list, d10a, 3); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2131 | } |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2132 | CX_TEST_ASSERT(inserted == 3); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2133 | CX_TEST_ASSERT(cxListSize(list) == 19); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2134 | for (size_t i = 0; i < 19; i++) { |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2135 | CX_TEST_ASSERT(*(int *) cxListAt(list, i) == expected[i]); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2136 | } |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2137 | }) |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
2138 | |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2139 | roll_out_test_combos(remove, { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2140 | const size_t testdata_len = 32; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2141 | 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
|
2142 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2143 | 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
|
2144 | 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
|
2145 | 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
|
2146 | 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
|
2147 | 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
|
2148 | 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
|
2149 | 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
|
2150 | 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
|
2151 | 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
|
2152 | 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
|
2153 | 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
|
2154 | 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
|
2155 | 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
|
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 | |
|
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
|
2159 | 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
|
2160 | 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
|
2161 | 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
|
2162 | 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
|
2163 | 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
|
2164 | } |
|
b4c3e0b4c3d5
add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents:
1294
diff
changeset
|
2165 | 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
|
2166 | 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
|
2167 | 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
|
2168 | 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
|
2169 | 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
|
2170 | 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
|
2171 | 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
|
2172 | 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
|
2173 | 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
|
2174 | 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
|
2175 | 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
|
2176 | 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
|
2177 | 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
|
2178 | 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
|
2179 | 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
|
2180 | 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
|
2181 | |
|
b4c3e0b4c3d5
add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents:
1294
diff
changeset
|
2182 | *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
|
2183 | 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
|
2184 | 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
|
2185 | 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
|
2186 | 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
|
2187 | 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
|
2188 | 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
|
2189 | } 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
|
2190 | 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
|
2191 | 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
|
2192 | 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
|
2193 | 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
|
2194 | 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
|
2195 | 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
|
2196 | 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
|
2197 | 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
|
2198 | 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
|
2199 | 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
|
2200 | 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
|
2201 | 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
|
2202 | 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
|
2203 | 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
|
2204 | 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
|
2205 | |
|
b4c3e0b4c3d5
add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents:
1294
diff
changeset
|
2206 | 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
|
2207 | 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
|
2208 | 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
|
2209 | 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
|
2210 | 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
|
2211 | 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
|
2212 | 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
|
2213 | } |
|
b4c3e0b4c3d5
add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents:
1294
diff
changeset
|
2214 | }) |
|
b4c3e0b4c3d5
add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents:
1294
diff
changeset
|
2215 | |
|
961
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2216 | static unsigned test_remove_array_destr_ctr; |
|
985
68754c7de906
major refactoring of attributes
Mike Becker <universe@uap-core.de>
parents:
962
diff
changeset
|
2217 | 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
|
2218 | test_remove_array_destr_ctr++; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2219 | } |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2220 | |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2221 | roll_out_test_combos(remove_array, { |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2222 | const size_t testdata_len = 32; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2223 | 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
|
2224 | cxDefineDestructor(list, test_remove_array_destr); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2225 | test_remove_array_destr_ctr = 0; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2226 | |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2227 | // 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
|
2228 | int targete[8]; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2229 | int *targetp[8]; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2230 | memset(targete, 0, sizeof(targete)); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2231 | memset(targetp, 0, sizeof(targetp)); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2232 | void *target = isptrlist ? (void*) targetp : targete; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2233 | 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
|
2234 | 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
|
2235 | CX_TEST_ASSERT(24 == cxListSize(list)); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2236 | 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
|
2237 | 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
|
2238 | } |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2239 | 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
|
2240 | 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
|
2241 | } |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2242 | 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
|
2243 | if (isptrlist) { |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2244 | 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
|
2245 | } else { |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2246 | 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
|
2247 | } |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2248 | } |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2249 | |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2250 | // now, just remove - destructor must be called |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2251 | 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
|
2252 | 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
|
2253 | CX_TEST_ASSERT(16 == cxListSize(list)); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2254 | 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
|
2255 | 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
|
2256 | } |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2257 | 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
|
2258 | 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
|
2259 | } |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2260 | |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2261 | // finally, remove and get out of bounds |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2262 | test_remove_array_destr_ctr = 0; |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2263 | memset(targete, 0, sizeof(targete)); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2264 | memset(targetp, 0, sizeof(targetp)); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2265 | 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
|
2266 | 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
|
2267 | CX_TEST_ASSERT(12 == cxListSize(list)); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2268 | 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
|
2269 | 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
|
2270 | } |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2271 | 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
|
2272 | 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
|
2273 | } |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2274 | 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
|
2275 | if (isptrlist) { |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2276 | 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
|
2277 | } else { |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2278 | 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
|
2279 | } |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2280 | } |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2281 | 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
|
2282 | 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
|
2283 | CX_TEST_ASSERT(targetp[i] == NULL); |
|
961
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2284 | } else { |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2285 | CX_TEST_ASSERT(targete[i] == 0); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2286 | } |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2287 | } |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2288 | |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2289 | free(testdata); |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2290 | }) |
|
bc8b7c5f55fb
increase list test coverage - fixes #454
Mike Becker <universe@uap-core.de>
parents:
912
diff
changeset
|
2291 | |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2292 | roll_out_test_combos(find_remove, { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2293 | const size_t testdata_len = 250; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2294 | 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
|
2295 | |
|
1162
e3bb67b72d33
remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents:
1113
diff
changeset
|
2296 | 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
|
2297 | int val = testdata[exp]; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2298 | // 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
|
2299 | 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
|
2300 | if (testdata[i] == val) { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2301 | exp = i; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2302 | break; |
|
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 | 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
|
2306 | 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
|
2307 | 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
|
2308 | 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
|
2309 | 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
|
2310 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2311 | int notinlist = -1; |
|
1162
e3bb67b72d33
remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents:
1113
diff
changeset
|
2312 | CX_TEST_ASSERT(cxListFindRemove(list, ¬inlist) == cxListSize(list)); |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2313 | 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
|
2314 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2315 | free(testdata); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2316 | }) |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2317 | |
|
1163
68ff0839bc6a
optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents:
1162
diff
changeset
|
2318 | 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
|
2319 | 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
|
2320 | 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
|
2321 | 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
|
2322 | cxListSort(list); |
|
68ff0839bc6a
optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents:
1162
diff
changeset
|
2323 | |
|
68ff0839bc6a
optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents:
1162
diff
changeset
|
2324 | 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
|
2325 | 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
|
2326 | // 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
|
2327 | 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
|
2328 | 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
|
2329 | exp = i; |
|
68ff0839bc6a
optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents:
1162
diff
changeset
|
2330 | break; |
|
68ff0839bc6a
optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents:
1162
diff
changeset
|
2331 | } |
|
68ff0839bc6a
optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents:
1162
diff
changeset
|
2332 | } |
|
68ff0839bc6a
optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents:
1162
diff
changeset
|
2333 | 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
|
2334 | 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
|
2335 | 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
|
2336 | 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
|
2337 | 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
|
2338 | |
|
68ff0839bc6a
optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents:
1162
diff
changeset
|
2339 | int notinlist = -1; |
|
68ff0839bc6a
optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents:
1162
diff
changeset
|
2340 | CX_TEST_ASSERT(cxListFindRemove(list, ¬inlist) == cxListSize(list)); |
|
68ff0839bc6a
optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents:
1162
diff
changeset
|
2341 | 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
|
2342 | |
|
68ff0839bc6a
optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents:
1162
diff
changeset
|
2343 | free(testdata); |
|
68ff0839bc6a
optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents:
1162
diff
changeset
|
2344 | }) |
|
68ff0839bc6a
optimize cx_arl_find_remove for sorted arrays - fixes #547
Mike Becker <universe@uap-core.de>
parents:
1162
diff
changeset
|
2345 | |
|
1294
30d7ae76c76a
add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents:
1287
diff
changeset
|
2346 | roll_out_test_combos(contains, { |
|
30d7ae76c76a
add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents:
1287
diff
changeset
|
2347 | int a = 37; |
|
30d7ae76c76a
add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents:
1287
diff
changeset
|
2348 | int b = 42; |
|
30d7ae76c76a
add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents:
1287
diff
changeset
|
2349 | int c = 55; |
|
30d7ae76c76a
add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents:
1287
diff
changeset
|
2350 | cxListAdd(list, &a); |
|
30d7ae76c76a
add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents:
1287
diff
changeset
|
2351 | cxListAdd(list, &b); |
|
30d7ae76c76a
add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents:
1287
diff
changeset
|
2352 | cxListAdd(list, &c); |
|
30d7ae76c76a
add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents:
1287
diff
changeset
|
2353 | int x; |
|
30d7ae76c76a
add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents:
1287
diff
changeset
|
2354 | x = 37; |
|
30d7ae76c76a
add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents:
1287
diff
changeset
|
2355 | 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
|
2356 | x = 42; |
|
30d7ae76c76a
add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents:
1287
diff
changeset
|
2357 | 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
|
2358 | x = 55; |
|
30d7ae76c76a
add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents:
1287
diff
changeset
|
2359 | 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
|
2360 | x = 47; |
|
30d7ae76c76a
add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents:
1287
diff
changeset
|
2361 | 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
|
2362 | }) |
|
30d7ae76c76a
add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents:
1287
diff
changeset
|
2363 | |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2364 | roll_out_test_combos(clear, { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2365 | 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
|
2366 | CX_TEST_ASSERT(cxListSize(list) > 0); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2367 | cxListClear(list); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2368 | CX_TEST_ASSERT(cxListSize(list) == 0); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2369 | free(testdata); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2370 | }) |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2371 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2372 | roll_out_test_combos(at, { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2373 | size_t len = 128; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2374 | 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
|
2375 | 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
|
2376 | 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
|
2377 | 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
|
2378 | 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
|
2379 | } |
|
1162
e3bb67b72d33
remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents:
1113
diff
changeset
|
2380 | CX_TEST_ASSERT(!cxListIndexValid(list, len)); |
|
e3bb67b72d33
remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents:
1113
diff
changeset
|
2381 | 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
|
2382 | free(testdata); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2383 | }) |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2384 | |
|
1287
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
2385 | roll_out_test_combos(set, { |
|
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
2386 | // Add some values |
|
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
2387 | int v1 = 42; |
|
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
2388 | cxListAdd(list, &v1); |
|
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
2389 | int v2 = 100; |
|
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
2390 | cxListAdd(list, &v2); |
|
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
2391 | int v3 = 47; |
|
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
2392 | cxListAdd(list, &v3); |
|
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
2393 | |
|
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
2394 | // Change the first element |
|
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
2395 | int v1new = 99; |
|
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
2396 | 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
|
2397 | CX_TEST_ASSERT(*(int *) cxListFirst(list) == 99); |
|
1287
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
2398 | |
|
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
2399 | // Change the last element |
|
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
2400 | int v3new = 101; |
|
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
2401 | 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
|
2402 | CX_TEST_ASSERT(*(int *) cxListLast(list) == 101); |
|
1287
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
2403 | |
|
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
2404 | // Try index out of bounds |
|
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
2405 | int oob = 1337; |
|
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
2406 | CX_TEST_ASSERT(cxListSet(list, 3, &oob) != 0); |
|
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
2407 | }) |
|
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
2408 | |
|
875
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
2409 | 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
|
2410 | 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
|
2411 | 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
|
2412 | |
|
962
cd418898af5c
remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents:
961
diff
changeset
|
2413 | 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
|
2414 | cxListAdd(list, &original[i]); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2415 | } |
|
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 | 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
|
2418 | 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
|
2419 | 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
|
2420 | 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
|
2421 | 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
|
2422 | 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
|
2423 | 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
|
2424 | 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
|
2425 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2426 | 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
|
2427 | 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
|
2428 | 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
|
2429 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2430 | CxIterator iter = cxListIterator(list); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2431 | cx_foreach(int*, e, iter) { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2432 | 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
|
2433 | } |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2434 | iter = cxListBackwardsIterator(list); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2435 | cx_foreach(int*, e, iter) { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2436 | 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
|
2437 | } |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2438 | }) |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2439 | |
|
807
c8d692131b1e
remove flags to disable SBO in tests - fix #343 fix #358
Mike Becker <universe@uap-core.de>
parents:
804
diff
changeset
|
2440 | 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
|
2441 | CxTestingAllocator talloc; |
|
1003c014bf92
fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents:
1319
diff
changeset
|
2442 | 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
|
2443 | 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
|
2444 | CX_TEST_DO { |
|
1003c014bf92
fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents:
1319
diff
changeset
|
2445 | 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
|
2446 | 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
|
2447 | |
|
1003c014bf92
fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents:
1319
diff
changeset
|
2448 | 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
|
2449 | 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
|
2450 | obj[0] = c; |
|
1003c014bf92
fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents:
1319
diff
changeset
|
2451 | 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
|
2452 | cxListAdd(list, obj); |
|
1003c014bf92
fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents:
1319
diff
changeset
|
2453 | } |
|
1003c014bf92
fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents:
1319
diff
changeset
|
2454 | free(obj); |
|
1003c014bf92
fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents:
1319
diff
changeset
|
2455 | |
|
1003c014bf92
fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents:
1319
diff
changeset
|
2456 | 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
|
2457 | 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
|
2458 | 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
|
2459 | 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
|
2460 | 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
|
2461 | 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
|
2462 | 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
|
2463 | 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
|
2464 | 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
|
2465 | |
|
1003c014bf92
fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents:
1319
diff
changeset
|
2466 | cxListFree(list); |
|
1003c014bf92
fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents:
1319
diff
changeset
|
2467 | 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
|
2468 | } |
|
1003c014bf92
fix stack buffer overflow in arl_swap_no_sbo test
Mike Becker <universe@uap-core.de>
parents:
1319
diff
changeset
|
2469 | 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
|
2470 | } |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2471 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2472 | roll_out_test_combos(find, { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2473 | const size_t testdata_len = 500; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2474 | 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
|
2475 | |
|
962
cd418898af5c
remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents:
961
diff
changeset
|
2476 | 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
|
2477 | 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
|
2478 | int val = testdata[exp]; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2479 | // 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
|
2480 | 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
|
2481 | if (testdata[i] == val) { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2482 | exp = i; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2483 | break; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2484 | } |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2485 | } |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2486 | 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
|
2487 | } |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2488 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2489 | int notinlist = -1; |
|
1162
e3bb67b72d33
remove dependency to ssize_t - fixes #552
Mike Becker <universe@uap-core.de>
parents:
1113
diff
changeset
|
2490 | CX_TEST_ASSERT(cxListFind(list, ¬inlist) == cxListSize(list)); |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2491 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2492 | free(testdata); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2493 | }) |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2494 | |
|
875
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
2495 | 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
|
2496 | const size_t testdata_len = 250; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2497 | 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
|
2498 | 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
|
2499 | 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
|
2500 | 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
|
2501 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2502 | cxListSort(list); |
|
962
cd418898af5c
remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents:
961
diff
changeset
|
2503 | 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
|
2504 | 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
|
2505 | } |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2506 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2507 | free(expected); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2508 | free(testdata); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2509 | }) |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2510 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2511 | roll_out_test_combos(reverse, { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2512 | const size_t testdata_len = 50; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2513 | 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
|
2514 | cxListReverse(list); |
|
962
cd418898af5c
remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents:
961
diff
changeset
|
2515 | 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
|
2516 | 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
|
2517 | } |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2518 | free(testdata); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2519 | }) |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2520 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2521 | roll_out_test_combos(iterator, { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2522 | const size_t len = 50; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2523 | 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
|
2524 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2525 | 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
|
2526 | 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
|
2527 | 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
|
2528 | size_t i = 0; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2529 | cx_foreach(int*, x, iter) { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2530 | CX_TEST_ASSERT(i == iter.index); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2531 | 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
|
2532 | i++; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2533 | } |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2534 | CX_TEST_ASSERT(i == cxListSize(list)); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2535 | iter = cxListBackwardsIterator(list); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2536 | cx_foreach(int*, x, iter) { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2537 | 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
|
2538 | 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
|
2539 | i--; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2540 | } |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2541 | CX_TEST_ASSERT(i == 0); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2542 | i = len / 2; |
|
1429
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
2543 | CxIterator mut_iter = cxListIteratorAt(list, i); |
|
856
6bbbf219251d
fix name of collection base member (to avoid base.base)
Mike Becker <universe@uap-core.de>
parents:
855
diff
changeset
|
2544 | 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
|
2545 | 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
|
2546 | size_t j = 0; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2547 | cx_foreach(int*, x, mut_iter) { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2548 | 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
|
2549 | CX_TEST_ASSERT(*x == testdata[i]); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2550 | 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
|
2551 | i++; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2552 | j++; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2553 | } |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2554 | CX_TEST_ASSERT(i == len); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2555 | i = len / 2; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2556 | j = 0; |
|
1429
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
2557 | mut_iter = cxListBackwardsIteratorAt(list, i - 1); |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2558 | cx_foreach(int*, x, mut_iter) { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2559 | 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
|
2560 | 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
|
2561 | 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
|
2562 | i--; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2563 | j++; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2564 | } |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2565 | CX_TEST_ASSERT(i == 0); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2566 | 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
|
2567 | 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
|
2568 | 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
|
2569 | 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
|
2570 | } |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2571 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2572 | free(testdata); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2573 | }) |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2574 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2575 | 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
|
2576 | 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
|
2577 | 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
|
2578 | cxListAdd(list, &fivenums[i]); |
|
cd418898af5c
remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents:
961
diff
changeset
|
2579 | } |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2580 | 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
|
2581 | |
|
1429
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
2582 | CxIterator iter = cxListIteratorAt(list, 2); |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2583 | CX_TEST_ASSERT(cxIteratorValid(iter)); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2584 | CX_TEST_ASSERT(iter.index == 2); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2585 | 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
|
2586 | 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
|
2587 | cxListInsertAfter(&iter, &newdata[0]); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2588 | CX_TEST_ASSERT(cxIteratorValid(iter)); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2589 | CX_TEST_ASSERT(iter.index == 2); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2590 | 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
|
2591 | 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
|
2592 | cxListInsertBefore(&iter, &newdata[1]); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2593 | CX_TEST_ASSERT(cxIteratorValid(iter)); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2594 | CX_TEST_ASSERT(iter.index == 3); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2595 | 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
|
2596 | 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
|
2597 | |
|
1429
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
2598 | iter = cxListIterator(list); |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2599 | cxListInsertBefore(&iter, &newdata[2]); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2600 | CX_TEST_ASSERT(cxIteratorValid(iter)); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2601 | CX_TEST_ASSERT(iter.index == 1); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2602 | 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
|
2603 | CX_TEST_ASSERT(iter.elem_count == 8); |
|
1429
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
2604 | iter = cxListIteratorAt(list, cxListSize(list)); |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2605 | cxListInsertBefore(&iter, &newdata[3]); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2606 | CX_TEST_ASSERT(!cxIteratorValid(iter)); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2607 | 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
|
2608 | CX_TEST_ASSERT(iter.elem_count == 9); |
|
1429
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
2609 | iter = cxListIteratorAt(list, cxListSize(list)); |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2610 | cxListInsertAfter(&iter, &newdata[4]); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2611 | CX_TEST_ASSERT(!cxIteratorValid(iter)); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2612 | 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
|
2613 | 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
|
2614 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2615 | 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
|
2616 | 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
|
2617 | 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
|
2618 | } |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2619 | }) |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2620 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2621 | 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
|
2622 | 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
|
2623 | int x = 42; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2624 | cxListAdd(left, &x); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2625 | 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
|
2626 | 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
|
2627 | 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
|
2628 | cxListAdd(right, &x); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2629 | 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
|
2630 | 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
|
2631 | int a = 5, b = 10; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2632 | cxListInsert(left, 15, &a); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2633 | cxListInsert(right, 15, &b); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2634 | 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
|
2635 | 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
|
2636 | 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
|
2637 | *(int *) cxListAt(left, 15) = 10; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2638 | 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
|
2639 | } |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2640 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2641 | #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
|
2642 | roll_out_test_combos(compare_##suffix, { \ |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2643 | const size_t len = 47; \ |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2644 | 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
|
2645 | CxList *other = otherctr; \ |
|
962
cd418898af5c
remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents:
961
diff
changeset
|
2646 | 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
|
2647 | 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
|
2648 | cxListFree(other); \ |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2649 | free(testdata); \ |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2650 | }) |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2651 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2652 | roll_out_compare_tests( |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2653 | 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
|
2654 | ) |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2655 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2656 | roll_out_compare_tests( |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2657 | 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
|
2658 | ) |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2659 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2660 | roll_out_compare_tests( |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2661 | 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
|
2662 | ) |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2663 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2664 | roll_out_compare_tests( |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2665 | 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
|
2666 | ) |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2667 | |
|
875
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
2668 | 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
|
2669 | const size_t len = 33; |
|
cd418898af5c
remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents:
961
diff
changeset
|
2670 | 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
|
2671 | 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
|
2672 | do_set_default_class_funcs(other); |
|
cd418898af5c
remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents:
961
diff
changeset
|
2673 | 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
|
2674 | 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
|
2675 | cxListFree(other); |
|
962
cd418898af5c
remove cx_for_n() macro - fixes #467
Mike Becker <universe@uap-core.de>
parents:
961
diff
changeset
|
2676 | free(testdata); |
|
875
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
2677 | }) |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
2678 | |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2679 | static unsigned destr_test_ctr; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2680 | static int destr_last_value; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2681 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2682 | 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
|
2683 | int *ptr = data; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2684 | destr_last_value = *ptr; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2685 | *ptr = destr_last_value + 1; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2686 | destr_test_ctr++; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2687 | } |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2688 | |
|
985
68754c7de906
major refactoring of attributes
Mike Becker <universe@uap-core.de>
parents:
962
diff
changeset
|
2689 | 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
|
2690 | simple_destr_test_fun(data); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2691 | } |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2692 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2693 | 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
|
2694 | 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
|
2695 | 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
|
2696 | |
|
1111
78eeeb950883
remove API for changing the store_pointer property after list creation
Mike Becker <universe@uap-core.de>
parents:
1024
diff
changeset
|
2697 | 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
|
2698 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2699 | cxListRemove(list, 15); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2700 | 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
|
2701 | 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
|
2702 | 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
|
2703 | cxListRemove(list, 47); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2704 | 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
|
2705 | 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
|
2706 | 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
|
2707 | |
|
1429
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
2708 | CxIterator iter = cxListIteratorAt(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
|
2709 | 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
|
2710 | cxIteratorNext(iter); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2711 | 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
|
2712 | 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
|
2713 | 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
|
2714 | cxIteratorFlagRemoval(iter); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2715 | 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
|
2716 | 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
|
2717 | 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
|
2718 | 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
|
2719 | 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
|
2720 | |
|
1429
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
Mike Becker <universe@uap-core.de>
parents:
1428
diff
changeset
|
2721 | iter = cxListBackwardsIteratorAt(list, 5); |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2722 | cxIteratorNext(iter); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2723 | 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
|
2724 | 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
|
2725 | 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
|
2726 | cxIteratorFlagRemoval(iter); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2727 | 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
|
2728 | 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
|
2729 | 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
|
2730 | 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
|
2731 | 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
|
2732 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2733 | cxListClear(list); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2734 | 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
|
2735 | 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
|
2736 | } |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2737 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2738 | roll_out_test_combos(simple_destr, { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2739 | const size_t len = 60; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2740 | 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
|
2741 | 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
|
2742 | 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
|
2743 | free(testdata); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2744 | }) |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2745 | |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2746 | roll_out_test_combos(advanced_destr, { |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2747 | const size_t len = 75; |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2748 | 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
|
2749 | 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
|
2750 | 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
|
2751 | free(testdata); |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2752 | }) |
|
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
2753 | |
|
1485
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2754 | roll_out_test_combos(reserve_and_shrink, { |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2755 | // there is no actual observable behavior, |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2756 | // so we just check that the functions return zero |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2757 | int *td1 = int_test_data_added_to_list(list, isptrlist, 500); |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2758 | CX_TEST_ASSERT(0 == cxListReserve(list, 200)); |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2759 | CX_TEST_ASSERT(0 == cxListReserve(list, 1000)); |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2760 | int *td2 = int_test_data_added_to_list(list, isptrlist, 500); |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2761 | int *td3 = int_test_data_added_to_list(list, isptrlist, 500); |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2762 | CX_TEST_ASSERT(0 == cxListShrink(list)); |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2763 | size_t i = 0; |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2764 | for (size_t j = 0 ; j < 500 ; j++, i++) { |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2765 | CX_TEST_ASSERT(*(int*)cxListAt(list, i) == td1[j]); |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2766 | } |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2767 | for (size_t j = 0 ; j < 500 ; j++, i++) { |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2768 | CX_TEST_ASSERT(*(int*)cxListAt(list, i) == td2[j]); |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2769 | } |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2770 | for (size_t j = 0 ; j < 500 ; j++, i++) { |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2771 | CX_TEST_ASSERT(*(int*)cxListAt(list, i) == td3[j]); |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2772 | } |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2773 | free(td1); |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2774 | free(td2); |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2775 | free(td3); |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2776 | }) |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
2777 | |
|
1462
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2778 | static bool test_clone_func_max_enabled = false; |
|
1443
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2779 | static unsigned test_clone_func_max_clones; |
|
1436
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2780 | static void *test_clone_func(void *dest, const void *src, const CxAllocator *al, void *data) { |
|
1462
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2781 | if (test_clone_func_max_enabled) { |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2782 | if (test_clone_func_max_clones == 0) return NULL; |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2783 | test_clone_func_max_clones--; |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2784 | } |
|
1443
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2785 | |
|
1436
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2786 | if (dest == NULL) { |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2787 | dest = cxMalloc(al, sizeof(int)); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2788 | } |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2789 | |
|
1462
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2790 | int z = 0; |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2791 | if (data == NULL) { |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2792 | data = &z; |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2793 | } |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2794 | |
|
1436
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2795 | *((int*) dest) = *(int*) src + *(int*) data; |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2796 | (*(int*) data)++; |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2797 | |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2798 | return dest; |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2799 | } |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2800 | |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2801 | static CX_TEST_SUBROUTINE(verify_clone, CxList *target, CxList *source, bool target_isptrlist) { |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2802 | // testing allocator for the target elements if target_isptrlist is true |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2803 | CxTestingAllocator talloc; |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2804 | cx_testing_allocator_init(&talloc); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2805 | CxAllocator *testing_alloc = &talloc.base; |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2806 | |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2807 | // register a destructor for the target list if it is storing pointers |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2808 | if (target_isptrlist) { |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2809 | cxDefineAdvancedDestructor(target, cxFree, testing_alloc); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2810 | } |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2811 | |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2812 | // fill the source list |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2813 | int source_data[8] = array_init(1, 2, 3, 4, 5, 6, 7, 8); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2814 | for (unsigned i = 0 ; i < 8 ; i++) { |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2815 | cxListAdd(source, &source_data[i]); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2816 | } |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2817 | |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2818 | // add some initial data to the target |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2819 | int initial_data[4] = array_init(1, 2, 3, 4); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2820 | for (unsigned i = 0; i < 4; i++) { |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2821 | if (target_isptrlist) { |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2822 | int *x = cxMalloc(testing_alloc, sizeof(int)); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2823 | *x = initial_data[i]; |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2824 | cxListAdd(target, x); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2825 | } else { |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2826 | cxListAdd(target, &initial_data[i]); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2827 | } |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2828 | } |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2829 | |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2830 | // perform the test |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2831 | int expected_data[12] = array_init(1, 2, 3, 4, 1, 3, 5, 7, 9, 11, 13, 15); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2832 | int c = 0; |
|
1444
dd9dcbb39c2f
make clone functions return int instead of size_t
Mike Becker <universe@uap-core.de>
parents:
1443
diff
changeset
|
2833 | CX_TEST_ASSERT(0 == cxListClone(target, source, test_clone_func, testing_alloc, &c)); |
|
1436
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2834 | CX_TEST_ASSERT(c == 8); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2835 | CX_TEST_ASSERT(cxListSize(target) == 12); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2836 | CX_TEST_ASSERT(cxListSize(source) == 8); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2837 | for (unsigned i = 0 ; i < 12 ; i++) { |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2838 | CX_TEST_ASSERT(*(int*)cxListAt(target, i) == expected_data[i]); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2839 | } |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2840 | for (unsigned i = 0 ; i < 8 ; i++) { |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2841 | CX_TEST_ASSERT(*(int*)cxListAt(source, i) == source_data[i]); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2842 | } |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2843 | cxListFree(target); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2844 | CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2845 | cx_testing_allocator_destroy(&talloc); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2846 | } |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2847 | |
|
1443
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2848 | static CX_TEST_SUBROUTINE(verify_clone_alloc_fail, CxList *target, CxList *source, bool target_isptrlist) { |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2849 | // testing allocator for the target elements if target_isptrlist is true |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2850 | CxTestingAllocator talloc; |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2851 | cx_testing_allocator_init(&talloc); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2852 | CxAllocator *testing_alloc = &talloc.base; |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2853 | |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2854 | // register a destructor for the target list if it is storing pointers |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2855 | if (target_isptrlist) { |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2856 | cxDefineAdvancedDestructor(target, cxFree, testing_alloc); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2857 | } |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2858 | |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2859 | // fill the source list |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2860 | int source_data[8] = array_init(1, 2, 3, 4, 5, 6, 7, 8); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2861 | for (unsigned i = 0 ; i < 8 ; i++) { |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2862 | cxListAdd(source, &source_data[i]); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2863 | } |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2864 | |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2865 | // add some initial data to the target |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2866 | int initial_data[4] = array_init(1, 2, 3, 4); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2867 | for (unsigned i = 0; i < 4; i++) { |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2868 | if (target_isptrlist) { |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2869 | int *x = cxMalloc(testing_alloc, sizeof(int)); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2870 | *x = initial_data[i]; |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2871 | cxListAdd(target, x); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2872 | } else { |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2873 | cxListAdd(target, &initial_data[i]); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2874 | } |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2875 | } |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2876 | |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2877 | // perform the test |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2878 | int expected_data[9] = array_init(1, 2, 3, 4, 1, 3, 5, 7, 9); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2879 | int c = 0; |
|
1462
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2880 | test_clone_func_max_enabled = true; |
|
1443
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2881 | test_clone_func_max_clones = 5; |
|
1444
dd9dcbb39c2f
make clone functions return int instead of size_t
Mike Becker <universe@uap-core.de>
parents:
1443
diff
changeset
|
2882 | CX_TEST_ASSERT(0 != cxListClone(target, source, test_clone_func, testing_alloc, &c)); |
|
1462
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2883 | test_clone_func_max_enabled = false; |
|
1443
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2884 | CX_TEST_ASSERT(c == 5); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2885 | CX_TEST_ASSERT(cxListSize(target) == 9); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2886 | CX_TEST_ASSERT(cxListSize(source) == 8); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2887 | for (unsigned i = 0 ; i < 9 ; i++) { |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2888 | CX_TEST_ASSERT(*(int*)cxListAt(target, i) == expected_data[i]); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2889 | } |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2890 | for (unsigned i = 0 ; i < 8 ; i++) { |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2891 | CX_TEST_ASSERT(*(int*)cxListAt(source, i) == source_data[i]); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2892 | } |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2893 | cxListFree(target); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2894 | CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2895 | cx_testing_allocator_destroy(&talloc); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2896 | } |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2897 | |
|
1436
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2898 | roll_out_test_combos(clone_into_arl, { |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2899 | CxList *target = cxArrayListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int), 8); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2900 | CX_TEST_CALL_SUBROUTINE(verify_clone, target, list, false); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2901 | }) |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2902 | |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2903 | roll_out_test_combos(clone_into_ll, { |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2904 | CxList *target = cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int)); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2905 | CX_TEST_CALL_SUBROUTINE(verify_clone, target, list, false); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2906 | }) |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2907 | |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2908 | roll_out_test_combos(clone_into_parl, { |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2909 | CxList *target = cxArrayListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS, 8); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2910 | CX_TEST_CALL_SUBROUTINE(verify_clone, target, list, true); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2911 | }) |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2912 | |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2913 | roll_out_test_combos(clone_into_pll, { |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2914 | CxList *target = cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2915 | CX_TEST_CALL_SUBROUTINE(verify_clone, target, list, true); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2916 | }) |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
2917 | |
|
1443
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2918 | roll_out_test_combos(clone_alloc_fail_into_arl, { |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2919 | CxList *target = cxArrayListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int), 8); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2920 | CX_TEST_CALL_SUBROUTINE(verify_clone_alloc_fail, target, list, false); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2921 | }) |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2922 | |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2923 | roll_out_test_combos(clone_alloc_fail_into_ll, { |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2924 | CxList *target = cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int)); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2925 | CX_TEST_CALL_SUBROUTINE(verify_clone_alloc_fail, target, list, false); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2926 | }) |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2927 | |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2928 | roll_out_test_combos(clone_alloc_fail_into_parl, { |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2929 | CxList *target = cxArrayListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS, 8); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2930 | CX_TEST_CALL_SUBROUTINE(verify_clone_alloc_fail, target, list, true); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2931 | }) |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2932 | |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2933 | roll_out_test_combos(clone_alloc_fail_into_pll, { |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2934 | CxList *target = cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2935 | CX_TEST_CALL_SUBROUTINE(verify_clone_alloc_fail, target, list, true); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2936 | }) |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
2937 | |
|
1462
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2938 | static CX_TEST_SUBROUTINE(verify_difference, bool sorted, bool alloc_fail) { |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2939 | CxTestingAllocator talloc; |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2940 | cx_testing_allocator_init(&talloc); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2941 | |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2942 | CxList *dst = cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2943 | cxDefineAdvancedDestructor(dst, cxFree, &talloc); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2944 | CxList *minuend = cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int)); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2945 | CxList *subtrahend = cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int)); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2946 | |
|
1466
a58c65d31342
difference shall not check already present items in the destination - fixes #753
Mike Becker <universe@uap-core.de>
parents:
1462
diff
changeset
|
2947 | int dst_data[] = {47, 178, 176, 83}; |
|
1462
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2948 | int minuend_data[] = { |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2949 | 153, 106, 171, 130, 74, 173, 150, 94, 27, 92, 70, 175, 200, 20, 29, 161, 88, 116, 71, 53, 199, 124, 32, 9, 76, |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2950 | 151, 33, 51, 37, 65, 176, 49, 12, 162, 28, 85, 4, 177, 198, 54, 109, 188, 44, 77, 194, 63, 41, 129, 97, 83 |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2951 | }; |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2952 | int subtrahend_data[] = { |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2953 | 75, 137, 176, 111, 85, 27, 197, 141, 46, 103, 69, 146, 49, 79, 63, 130, 154, 45, 38, 139, 193, 90, 64, 142, 115, |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2954 | 120, 78, 100, 101, 42, 21, 1, 161, 10, 114, 198, 181, 178, 136, 188, 59, 41, 73, 99, 151, 144, 118, 53, 199, 71 |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2955 | }; |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2956 | |
|
1466
a58c65d31342
difference shall not check already present items in the destination - fixes #753
Mike Becker <universe@uap-core.de>
parents:
1462
diff
changeset
|
2957 | for (unsigned i = 0 ; i < cx_nmemb(dst_data) ; i++) { |
|
a58c65d31342
difference shall not check already present items in the destination - fixes #753
Mike Becker <universe@uap-core.de>
parents:
1462
diff
changeset
|
2958 | int *x = cxMalloc(&talloc.base, sizeof(int)); |
|
a58c65d31342
difference shall not check already present items in the destination - fixes #753
Mike Becker <universe@uap-core.de>
parents:
1462
diff
changeset
|
2959 | *x = dst_data[i]; |
|
a58c65d31342
difference shall not check already present items in the destination - fixes #753
Mike Becker <universe@uap-core.de>
parents:
1462
diff
changeset
|
2960 | cxListAdd(dst, x); |
|
1462
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2961 | } |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2962 | cxListAddArray(minuend, minuend_data, 50); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2963 | cxListAddArray(subtrahend, subtrahend_data, 50); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2964 | if (sorted) { |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2965 | cxListSort(dst); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2966 | cxListSort(minuend); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2967 | cxListSort(subtrahend); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2968 | } |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2969 | |
|
1466
a58c65d31342
difference shall not check already present items in the destination - fixes #753
Mike Becker <universe@uap-core.de>
parents:
1462
diff
changeset
|
2970 | // expected 36 elements in the difference |
|
a58c65d31342
difference shall not check already present items in the destination - fixes #753
Mike Becker <universe@uap-core.de>
parents:
1462
diff
changeset
|
2971 | size_t expected_len = 40; |
|
1462
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2972 | int expected_unsorted[] = { |
|
1466
a58c65d31342
difference shall not check already present items in the destination - fixes #753
Mike Becker <universe@uap-core.de>
parents:
1462
diff
changeset
|
2973 | 47, 178, 176, 83, |
|
1462
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2974 | 153, 106, 171, 74, 173, 150, 94, 92, 70, 175, 200, 20, 29, 88, 116, 124, 32, 9, 76, 33, 51, 37, 65, 12, 162, |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2975 | 28, 4, 177, 54, 109, 44, 77, 194, 129, 97, 83 |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2976 | }; |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2977 | int expected_sorted[] = { |
|
1466
a58c65d31342
difference shall not check already present items in the destination - fixes #753
Mike Becker <universe@uap-core.de>
parents:
1462
diff
changeset
|
2978 | 47, 83, 176, 178, |
|
1462
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2979 | 4, 9, 12, 20, 28, 29, 32, 33, 37, 44, 51, 54, 65, 70, 74, 76, 77, 83, 88, 92, 94, 97, 106, 109, 116, 124, 129, |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2980 | 150, 153, 162, 171, 173, 175, 177, 194, 200 |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2981 | }; |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2982 | |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2983 | if (alloc_fail) { |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2984 | test_clone_func_max_enabled = true; |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2985 | test_clone_func_max_clones = 30; |
|
1466
a58c65d31342
difference shall not check already present items in the destination - fixes #753
Mike Becker <universe@uap-core.de>
parents:
1462
diff
changeset
|
2986 | expected_len = 34; |
|
1462
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2987 | } |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2988 | CxList *expected = cxArrayListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int), expected_len); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2989 | cxListAddArray(expected, sorted ? expected_sorted : expected_unsorted, expected_len); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2990 | |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2991 | int result = cxListDifference(dst, minuend, subtrahend, test_clone_func, &talloc.base, NULL); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2992 | if (alloc_fail) { |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2993 | CX_TEST_ASSERT(result != 0); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2994 | } else { |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2995 | CX_TEST_ASSERT(result == 0); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2996 | } |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2997 | test_clone_func_max_enabled = false; |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2998 | CX_TEST_ASSERT(expected_len == cxListSize(dst)); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
2999 | CX_TEST_ASSERT(0 == cxListCompare(dst, expected)); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3000 | |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3001 | cxListFree(dst); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3002 | cxListFree(minuend); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3003 | cxListFree(subtrahend); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3004 | cxListFree(expected); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3005 | CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); |
|
1483
97a6cf1520ba
fix some memory management bugs in the map and list tests
Mike Becker <universe@uap-core.de>
parents:
1481
diff
changeset
|
3006 | cx_testing_allocator_destroy(&talloc); |
|
1462
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3007 | } |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3008 | |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3009 | CX_TEST(test_list_difference_unsorted) { |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3010 | CX_TEST_DO { |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3011 | CX_TEST_CALL_SUBROUTINE(verify_difference, false, false); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3012 | } |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3013 | } |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3014 | |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3015 | CX_TEST(test_list_difference_sorted) { |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3016 | CX_TEST_DO { |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3017 | CX_TEST_CALL_SUBROUTINE(verify_difference, true, false); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3018 | } |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3019 | } |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3020 | |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3021 | CX_TEST(test_list_difference_unsorted_alloc_fail) { |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3022 | CX_TEST_DO { |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3023 | CX_TEST_CALL_SUBROUTINE(verify_difference, false, true); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3024 | } |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3025 | } |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3026 | |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3027 | CX_TEST(test_list_difference_sorted_alloc_fail) { |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3028 | CX_TEST_DO { |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3029 | CX_TEST_CALL_SUBROUTINE(verify_difference, true, true); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3030 | } |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3031 | } |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3032 | |
|
1469
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3033 | static CX_TEST_SUBROUTINE(verify_intersection, bool sorted, bool alloc_fail) { |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3034 | CxTestingAllocator talloc; |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3035 | cx_testing_allocator_init(&talloc); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3036 | |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3037 | CxList *dst = cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3038 | cxDefineAdvancedDestructor(dst, cxFree, &talloc); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3039 | CxList *src = cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int)); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3040 | CxList *other = cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int)); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3041 | |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3042 | int dst_data[] = {47, 178, 176, 83}; |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3043 | int src_data[] = { |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3044 | 153, 106, 171, 130, 74, 173, 150, 94, 27, 92, 70, 175, 200, 20, 29, 161, 88, 116, 71, 53, 199, 124, 32, 9, 76, |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3045 | 151, 33, 51, 37, 65, 176, 49, 12, 162, 28, 85, 4, 177, 198, 54, 109, 188, 44, 77, 194, 63, 41, 129, 97, 83 |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3046 | }; |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3047 | int other_data[] = { |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3048 | 75, 137, 176, 111, 85, 27, 197, 141, 46, 103, 69, 146, 49, 79, 63, 130, 154, 45, 38, 139, 193, 90, 64, 142, 115, |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3049 | 120, 78, 100, 101, 42, 21, 1, 161, 10, 114, 198, 181, 178, 136, 188, 59, 41, 73, 99, 151, 144, 118, 53, 199, 71 |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3050 | }; |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3051 | |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3052 | for (unsigned i = 0 ; i < cx_nmemb(dst_data) ; i++) { |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3053 | int *x = cxMalloc(&talloc.base, sizeof(int)); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3054 | *x = dst_data[i]; |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3055 | cxListAdd(dst, x); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3056 | } |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3057 | cxListAddArray(src, src_data, 50); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3058 | cxListAddArray(other, other_data, 50); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3059 | if (sorted) { |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3060 | cxListSort(dst); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3061 | cxListSort(src); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3062 | cxListSort(other); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3063 | } |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3064 | |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3065 | // expected 14 elements in the intersection |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3066 | size_t expected_len = 18; |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3067 | int expected_unsorted[] = { |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3068 | 47, 178, 176, 83, |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3069 | 130, 27, 161, 71, 53, 199, 151, 176, 49, 85, 198, 188, 63, 41 |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3070 | }; |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3071 | int expected_sorted[] = { |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3072 | 47, 83, 176, 178, |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3073 | 27, 41, 49, 53, 63, 71, 85, 130, 151, 161, 176, 188, 198, 199 |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3074 | }; |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3075 | |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3076 | if (alloc_fail) { |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3077 | test_clone_func_max_enabled = true; |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3078 | test_clone_func_max_clones = 10; |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3079 | expected_len = 14; |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3080 | } |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3081 | CxList *expected = cxArrayListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int), expected_len); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3082 | cxListAddArray(expected, sorted ? expected_sorted : expected_unsorted, expected_len); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3083 | |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3084 | int result = cxListIntersection(dst, src, other, test_clone_func, &talloc.base, NULL); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3085 | if (alloc_fail) { |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3086 | CX_TEST_ASSERT(result != 0); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3087 | } else { |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3088 | CX_TEST_ASSERT(result == 0); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3089 | } |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3090 | test_clone_func_max_enabled = false; |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3091 | CX_TEST_ASSERT(expected_len == cxListSize(dst)); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3092 | CX_TEST_ASSERT(0 == cxListCompare(dst, expected)); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3093 | |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3094 | cxListFree(dst); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3095 | cxListFree(src); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3096 | cxListFree(other); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3097 | cxListFree(expected); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3098 | CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); |
|
1483
97a6cf1520ba
fix some memory management bugs in the map and list tests
Mike Becker <universe@uap-core.de>
parents:
1481
diff
changeset
|
3099 | cx_testing_allocator_destroy(&talloc); |
|
1469
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3100 | } |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3101 | |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3102 | CX_TEST(test_list_intersection_unsorted) { |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3103 | CX_TEST_DO { |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3104 | CX_TEST_CALL_SUBROUTINE(verify_intersection, false, false); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3105 | } |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3106 | } |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3107 | |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3108 | CX_TEST(test_list_intersection_sorted) { |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3109 | CX_TEST_DO { |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3110 | CX_TEST_CALL_SUBROUTINE(verify_intersection, true, false); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3111 | } |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3112 | } |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3113 | |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3114 | CX_TEST(test_list_intersection_unsorted_alloc_fail) { |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3115 | CX_TEST_DO { |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3116 | CX_TEST_CALL_SUBROUTINE(verify_intersection, false, true); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3117 | } |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3118 | } |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3119 | |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3120 | CX_TEST(test_list_intersection_sorted_alloc_fail) { |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3121 | CX_TEST_DO { |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3122 | CX_TEST_CALL_SUBROUTINE(verify_intersection, true, true); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3123 | } |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3124 | } |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3125 | |
|
1477
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3126 | static CX_TEST_SUBROUTINE(verify_union, bool sorted, bool alloc_fail) { |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3127 | CxTestingAllocator talloc; |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3128 | cx_testing_allocator_init(&talloc); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3129 | |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3130 | CxList *dst = cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3131 | cxDefineAdvancedDestructor(dst, cxFree, &talloc); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3132 | CxList *src = cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int)); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3133 | CxList *other = cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int)); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3134 | |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3135 | int dst_data[] = {47, 178, 176, 83}; |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3136 | int src_data[] = { |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3137 | 153, 106, 171, 130, 74, 173, 150, 94, 27, 92, 70, 175, 200, 20, 29, 161, 88, 116, 71, 53, 199, 124, 32, 9, 76, |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3138 | 151, 33, 51, 37, 65, 176, 49, 12, 162, 28, 85, 4, 177, 198, 54, 109, 188, 44, 77, 194, 63, 41, 129, 97, 83 |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3139 | }; |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3140 | int other_data[] = { |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3141 | 75, 137, 176, 111, 85, 27, 197, 141, 46, 103, 69, 146, 49, 79, 63, 130, 154, 45, 38, 139, 193, 90, 64, 142, 115, |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3142 | 120, 78, 100, 101, 42, 21, 1, 161, 10, 114, 198, 181, 178, 136, 188, 59, 41, 73, 99, 151, 144, 118, 53, 199, 71 |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3143 | }; |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3144 | |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3145 | for (unsigned i = 0 ; i < cx_nmemb(dst_data) ; i++) { |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3146 | int *x = cxMalloc(&talloc.base, sizeof(int)); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3147 | *x = dst_data[i]; |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3148 | cxListAdd(dst, x); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3149 | } |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3150 | cxListAddArray(src, src_data, 50); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3151 | cxListAddArray(other, other_data, 50); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3152 | if (sorted) { |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3153 | cxListSort(dst); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3154 | cxListSort(src); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3155 | cxListSort(other); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3156 | } |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3157 | |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3158 | // the 14 elements from the intersection should not appear twice in the destination: |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3159 | // 27, 41, 49, 53, 63, 71, 85, 130, 151, 161, 176, 188, 198, 199 |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3160 | // however, the elements that are already in dst may appear twice |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3161 | size_t expected_len = 90; |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3162 | int expected_unsorted[] = { |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3163 | 47, 178, 176, 83, |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3164 | 153, 106, 171, 130, 74, 173, 150, 94, 27, 92, 70, 175, 200, 20, 29, 161, |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3165 | 88, 116, 71, 53, 199, 124, 32, 9, 76, 151, 33, 51, 37, 65, 176, 49, 12, |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3166 | 162, 28, 85, 4, 177, 198, 54, 109, 188, 44, 77, 194, 63, 41, 129, 97, |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3167 | 83, 75, 137, 111, 197, 141, 46, 103, 69, 146, 79, 154, 45, 38, 139, 193, |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3168 | 90, 64, 142, 115, 120, 78, 100, 101, 42, 21, 1, 10, 114, 181, 178, 136, |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3169 | 59, 73, 99, 144, 118 |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3170 | }; |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3171 | int expected_sorted[] = { |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3172 | 47, 83, 176, 178, |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3173 | 1, 4, 9, 10, 12, 20, 21, 27, 28, 29, 32, 33, 37, 38, 41, 42, 44, 45, |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3174 | 46, 49, 51, 53, 54, 59, 63, 64, 65, 69, 70, 71, 73, 74, 75, 76, 77, 78, |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3175 | 79, 83, 85, 88, 90, 92, 94, 97, 99, 100, 101, 103, 106, 109, 111, 114, |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3176 | 115, 116, 118, 120, 124, 129, 130, 136, 137, 139, 141, 142, 144, 146, |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3177 | 150, 151, 153, 154, 161, 162, 171, 173, 175, 176, 177, 178, 181, 188, |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3178 | 193, 194, 197, 198, 199, 200 |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3179 | }; |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3180 | |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3181 | if (alloc_fail) { |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3182 | test_clone_func_max_enabled = true; |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3183 | test_clone_func_max_clones = 66; |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3184 | expected_len = 70; |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3185 | } |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3186 | CxList *expected = cxArrayListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int), expected_len); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3187 | cxListAddArray(expected, sorted ? expected_sorted : expected_unsorted, expected_len); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3188 | |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3189 | int result = cxListUnion(dst, src, other, test_clone_func, &talloc.base, NULL); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3190 | if (alloc_fail) { |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3191 | CX_TEST_ASSERT(result != 0); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3192 | } else { |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3193 | CX_TEST_ASSERT(result == 0); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3194 | } |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3195 | test_clone_func_max_enabled = false; |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3196 | CX_TEST_ASSERT(expected_len == cxListSize(dst)); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3197 | CX_TEST_ASSERT(0 == cxListCompare(dst, expected)); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3198 | |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3199 | cxListFree(dst); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3200 | cxListFree(src); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3201 | cxListFree(other); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3202 | cxListFree(expected); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3203 | CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); |
|
1483
97a6cf1520ba
fix some memory management bugs in the map and list tests
Mike Becker <universe@uap-core.de>
parents:
1481
diff
changeset
|
3204 | cx_testing_allocator_destroy(&talloc); |
|
1477
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3205 | } |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3206 | |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3207 | CX_TEST(test_list_union_unsorted) { |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3208 | CX_TEST_DO { |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3209 | CX_TEST_CALL_SUBROUTINE(verify_union, false, false); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3210 | } |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3211 | } |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3212 | |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3213 | CX_TEST(test_list_union_sorted) { |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3214 | CX_TEST_DO { |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3215 | CX_TEST_CALL_SUBROUTINE(verify_union, true, false); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3216 | } |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3217 | } |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3218 | |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3219 | CX_TEST(test_list_union_unsorted_alloc_fail) { |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3220 | CX_TEST_DO { |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3221 | CX_TEST_CALL_SUBROUTINE(verify_union, false, true); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3222 | } |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3223 | } |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3224 | |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3225 | CX_TEST(test_list_union_sorted_alloc_fail) { |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3226 | CX_TEST_DO { |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3227 | CX_TEST_CALL_SUBROUTINE(verify_union, true, true); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3228 | } |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3229 | } |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3230 | |
|
1480
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3231 | CX_TEST(test_list_simple_clones) { |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3232 | |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3233 | int a[] = {1, 2, 5, 8, 10}; |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3234 | int b[] = {1, 3, 5, 7, 9, 11}; |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3235 | int c[] = {2, 4, 6, 8, 10, 12}; |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3236 | int d[] = {4, 8, 12}; |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3237 | |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3238 | CxList *la = cxArrayListCreateSimple(sizeof(int), 8); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3239 | cxCollectionCompareFunc(la, cx_cmp_int); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3240 | cxListInsertSortedArray(la, a, cx_nmemb(a)); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3241 | CxList *lb = cxArrayListCreateSimple(sizeof(int), 8); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3242 | cxCollectionCompareFunc(lb, cx_cmp_int); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3243 | cxListInsertSortedArray(lb, b, cx_nmemb(b)); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3244 | CxList *lc = cxArrayListCreateSimple(sizeof(int), 8); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3245 | cxCollectionCompareFunc(lc, cx_cmp_int); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3246 | cxListInsertSortedArray(lc, c, cx_nmemb(c)); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3247 | CxList *ld = cxArrayListCreateSimple(sizeof(int), 8); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3248 | cxCollectionCompareFunc(ld, cx_cmp_int); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3249 | cxListInsertSortedArray(ld, d, cx_nmemb(d)); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3250 | |
|
1483
97a6cf1520ba
fix some memory management bugs in the map and list tests
Mike Becker <universe@uap-core.de>
parents:
1481
diff
changeset
|
3251 | CxList *d1 = cxArrayListCreateSimple(sizeof(int), 8); |
|
1480
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3252 | cxCollectionCompareFunc(d1, cx_cmp_int); |
|
1483
97a6cf1520ba
fix some memory management bugs in the map and list tests
Mike Becker <universe@uap-core.de>
parents:
1481
diff
changeset
|
3253 | CxList *d2 = cxArrayListCreateSimple(sizeof(int), 8); |
|
1480
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3254 | cxCollectionCompareFunc(d2, cx_cmp_int); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3255 | |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3256 | CX_TEST_DO { |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3257 | // clone a into d1 |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3258 | CX_TEST_ASSERT(0 == cxListCloneSimple(d1, la)); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3259 | CX_TEST_ASSERT(0 == cxListCompare(d1, la)); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3260 | CX_TEST_ASSERT(cxCollectionSorted(d1)); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3261 | |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3262 | // union of a (in d1) and b |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3263 | CX_TEST_ASSERT(0 == cxListUnionSimple(d2, d1, lb)); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3264 | CX_TEST_ASSERT(cxCollectionSorted(d2)); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3265 | CxList *expected_union = cxArrayListCreateSimple(sizeof(int), 8); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3266 | { |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3267 | int expected[] = {1, 2, 3, 5, 7, 8, 9, 10, 11}; |
|
1483
97a6cf1520ba
fix some memory management bugs in the map and list tests
Mike Becker <universe@uap-core.de>
parents:
1481
diff
changeset
|
3268 | cxListAddArray(expected_union, expected, cx_nmemb(expected)); |
|
1480
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3269 | } |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3270 | CX_TEST_ASSERT(0 == cxListCompare(d2, expected_union)); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3271 | cxListFree(expected_union); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3272 | |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3273 | // intersection of (a union b) and c |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3274 | cxListClear(d1); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3275 | CX_TEST_ASSERT(0 == cxListIntersectionSimple(d1, d2, lc)); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3276 | CX_TEST_ASSERT(cxCollectionSorted(d1)); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3277 | CxList *expected_intersection = cxArrayListCreateSimple(sizeof(int), 8); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3278 | { |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3279 | int expected[] = {2, 8, 10}; |
|
1483
97a6cf1520ba
fix some memory management bugs in the map and list tests
Mike Becker <universe@uap-core.de>
parents:
1481
diff
changeset
|
3280 | cxListAddArray(expected_intersection, expected, cx_nmemb(expected)); |
|
1480
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3281 | } |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3282 | CX_TEST_ASSERT(0 == cxListCompare(d1, expected_intersection)); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3283 | cxListFree(expected_intersection); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3284 | |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3285 | // difference of ((a union b) intersect c) minus d |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3286 | cxListClear(d2); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3287 | CX_TEST_ASSERT(0 == cxListDifferenceSimple(d2, d1, ld)); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3288 | CX_TEST_ASSERT(cxCollectionSorted(d2)); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3289 | CxList *expected_difference = cxArrayListCreateSimple(sizeof(int), 8); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3290 | { |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3291 | int expected[] = {2, 10}; |
|
1483
97a6cf1520ba
fix some memory management bugs in the map and list tests
Mike Becker <universe@uap-core.de>
parents:
1481
diff
changeset
|
3292 | cxListAddArray(expected_difference, expected, cx_nmemb(expected)); |
|
1480
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3293 | } |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3294 | CX_TEST_ASSERT(0 == cxListCompare(d2, expected_difference)); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3295 | cxListFree(expected_difference); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3296 | } |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3297 | |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3298 | cxListFree(d1); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3299 | cxListFree(d2); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3300 | cxListFree(la); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3301 | cxListFree(lb); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3302 | cxListFree(lc); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3303 | cxListFree(ld); |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3304 | } |
|
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3305 | |
|
1422
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3306 | CX_TEST(test_list_pointer_list_supports_null) { |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3307 | CxList *list = cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, CX_STORE_POINTERS); |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3308 | int x = 47; |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3309 | int y = 11; |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3310 | int z = 1337; |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3311 | int *nptr = NULL; |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3312 | cxListAdd(list, &x); |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3313 | cxListAdd(list, &y); |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3314 | cxListAdd(list, nptr); |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3315 | cxListAdd(list, &z); |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3316 | CX_TEST_DO { |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3317 | CX_TEST_ASSERT(cxListSize(list) == 4); |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3318 | CX_TEST_ASSERT(*(int *) cxListAt(list, 0) == 47); |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3319 | CX_TEST_ASSERT(*(int *) cxListAt(list, 1) == 11); |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3320 | CX_TEST_ASSERT((int *) cxListAt(list, 2) == NULL); |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3321 | CX_TEST_ASSERT(*(int *) cxListAt(list, 3) == 1337); |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3322 | CX_TEST_ASSERT(cxListFind(list, nptr) == 2); |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3323 | |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3324 | // when we sort the list, NULL is supposed to be smaller than any value |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3325 | cxListSort(list); |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3326 | CX_TEST_ASSERT((int *) cxListAt(list, 0) == NULL); |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3327 | CX_TEST_ASSERT(*(int *) cxListAt(list, 1) == 11); |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3328 | CX_TEST_ASSERT(*(int *) cxListAt(list, 2) == 47); |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3329 | CX_TEST_ASSERT(*(int *) cxListAt(list, 3) == 1337); |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3330 | } |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3331 | cxListFree(list); |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3332 | } |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3333 | |
|
1423
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3334 | CX_TEST(test_list_use_insert_unique_to_remove_duplicates) { |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3335 | CxList *linked_list = cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int)); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3336 | CxList *array_list = cxArrayListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int), 8); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3337 | CxList *defaulted_list = cxArrayListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int), 8); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3338 | do_set_default_class_funcs(defaulted_list); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3339 | int test_array[23] = { |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3340 | 120, -13, 100, -90, 13, -56, 74, 20, 28, 80, 18, -56, 130, 12, 15, 0, 39, 100, 0, 29, 28, 85, 20 |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3341 | }; |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3342 | int test_array_unique[18] = { |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3343 | -90, -56, -13, 0, 12, 13, 15, 18, 20, 28, 29, 39, 74, 80, 85, 100, 120, 130 |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3344 | }; |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3345 | CX_TEST_DO { |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3346 | qsort(test_array, 23, sizeof(int), cx_cmp_int); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3347 | cxListInsertUniqueArray(linked_list, test_array, 23); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3348 | cxListInsertUniqueArray(array_list, test_array, 23); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3349 | cxListInsertUniqueArray(defaulted_list, test_array, 23); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3350 | CX_TEST_ASSERT(cxListSize(linked_list) == 18); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3351 | CX_TEST_ASSERT(cxListSize(array_list) == 18); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3352 | CX_TEST_ASSERT(cxListSize(defaulted_list) == 18); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3353 | for (unsigned i = 0; i < 18; i++) { |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3354 | CX_TEST_ASSERT(*(int *) cxListAt(linked_list, i) == test_array_unique[i]); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3355 | CX_TEST_ASSERT(*(int *) cxListAt(array_list, i) == test_array_unique[i]); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3356 | CX_TEST_ASSERT(*(int *) cxListAt(defaulted_list, i) == test_array_unique[i]); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3357 | } |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3358 | } |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3359 | cxListFree(defaulted_list); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3360 | cxListFree(linked_list); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3361 | cxListFree(array_list); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3362 | } |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3363 | |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3364 | CX_TEST(test_list_use_insert_unique_with_duplicates_in_source) { |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3365 | CxList *linked_list = cxLinkedListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int)); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3366 | CxList *array_list = cxArrayListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int), 8); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3367 | CxList *defaulted_list = cxArrayListCreate(cxDefaultAllocator, cx_cmp_int, sizeof(int), 8); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3368 | do_set_default_class_funcs(defaulted_list); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3369 | int pre_filled[10] = {-13, 5, 18, 30, 40, 45, 50, 80, 85, 110}; |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3370 | cxListInsertSortedArray(linked_list, pre_filled, 10); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3371 | cxListInsertSortedArray(array_list, pre_filled, 10); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3372 | cxListInsertSortedArray(defaulted_list, pre_filled, 10); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3373 | int test_array[23] = { |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3374 | 120, -13, 100, -90, 13, -56, 74, 20, 28, 80, 18, -56, 130, 12, 15, 0, 39, 100, 0, 29, 28, 85, 20 |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3375 | }; |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3376 | int test_array_unique[24] = { |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3377 | -90, -56, -13, 0, 5, 12, 13, 15, 18, 20, 28, 29, 30, 39, 40, 45, 50, 74, 80, 85, 100, 110, 120, 130 |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3378 | }; |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3379 | CX_TEST_DO { |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3380 | qsort(test_array, 23, sizeof(int), cx_cmp_int); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3381 | cxListInsertUniqueArray(linked_list, test_array, 23); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3382 | cxListInsertUniqueArray(array_list, test_array, 23); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3383 | cxListInsertUniqueArray(defaulted_list, test_array, 23); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3384 | CX_TEST_ASSERT(cxListSize(linked_list) == 24); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3385 | CX_TEST_ASSERT(cxListSize(array_list) == 24); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3386 | CX_TEST_ASSERT(cxListSize(defaulted_list) == 24); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3387 | for (unsigned i = 0; i < 24; i++) { |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3388 | CX_TEST_ASSERT(*(int *) cxListAt(linked_list, i) == test_array_unique[i]); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3389 | CX_TEST_ASSERT(*(int *) cxListAt(array_list, i) == test_array_unique[i]); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3390 | CX_TEST_ASSERT(*(int *) cxListAt(defaulted_list, i) == test_array_unique[i]); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3391 | } |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3392 | CX_TEST_ASSERT(*(int*)cxListLast(linked_list) == 130); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3393 | CX_TEST_ASSERT(*(int*)cxListLast(array_list) == 130); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3394 | CX_TEST_ASSERT(*(int*)cxListLast(defaulted_list) == 130); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3395 | } |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3396 | cxListFree(defaulted_list); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3397 | cxListFree(linked_list); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3398 | cxListFree(array_list); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3399 | } |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3400 | |
|
798
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
3401 | 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
|
3402 | 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
|
3403 | |
|
818
2be8fe3d5a2d
add cx_array_add() + fix type of cx_array_default_reallocator
Mike Becker <universe@uap-core.de>
parents:
807
diff
changeset
|
3404 | 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
|
3405 | cx_test_register(suite, test_array_add8); |
|
1495
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
3406 | cx_test_register(suite, test_array_add16); |
|
998
bb196054f3fd
make cx_array_copy() support different types for size/capacity - fixes #492
Mike Becker <universe@uap-core.de>
parents:
993
diff
changeset
|
3407 | cx_test_register(suite, test_array_copy_unsupported_width); |
|
1495
beee442be85a
add missing test coverage for cx_array_copy()
Mike Becker <universe@uap-core.de>
parents:
1494
diff
changeset
|
3408 | cx_test_register(suite, test_array_copy_overlap); |
|
999
84fc42b04d3b
add cx_array_reserve() and several more array convenience functions
Mike Becker <universe@uap-core.de>
parents:
998
diff
changeset
|
3409 | cx_test_register(suite, test_array_reserve); |
|
1494
f027a95d93f2
add missing test coverage for cx_array_reserve()
Mike Becker <universe@uap-core.de>
parents:
1493
diff
changeset
|
3410 | cx_test_register(suite, test_array_reserve_unsupported_width); |
|
883
3012e9b4214e
add low level cx_array_insert_sorted() and convenience macros
Mike Becker <universe@uap-core.de>
parents:
876
diff
changeset
|
3411 | 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
|
3412 | 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
|
3413 | cx_test_register(suite, test_array_binary_search); |
|
1507
f4010cda9a2a
stable return value for binary search when there are duplicates in the array
Mike Becker <universe@uap-core.de>
parents:
1495
diff
changeset
|
3414 | cx_test_register(suite, test_array_binary_search_with_duplicates); |
|
818
2be8fe3d5a2d
add cx_array_add() + fix type of cx_array_default_reallocator
Mike Becker <universe@uap-core.de>
parents:
807
diff
changeset
|
3415 | |
|
801
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
3416 | 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
|
3417 | 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
|
3418 | 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
|
3419 | 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
|
3420 | 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
|
3421 | 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
|
3422 | |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
3423 | 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
|
3424 | 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
|
3425 | 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
|
3426 | 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
|
3427 | 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
|
3428 | 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
|
3429 | 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
|
3430 | cx_test_register(suite, test_list_parl_insert_array); |
|
1433
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
3431 | cx_test_register(suite, test_list_arl_emplace_array); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
3432 | cx_test_register(suite, test_list_parl_emplace_array); |
|
876
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
3433 | 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
|
3434 | 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
|
3435 | 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
|
3436 | cx_test_register(suite, test_list_parl_insert_unique); |
|
1428
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
3437 | cx_test_register(suite, test_list_arl_insert_unique_not_sorted); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
3438 | cx_test_register(suite, test_list_parl_insert_unique_not_sorted); |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
3439 | 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
|
3440 | 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
|
3441 | 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
|
3442 | 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
|
3443 | 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
|
3444 | 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
|
3445 | 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
|
3446 | 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
|
3447 | 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
|
3448 | 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
|
3449 | 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
|
3450 | 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
|
3451 | 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
|
3452 | 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
|
3453 | 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
|
3454 | cx_test_register(suite, test_list_parl_at); |
|
1287
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
3455 | cx_test_register(suite, test_list_arl_set); |
|
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
3456 | 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
|
3457 | 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
|
3458 | 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
|
3459 | 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
|
3460 | 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
|
3461 | 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
|
3462 | 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
|
3463 | 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
|
3464 | 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
|
3465 | 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
|
3466 | 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
|
3467 | 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
|
3468 | 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
|
3469 | 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
|
3470 | 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
|
3471 | 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
|
3472 | 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
|
3473 | 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
|
3474 | 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
|
3475 | 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
|
3476 | 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
|
3477 | 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
|
3478 | 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
|
3479 | 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
|
3480 | 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
|
3481 | cx_test_register(suite, test_list_parl_advanced_destr); |
|
1485
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
3482 | cx_test_register(suite, test_list_arl_reserve_and_shrink); |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
3483 | cx_test_register(suite, test_list_parl_reserve_and_shrink); |
|
1436
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3484 | cx_test_register(suite, test_list_arl_clone_into_arl); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3485 | cx_test_register(suite, test_list_parl_clone_into_arl); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3486 | cx_test_register(suite, test_list_arl_clone_into_ll); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3487 | cx_test_register(suite, test_list_parl_clone_into_ll); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3488 | cx_test_register(suite, test_list_arl_clone_into_parl); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3489 | cx_test_register(suite, test_list_parl_clone_into_parl); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3490 | cx_test_register(suite, test_list_arl_clone_into_pll); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3491 | cx_test_register(suite, test_list_parl_clone_into_pll); |
|
1443
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3492 | cx_test_register(suite, test_list_arl_clone_alloc_fail_into_arl); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3493 | cx_test_register(suite, test_list_parl_clone_alloc_fail_into_arl); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3494 | cx_test_register(suite, test_list_arl_clone_alloc_fail_into_ll); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3495 | cx_test_register(suite, test_list_parl_clone_alloc_fail_into_ll); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3496 | cx_test_register(suite, test_list_arl_clone_alloc_fail_into_parl); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3497 | cx_test_register(suite, test_list_parl_clone_alloc_fail_into_parl); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3498 | cx_test_register(suite, test_list_arl_clone_alloc_fail_into_pll); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3499 | cx_test_register(suite, test_list_parl_clone_alloc_fail_into_pll); |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
3500 | |
|
798
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
3501 | return suite; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
3502 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
3503 | |
|
875
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
3504 | 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
|
3505 | 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
|
3506 | "array_list with defaulted functions"); |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
3507 | |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
3508 | 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
|
3509 | cx_test_register(suite, test_list_parlm_insert_array); |
|
1433
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
3510 | cx_test_register(suite, test_list_arlm_emplace_array); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
3511 | cx_test_register(suite, test_list_parlm_emplace_array); |
|
876
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
3512 | 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
|
3513 | 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
|
3514 | 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
|
3515 | cx_test_register(suite, test_list_parlm_insert_unique); |
|
1428
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
3516 | cx_test_register(suite, test_list_arlm_insert_unique_not_sorted); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
3517 | cx_test_register(suite, test_list_parlm_insert_unique_not_sorted); |
|
875
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
3518 | 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
|
3519 | 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
|
3520 | 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
|
3521 | 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
|
3522 | |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
3523 | 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
|
3524 | 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
|
3525 | 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
|
3526 | 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
|
3527 | |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
3528 | return suite; |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
3529 | } |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
3530 | |
|
798
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
3531 | 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
|
3532 | 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
|
3533 | |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
3534 | 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
|
3535 | 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
|
3536 | 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
|
3537 | 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
|
3538 | 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
|
3539 | 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
|
3540 | 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
|
3541 | 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
|
3542 | 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
|
3543 | 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
|
3544 | 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
|
3545 | 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
|
3546 | 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
|
3547 | 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
|
3548 | 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
|
3549 | 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
|
3550 | 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
|
3551 | 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
|
3552 | 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
|
3553 | |
|
801
04aa3913c0e3
migrate list create and destroy tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
800
diff
changeset
|
3554 | 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
|
3555 | 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
|
3556 | 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
|
3557 | 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
|
3558 | 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
|
3559 | 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
|
3560 | |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
3561 | 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
|
3562 | 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
|
3563 | 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
|
3564 | 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
|
3565 | 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
|
3566 | 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
|
3567 | 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
|
3568 | cx_test_register(suite, test_list_pll_insert_array); |
|
1433
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
3569 | cx_test_register(suite, test_list_ll_emplace_array); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
3570 | cx_test_register(suite, test_list_pll_emplace_array); |
|
876
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
3571 | 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
|
3572 | 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
|
3573 | 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
|
3574 | cx_test_register(suite, test_list_pll_insert_unique); |
|
1428
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
3575 | cx_test_register(suite, test_list_ll_insert_unique_not_sorted); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
3576 | cx_test_register(suite, test_list_pll_insert_unique_not_sorted); |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
3577 | 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
|
3578 | 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
|
3579 | 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
|
3580 | 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
|
3581 | 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
|
3582 | 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
|
3583 | 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
|
3584 | 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
|
3585 | 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
|
3586 | 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
|
3587 | 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
|
3588 | 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
|
3589 | 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
|
3590 | 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
|
3591 | 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
|
3592 | cx_test_register(suite, test_list_pll_at); |
|
1287
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
3593 | cx_test_register(suite, test_list_ll_set); |
|
3a3ffc27813f
adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents:
1225
diff
changeset
|
3594 | 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
|
3595 | 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
|
3596 | 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
|
3597 | 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
|
3598 | 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
|
3599 | 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
|
3600 | 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
|
3601 | 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
|
3602 | 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
|
3603 | 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
|
3604 | 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
|
3605 | 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
|
3606 | 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
|
3607 | 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
|
3608 | 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
|
3609 | 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
|
3610 | 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
|
3611 | 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
|
3612 | 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
|
3613 | 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
|
3614 | 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
|
3615 | 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
|
3616 | 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
|
3617 | 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
|
3618 | cx_test_register(suite, test_list_pll_advanced_destr); |
|
1485
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
3619 | cx_test_register(suite, test_list_ll_reserve_and_shrink); |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
3620 | cx_test_register(suite, test_list_pll_reserve_and_shrink); |
|
1436
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3621 | cx_test_register(suite, test_list_ll_clone_into_arl); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3622 | cx_test_register(suite, test_list_pll_clone_into_arl); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3623 | cx_test_register(suite, test_list_ll_clone_into_ll); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3624 | cx_test_register(suite, test_list_pll_clone_into_ll); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3625 | cx_test_register(suite, test_list_ll_clone_into_parl); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3626 | cx_test_register(suite, test_list_pll_clone_into_parl); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3627 | cx_test_register(suite, test_list_ll_clone_into_pll); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3628 | cx_test_register(suite, test_list_pll_clone_into_pll); |
|
1443
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3629 | cx_test_register(suite, test_list_ll_clone_alloc_fail_into_arl); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3630 | cx_test_register(suite, test_list_pll_clone_alloc_fail_into_arl); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3631 | cx_test_register(suite, test_list_ll_clone_alloc_fail_into_ll); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3632 | cx_test_register(suite, test_list_pll_clone_alloc_fail_into_ll); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3633 | cx_test_register(suite, test_list_ll_clone_alloc_fail_into_parl); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3634 | cx_test_register(suite, test_list_pll_clone_alloc_fail_into_parl); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3635 | cx_test_register(suite, test_list_ll_clone_alloc_fail_into_pll); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3636 | cx_test_register(suite, test_list_pll_clone_alloc_fail_into_pll); |
|
803
0711d869ce4d
complete migration of list tests - fixes #342
Mike Becker <universe@uap-core.de>
parents:
801
diff
changeset
|
3637 | |
|
798
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
3638 | return suite; |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
3639 | } |
|
7644da6e2d35
migrate low level linked list tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
3640 | |
|
875
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
3641 | 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
|
3642 | 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
|
3643 | "linked_list with defaulted functions"); |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
3644 | |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
3645 | 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
|
3646 | cx_test_register(suite, test_list_pllm_insert_array); |
|
1433
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
3647 | cx_test_register(suite, test_list_llm_emplace_array); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
3648 | cx_test_register(suite, test_list_pllm_emplace_array); |
|
876
f4ce7df9cff0
add stupid default implementation for high level insertion sort
Mike Becker <universe@uap-core.de>
parents:
875
diff
changeset
|
3649 | 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
|
3650 | 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
|
3651 | 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
|
3652 | cx_test_register(suite, test_list_pllm_insert_unique); |
|
1428
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
3653 | cx_test_register(suite, test_list_llm_insert_unique_not_sorted); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
3654 | cx_test_register(suite, test_list_pllm_insert_unique_not_sorted); |
|
875
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
3655 | 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
|
3656 | 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
|
3657 | 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
|
3658 | 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
|
3659 | |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
3660 | 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
|
3661 | 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
|
3662 | 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
|
3663 | 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
|
3664 | |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
3665 | return suite; |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
3666 | } |
|
ee84ac776cbc
add default impl for some list member functions
Mike Becker <universe@uap-core.de>
parents:
857
diff
changeset
|
3667 | |
|
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
|
3668 | 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
|
3669 | 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
|
3670 | |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
1321
diff
changeset
|
3671 | 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
|
3672 | 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
|
3673 | 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
|
3674 | 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
|
3675 | 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
|
3676 | 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
|
3677 | 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
|
3678 | cx_test_register(suite, test_list_pkvl_insert_array); |
|
1433
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
3679 | cx_test_register(suite, test_list_kvl_emplace_array); |
|
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
Mike Becker <universe@uap-core.de>
parents:
1429
diff
changeset
|
3680 | cx_test_register(suite, test_list_pkvl_emplace_array); |
|
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
|
3681 | 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
|
3682 | 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
|
3683 | 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
|
3684 | cx_test_register(suite, test_list_pkvl_insert_unique); |
|
1428
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
3685 | cx_test_register(suite, test_list_kvl_insert_unique_not_sorted); |
|
0ac4aa1737fd
add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
Mike Becker <universe@uap-core.de>
parents:
1423
diff
changeset
|
3686 | cx_test_register(suite, test_list_pkvl_insert_unique_not_sorted); |
|
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
|
3687 | 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
|
3688 | 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
|
3689 | 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
|
3690 | 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
|
3691 | 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
|
3692 | 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
|
3693 | 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
|
3694 | 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
|
3695 | 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
|
3696 | 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
|
3697 | 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
|
3698 | 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
|
3699 | 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
|
3700 | 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
|
3701 | 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
|
3702 | 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
|
3703 | 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
|
3704 | 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
|
3705 | 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
|
3706 | 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
|
3707 | 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
|
3708 | 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
|
3709 | 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
|
3710 | 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
|
3711 | 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
|
3712 | 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
|
3713 | 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
|
3714 | 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
|
3715 | 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
|
3716 | 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
|
3717 | 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
|
3718 | 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
|
3719 | 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
|
3720 | 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
|
3721 | 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
|
3722 | 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
|
3723 | 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
|
3724 | 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
|
3725 | 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
|
3726 | 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
|
3727 | 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
|
3728 | cx_test_register(suite, test_list_pkvl_advanced_destr); |
|
1485
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
3729 | cx_test_register(suite, test_list_kvl_reserve_and_shrink); |
|
814c1c61488d
add tests for cxListShrink() and cxListReserve() + fixes a bug
Mike Becker <universe@uap-core.de>
parents:
1483
diff
changeset
|
3730 | cx_test_register(suite, test_list_pkvl_reserve_and_shrink); |
|
1436
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3731 | // note: kv-lists also support a list clone, but that does not clone the keys |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3732 | cx_test_register(suite, test_list_kvl_clone_into_arl); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3733 | cx_test_register(suite, test_list_pkvl_clone_into_arl); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3734 | cx_test_register(suite, test_list_kvl_clone_into_ll); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3735 | cx_test_register(suite, test_list_pkvl_clone_into_ll); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3736 | cx_test_register(suite, test_list_kvl_clone_into_parl); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3737 | cx_test_register(suite, test_list_pkvl_clone_into_parl); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3738 | cx_test_register(suite, test_list_kvl_clone_into_pll); |
|
c331add0d9f8
add cxListClone() - resolves #744 except for test coverage
Mike Becker <universe@uap-core.de>
parents:
1435
diff
changeset
|
3739 | cx_test_register(suite, test_list_pkvl_clone_into_pll); |
|
1443
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3740 | cx_test_register(suite, test_list_kvl_clone_alloc_fail_into_arl); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3741 | cx_test_register(suite, test_list_pkvl_clone_alloc_fail_into_arl); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3742 | cx_test_register(suite, test_list_kvl_clone_alloc_fail_into_ll); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3743 | cx_test_register(suite, test_list_pkvl_clone_alloc_fail_into_ll); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3744 | cx_test_register(suite, test_list_kvl_clone_alloc_fail_into_parl); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3745 | cx_test_register(suite, test_list_pkvl_clone_alloc_fail_into_parl); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3746 | cx_test_register(suite, test_list_kvl_clone_alloc_fail_into_pll); |
|
6986e9ed70f3
add test coverage for allocation failures in clone-function
Mike Becker <universe@uap-core.de>
parents:
1436
diff
changeset
|
3747 | cx_test_register(suite, test_list_pkvl_clone_alloc_fail_into_pll); |
|
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
|
3748 | |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
1321
diff
changeset
|
3749 | 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
|
3750 | } |
|
189756516eaa
implement kv-list to a point where it correctly behaves like a list
Mike Becker <universe@uap-core.de>
parents:
1321
diff
changeset
|
3751 | |
|
800
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
3752 | CxTestSuite *cx_test_suite_empty_list(void) { |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
3753 | 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
|
3754 | |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
3755 | 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
|
3756 | 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
|
3757 | 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
|
3758 | 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
|
3759 | 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
|
3760 | 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
|
3761 | cx_test_register(suite, test_empty_list_compare); |
|
1422
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3762 | cx_test_register(suite, test_null_list_free); |
|
800
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
3763 | |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
3764 | return suite; |
|
1274e46b3013
migrate cxEmptyList tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
799
diff
changeset
|
3765 | } |
|
1422
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3766 | |
|
1462
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3767 | CxTestSuite *cx_test_suite_list_set_ops(void) { |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3768 | CxTestSuite *suite = cx_test_suite_new("list collection operations"); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3769 | |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3770 | // we do not perform the following tests with every combination of list types |
|
1477
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3771 | cx_test_register(suite, test_list_union_unsorted); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3772 | cx_test_register(suite, test_list_union_sorted); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3773 | cx_test_register(suite, test_list_union_unsorted_alloc_fail); |
|
9170a7dff573
implement cxListUnion() - resolves #755
Mike Becker <universe@uap-core.de>
parents:
1469
diff
changeset
|
3774 | cx_test_register(suite, test_list_union_sorted_alloc_fail); |
|
1462
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3775 | cx_test_register(suite, test_list_difference_unsorted); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3776 | cx_test_register(suite, test_list_difference_sorted); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3777 | cx_test_register(suite, test_list_difference_unsorted_alloc_fail); |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3778 | cx_test_register(suite, test_list_difference_sorted_alloc_fail); |
|
1469
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3779 | cx_test_register(suite, test_list_intersection_unsorted); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3780 | cx_test_register(suite, test_list_intersection_sorted); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3781 | cx_test_register(suite, test_list_intersection_unsorted_alloc_fail); |
|
9b2b40a3c9f0
implement cxListIntersection() - resolves #554
Mike Becker <universe@uap-core.de>
parents:
1466
diff
changeset
|
3782 | cx_test_register(suite, test_list_intersection_sorted_alloc_fail); |
|
1480
83146195a1db
add tests for simple clone functions
Mike Becker <universe@uap-core.de>
parents:
1477
diff
changeset
|
3783 | cx_test_register(suite, test_list_simple_clones); |
|
1462
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3784 | |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3785 | return suite; |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3786 | } |
|
9263d3f15379
add tests for cxListDifference() - resolves #751
Mike Becker <universe@uap-core.de>
parents:
1444
diff
changeset
|
3787 | |
|
1422
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3788 | CxTestSuite *cx_test_suite_list_corner_cases(void) { |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3789 | CxTestSuite *suite = cx_test_suite_new("list corner cases"); |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3790 | |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3791 | cx_test_register(suite, test_list_pointer_list_supports_null); |
|
1423
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3792 | cx_test_register(suite, test_list_use_insert_unique_with_duplicates_in_source); |
|
9a72258446cd
fixes various bugs related to skipping duplicates in insert_unique - relates to #557
Mike Becker <universe@uap-core.de>
parents:
1422
diff
changeset
|
3793 | cx_test_register(suite, test_list_use_insert_unique_to_remove_duplicates); |
|
1422
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3794 | |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3795 | return suite; |
|
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
Mike Becker <universe@uap-core.de>
parents:
1419
diff
changeset
|
3796 | } |