3 #include "testing/testing.h"
13 TEST(array_utils, ReverseStringEmpty)
17 EXPECT_STREQ(
"",
data);
20 TEST(array_utils, ReverseStringSingle)
24 EXPECT_STREQ(
"0",
data);
27 TEST(array_utils, ReverseString4)
31 EXPECT_STREQ(
"3210",
data);
34 TEST(array_utils, ReverseInt4)
36 const int data_cmp[] = {3, 2, 1, 0};
37 int data[] = {0, 1, 2, 3};
43 TEST(array_utils, FindIndexStringEmpty)
45 char data[] =
"", find =
'0';
50 TEST(array_utils, FindIndexStringSingle)
52 char data[] =
"0", find =
'0';
57 TEST(array_utils, FindIndexStringSingleMissing)
59 char data[] =
"1", find =
'0';
64 TEST(array_utils, FindIndexString4)
66 char data[] =
"0123", find =
'3';
71 TEST(array_utils, FindIndexInt4)
73 int data[] = {0, 1, 2, 3}, find = 3;
78 TEST(array_utils, FindIndexInt4_DupeEnd)
80 int data[] = {0, 1, 2, 0}, find = 0;
85 TEST(array_utils, FindIndexInt4_DupeMid)
87 int data[] = {1, 0, 0, 3}, find = 0;
92 TEST(array_utils, FindIndexPointer)
94 const char *
data[4] = {
nullptr};
99 const char *
a =
"a", *b =
"b", *
c =
"c", *d =
"d";
101 #define STACK_PUSH_AND_CHECK_FORWARD(v, i) \
103 STACK_PUSH(data, v); \
104 EXPECT_EQ(BLI_array_findindex(data, STACK_SIZE(data), &(v)), i); \
108 #define STACK_PUSH_AND_CHECK_BACKWARD(v, i) \
110 STACK_PUSH(data, v); \
111 EXPECT_EQ(BLI_array_rfindindex(data, STACK_SIZE(data), &(v)), i); \
115 #define STACK_PUSH_AND_CHECK_BOTH(v, i) \
117 STACK_PUSH(data, v); \
118 EXPECT_EQ(BLI_array_findindex(data, STACK_SIZE(data), &(v)), i); \
119 EXPECT_EQ(BLI_array_rfindindex(data, STACK_SIZE(data), &(v)), i); \
140 #undef STACK_PUSH_AND_CHECK_FORWARD
141 #undef STACK_PUSH_AND_CHECK_BACKWARD
142 #undef STACK_PUSH_AND_CHECK_BOTH
146 #define BINARY_AND_TEST(data_cmp, data_a, data_b, data_combine, length) \
148 BLI_array_binary_and(data_combine, data_a, data_b, length); \
149 EXPECT_EQ_ARRAY(data_cmp, data_combine, length); \
153 TEST(array_utils, BinaryAndInt4Zero)
155 const int data_cmp[] = {0, 0, 0, 0};
156 int data_a[] = {0, 1, 0, 1}, data_b[] = {1, 0, 1, 0};
161 TEST(array_utils, BinaryAndInt4Mix)
163 const int data_cmp[] = {1, 0, 1, 0};
164 int data_a[] = {1, 1, 1, 1}, data_b[] = {1, 0, 1, 0};
168 #undef BINARY_AND_TEST
171 #define BINARY_OR_TEST(data_cmp, data_a, data_b, data_combine, length) \
173 BLI_array_binary_or(data_combine, data_a, data_b, length); \
174 EXPECT_EQ_ARRAY(data_combine, data_cmp, length); \
178 TEST(array_utils, BinaryOrInt4Alternate)
180 int data_a[] = {0, 1, 0, 1}, data_b[] = {1, 0, 1, 0}, data_cmp[] = {1, 1, 1, 1};
185 TEST(array_utils, BinaryOrInt4Mix)
187 int data_a[] = {1, 1, 0, 0}, data_b[] = {0, 0, 1, 0}, data_cmp[] = {1, 1, 1, 0};
191 #undef BINARY_OR_TEST
Generic array manipulation API.
#define BLI_array_reverse(arr, arr_len)
#define BLI_array_findindex(arr, arr_len, p)
#define BLI_array_rfindindex(arr, arr_len, p)
#define BINARY_OR_TEST(data_cmp, data_a, data_b, data_combine, length)
#define STACK_PUSH_AND_CHECK_FORWARD(v, i)
#define STACK_PUSH_AND_CHECK_BOTH(v, i)
#define STACK_PUSH_AND_CHECK_BACKWARD(v, i)
#define BINARY_AND_TEST(data_cmp, data_a, data_b, data_combine, length)
TEST(array_utils, ReverseStringEmpty)
EXPECT_EQ(BLI_expr_pylike_eval(expr, nullptr, 0, &result), EXPR_PYLIKE_INVALID)
#define STACK_DECLARE(stack)
#define STACK_INIT(stack, tot)