summaryrefslogtreecommitdiff
path: root/modules/codec/tests
diff options
context:
space:
mode:
authorClaudius "keldu" Holeksa <mail@keldu.de>2024-01-05 05:58:49 +0100
committerClaudius "keldu" Holeksa <mail@keldu.de>2024-01-05 05:58:49 +0100
commit70a3abcb3aad4c5e74b4b9fa6ac76508ac157f55 (patch)
tree07f6516c19fd4f5eda0c7a5c8cb440570eafccfb /modules/codec/tests
parent162e5c5da90f4316725086fa6a2ae13b3c22104e (diff)
codec: Adding a basic csv decoder. Unfinished
Diffstat (limited to 'modules/codec/tests')
-rw-r--r--modules/codec/tests/csv.cpp50
1 files changed, 50 insertions, 0 deletions
diff --git a/modules/codec/tests/csv.cpp b/modules/codec/tests/csv.cpp
new file mode 100644
index 0000000..507d4cb
--- /dev/null
+++ b/modules/codec/tests/csv.cpp
@@ -0,0 +1,50 @@
+#include <forstio/test/suite.h>
+#include "../c++/data.h"
+#include "../c++/csv.h"
+
+#include <iostream>
+
+namespace {
+namespace schema {
+using namespace saw::schema;
+
+using ZeroDimArray = Array<Int32,0>;
+using OneDimArray = Array<Int32,1>;
+using TwoDimArray = Array<Int32,2>;
+using ThreeDimArray = Array<Int32,3>;
+
+using TestStruct = Struct<
+ Member<String, "string">,
+ Member<UInt64, "number">
+>;
+
+using TestUnion = Union<
+ Member<TwoDimArray, "two_dim_array">,
+ Member<UInt64, "number">
+>;
+
+using TestTuple = Tuple<
+ TwoDimArray,
+ UInt64
+>;
+
+using TestInt32Pair = Tuple<
+ Int32,
+ Int32
+>;
+
+SAW_TEST("Codec Csv Encode Basic"){
+ using namespace saw;
+
+ data <TestStruct, encode::Native> native_data;
+ native_data.template get<"string">().set("foo");
+ native_data.template get<"number">().set(140u);
+
+ data <TestStruct, encode::Csv> csv_data;
+ codec<TestStruct, encode::Csv> csv_codec;
+
+ auto eov = csv_codec.encode(native_data, csv_data);
+ SAW_EXPECT(eov.is_value(), "Couldn't encode data");
+}
+}
+}