From 5688c721c610e2a8931d6ec6f84dee2d4d65c763 Mon Sep 17 00:00:00 2001 From: Claudius Holeksa Date: Tue, 27 Jun 2023 12:41:56 +0200 Subject: c++,codec,core: Added Union to KelSimple and fixed the native data type. Made some errors more clear as well --- tests/codec.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'tests/codec.cpp') diff --git a/tests/codec.cpp b/tests/codec.cpp index 442ae57..7253ecc 100644 --- a/tests/codec.cpp +++ b/tests/codec.cpp @@ -18,6 +18,11 @@ using TestStruct = Struct< Member >; +using TestUnion = Union< + Member, + Member +>; + using TestTuple = Tuple< TwoDimArray, UInt64 @@ -196,6 +201,31 @@ SAW_TEST("KelSimple Struct write and read back"){ SAW_EXPECT(dec_tda.at(0,1).get() == 3, "Incorrect Decoding in array 0,1"); SAW_EXPECT(native.template get<"number">().get() == 410, "Incorrect Decoding in number"); } + +SAW_TEST("KelSimple Union write and read back"){ + using namespace saw; + + data native; + data simple; + + native.template set<"number">(data{}); + native.template get<"number">().set(410); + + codec codec; + + auto eov = codec.encode(native, simple); + SAW_EXPECT(eov.is_value(), "Encoding error"); + + // Reset values + native = {}; + + eov = codec.decode(simple, native); + SAW_EXPECT(eov.is_value(), "Decoding error"); + + SAW_EXPECT(native.template holds_alternative<"number">(), "Incorrect Decoding in array 0,1"); + SAW_EXPECT(native.template get<"number">().get() == 410, "Incorrect Decoding in number"); +} + SAW_TEST("KelSimple Tuple write and read back"){ using namespace saw; -- cgit v1.2.3