summaryrefslogtreecommitdiffhomepage
path: root/misc/tests/cspan_test.c
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2023-01-29 17:24:33 +0100
committerTyge Løvset <[email protected]>2023-01-29 17:24:33 +0100
commit209bf743e0c1253a4bc81d2ffb6897f657a84c8a (patch)
tree9631a2a79e1890cb7c46515aae0ef105710ad59c /misc/tests/cspan_test.c
parenta344b43728ff40a2e1ee25f2f1b592f33432aee7 (diff)
downloadSTC-modified-209bf743e0c1253a4bc81d2ffb6897f657a84c8a.tar.gz
STC-modified-209bf743e0c1253a4bc81d2ffb6897f657a84c8a.zip
Some method renaming in cspan: cspan_multidim() ctor => cspan_md(). cspan_atN() => cspan_submdN().
cstr_replace_ex() merged as overload of cstr_replace().
Diffstat (limited to 'misc/tests/cspan_test.c')
-rw-r--r--misc/tests/cspan_test.c39
1 files changed, 34 insertions, 5 deletions
diff --git a/misc/tests/cspan_test.c b/misc/tests/cspan_test.c
index 6b85af00..32634795 100644
--- a/misc/tests/cspan_test.c
+++ b/misc/tests/cspan_test.c
@@ -7,12 +7,12 @@ using_cspan3(intspan, int);
CTEST(cspan, subdim) {
int array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
- intspan3 m = cspan_multidim(array, 2, 2, 3);
+ intspan3 m = cspan_md(array, 2, 2, 3);
for (size_t i = 0; i < m.dim[0]; ++i) {
- intspan2 sub_i = cspan_at3(&m, i);
+ intspan2 sub_i = cspan_submd3(&m, i);
for (size_t j = 0; j < m.dim[1]; ++j) {
- intspan sub_i_j = cspan_at2(&sub_i, j);
+ intspan sub_i_j = cspan_submd2(&sub_i, j);
for (size_t k = 0; k < m.dim[2]; ++k) {
ASSERT_EQ(*cspan_at(&sub_i_j, k), *cspan_at(&m, i, j, k));
}
@@ -22,7 +22,7 @@ CTEST(cspan, subdim) {
CTEST(cspan, slice) {
int array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
- intspan2 m1 = cspan_multidim(array, 3, 4);
+ intspan2 m1 = cspan_md(array, 3, 4);
size_t sum1 = 0;
for (size_t i = 0; i < m1.dim[0]; ++i) {
@@ -32,7 +32,7 @@ CTEST(cspan, slice) {
}
intspan2 m2 = m1;
- cspan_slice(&m2, c_SLICE(0), c_SLICE(2,4));
+ cspan_slice(&m2, {0}, {2,4});
size_t sum2 = 0;
for (size_t i = 0; i < m2.dim[0]; ++i) {
@@ -43,3 +43,32 @@ CTEST(cspan, slice) {
ASSERT_EQ(78, sum1);
ASSERT_EQ(45, sum2);
}
+
+#define i_val int
+#include <stc/cstack.h>
+
+CTEST(cspan, slice2) {
+ c_AUTO (cstack_int, stack)
+ {
+ c_FORRANGE (i, 10*20*30)
+ cstack_int_push(&stack, i);
+
+ intspan3 ms3 = cspan_md(stack.data, 10, 20, 30);
+ cspan_slice(&ms3, {1,4}, {3,7}, {20,24});
+
+ size_t sum = 0;
+ for (size_t i = 0; i < ms3.dim[0]; ++i) {
+ for (size_t j = 0; j < ms3.dim[1]; ++j) {
+ for (size_t k = 0; k < ms3.dim[2]; ++k) {
+ sum += *cspan_at(&ms3, i, j, k);
+ }
+ }
+ }
+ ASSERT_EQ(65112, sum);
+
+ sum = 0;
+ c_FOREACH (i, intspan3, ms3)
+ sum += *i.ref;
+ ASSERT_EQ(65112, sum);
+ }
+}