diff options
| author | Tyge Løvset <[email protected]> | 2023-01-29 17:24:33 +0100 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2023-01-29 17:24:33 +0100 |
| commit | 209bf743e0c1253a4bc81d2ffb6897f657a84c8a (patch) | |
| tree | 9631a2a79e1890cb7c46515aae0ef105710ad59c /misc/tests/cspan_test.c | |
| parent | a344b43728ff40a2e1ee25f2f1b592f33432aee7 (diff) | |
| download | STC-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.c | 39 |
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); + } +} |
