summaryrefslogtreecommitdiff
path: root/modules/codec/tests/math.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/codec/tests/math.cpp')
-rw-r--r--modules/codec/tests/math.cpp25
1 files changed, 23 insertions, 2 deletions
diff --git a/modules/codec/tests/math.cpp b/modules/codec/tests/math.cpp
index 18b6c41..ad79c95 100644
--- a/modules/codec/tests/math.cpp
+++ b/modules/codec/tests/math.cpp
@@ -24,8 +24,29 @@ SAW_TEST("Math/Basic"){
SAW_TEST("Math/Tensor Construction"){
using namespace saw;
- // data<sch::Scalar<sch::Float32>> a{{5.1f}};
- // data<sch::Vector<sch::Int32,3u>> b{{{1,3,5}}};
+ data<sch::Vector<sch::Int32,3u>> b{1,3,5};
+
+ /**
+ * A one dimensional index keeps the inner braces, since a single
+ * element has to stay explicit to not clash with data<UInt64>.
+ */
+ SAW_EXPECT(b.at({{0u}}).get() == 1, "Wrong value at 0");
+ SAW_EXPECT(b.at({{1u}}).get() == 3, "Wrong value at 1");
+ SAW_EXPECT(b.at({{2u}}).get() == 5, "Wrong value at 2");
+
+ /**
+ * From two dimensions up the index forwards, since it is a FixedArray
+ * itself.
+ *
+ * The elements are given in flat order, and get_flat_index runs the
+ * stride from dimension zero up, so the first index varies fastest.
+ */
+ data<sch::Matrix<sch::Float64,2u,2u>> c{1.0, 2.0, 3.0, 4.0};
+
+ SAW_EXPECT(c.at({0u,0u}).get() == 1.0, "Wrong value at 0,0");
+ SAW_EXPECT(c.at({1u,0u}).get() == 2.0, "Wrong value at 1,0");
+ SAW_EXPECT(c.at({0u,1u}).get() == 3.0, "Wrong value at 0,1");
+ SAW_EXPECT(c.at({1u,1u}).get() == 4.0, "Wrong value at 1,1");
}
SAW_TEST("Math/Tensor Fill"){