#include #include template class ModeTargetHelperTest : public canopen::ModeTargetHelper, public ::testing::Test{ public: ModeTargetHelperTest() : canopen::ModeTargetHelper(0) {} virtual bool read(const uint16_t &sw) { return false; } virtual bool write(canopen::Mode::OpModeAccesser& cw) { return false; } }; typedef ::testing::Types MyTypes; TYPED_TEST_CASE(ModeTargetHelperTest, MyTypes); TYPED_TEST(ModeTargetHelperTest, CheckNaN){ ASSERT_FALSE(this->setTarget(std::numeric_limits::quiet_NaN())); } TYPED_TEST(ModeTargetHelperTest, CheckZero){ ASSERT_TRUE(this->setTarget(0.0)); } TYPED_TEST(ModeTargetHelperTest, CheckOne){ ASSERT_TRUE(this->setTarget(1.0)); } TYPED_TEST(ModeTargetHelperTest, CheckMax){ double max = static_cast(std::numeric_limits::max()); ASSERT_TRUE(this->setTarget(max)); ASSERT_EQ(max, this->getTarget()); ASSERT_TRUE(this->setTarget(max-1)); ASSERT_EQ(max-1,this->getTarget()); ASSERT_TRUE(this->setTarget(max+1)); ASSERT_EQ(max, this->getTarget()); } TYPED_TEST(ModeTargetHelperTest, CheckMin){ double min = static_cast(std::numeric_limits::min()); ASSERT_TRUE(this->setTarget(min)); ASSERT_EQ(min, this->getTarget()); ASSERT_TRUE(this->setTarget(min-1)); ASSERT_EQ(min, this->getTarget()); ASSERT_TRUE(this->setTarget(min+1)); ASSERT_EQ(min+1,this->getTarget()); } int main(int argc, char **argv){ testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }