///------------------------------------------------------------------------------------------------- /// /// \file CIdentifierTest.hpp /// \brief Test Definitions for OpenViBE Identifier Class. /// \author Thibaut Monseigne (Inria). /// \version 1.0. /// \date 23/06/2020. /// \copyright GNU Affero General Public License v3.0. /// ///------------------------------------------------------------------------------------------------- #pragma once #include #include #include "utils.hpp" //--------------------------------------------------------------------------------------------------- TEST(CIdentifier_Tests, constructors) { OpenViBE::CIdentifier id1, id2(10), id3(-1), id4(10, 10), id5("false string"), id6("(0x00000000, 0x0000000A)"); const uint64_t undef = std::numeric_limits::max(); EXPECT_EQ(id1.id(), undef) << ErrorMsg("Default Constructor", id1.id(), undef); EXPECT_EQ(id2.id(), 10) << ErrorMsg("Integer Constructor", id2.id(), 10); EXPECT_EQ(id3.id(), undef) << ErrorMsg("Negative value Constructor", id3.id(), undef); EXPECT_EQ(id4.id(), 42949672970) << ErrorMsg("Double ID Constructor", id4.id(), 42949672970); // 10 * 2^32 + 10 EXPECT_EQ(id5.id(), undef) << ErrorMsg("False string Constructor", id5.id(), undef); EXPECT_EQ(id6.id(), 10) << ErrorMsg("String Constructor", id6.id(), 10); } //--------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------- TEST(CIdentifier_Tests, operators) { OpenViBE::CIdentifier id(10); const OpenViBE::CIdentifier id2(10); const uint64_t undef = std::numeric_limits::max(); id = 0; EXPECT_EQ(id.id(), 0) << ErrorMsg("Assignement operator with unsigned", id.id(), 0); id = OpenViBE::CIdentifier::undefined(); EXPECT_EQ(id.id(), undef) << ErrorMsg("Assignement operator with CIdentifier", id.id(), undef); ++id; // No change if undef EXPECT_EQ(id.id(), undef) << ErrorMsg("++ operator with undefined Identifier", id.id(), undef); --id; // No change if undef EXPECT_EQ(id.id(), undef) << ErrorMsg("-- operator with undefined Identifier", id.id(), undef); id = 0; --id; // 0 became max - 1 EXPECT_EQ(id.id(), undef - 1) << ErrorMsg("-- operator with Identifier 0", id.id(), undef - 1); ++id; // max - 1 became 0 EXPECT_EQ(id.id(), 0) << ErrorMsg("++ operator with Identifier 0", id.id(), undef - 1); id = 0; EXPECT_TRUE(id<=id && id>=id && id < id2 && id2 > id) << ErrorMsg("Comparison Operator", id.id(), id2.id()); std::stringstream ss; ss << id; EXPECT_EQ(ss.str(), "(0x00000000, 0x00000000)") << ErrorMsg("ostream operator", ss.str(), "(0x00000000, 0x00000000)"); } //---------------------------------------------------------------------------------------------------