⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mcommon_test.cpp

📁 跨平台C++基础库
💻 CPP
字号:

#include "mcommon_test.h"
#include "../ENV_test.h"

#include "MCRT/mcommon.h"

// register the fixture into registry
CPPUNIT_TEST_SUITE_REGISTRATION( MCommonTest );//register test class in cppunit

void MCommonTest::setUp()
{
}

void MCommonTest::tearDown()
{
}

void MCommonTest::testIsEqual()
{
    double  dVal1   =   1.34;
    double  dVal2   =   1.34;
    CPPUNIT_ASSERT( MCommon::IsEqual( dVal1, dVal2 ) );

    double  dVal3   =   1.3412;
    double  dVal4   =   1.4321;
    CPPUNIT_ASSERT( ! MCommon::IsEqual( dVal3, dVal4 ) );
}

void MCommonTest::testSetUInt32()
{
    mUInt32 memVal  =   0x12345678;
    char            memAddr[4];

    MCommon::SetUInt32( memAddr, memVal );

#ifndef M_BIG_ENDIAN //little-endian
    CPPUNIT_ASSERT(
            (memAddr[0] == 0x78)
        &&  (memAddr[1] == 0x56)
        &&  (memAddr[2] == 0x34)
        &&  (memAddr[3] == 0x12)
        );
#else //big-endian
    CPPUNIT_ASSERT(
            (memAddr[0] == 0x12)
        &&  (memAddr[1] == 0x34)
        &&  (memAddr[2] == 0x56)
        &&  (memAddr[3] == 0x78)
        );
#endif //end M_BIG_ENDIAN
}

void MCommonTest::testGetUInt32()
{
    mUInt32 memVal  =   0;
    char            memAddr[4];
    memAddr[0]  =   0x78;
    memAddr[1]  =   0x56;
    memAddr[2]  =   0x34;
    memAddr[3]  =   0x12;

    memVal  =   MCommon::GetUInt32( memAddr );

#ifndef M_BIG_ENDIAN //little-endian
    CPPUNIT_ASSERT( memVal == 0x12345678 );
#else //big-endian
    CPPUNIT_ASSERT( memVal == 0x78563412 );
#endif //end M_BIG_ENDIAN
}

void MCommonTest::testSetUInt16()
{
    mUInt16 memVal  =   0x1234;
    char    memAddr[2];

    MCommon::SetUInt16( memAddr, memVal );

#ifndef M_BIG_ENDIAN //little-endian
    CPPUNIT_ASSERT( (memAddr[0] == 0x34) && (memAddr[1] == 0x12) );
#else //big-endian
    CPPUNIT_ASSERT( (memAddr[0] == 0x12) && (memAddr[1] == 0x34) );
#endif //end M_BIG_ENDIAN
}

void MCommonTest::testGetUInt16()
{
    mUInt16 memVal  =   0;
    char    memAddr[2];
    memAddr[0]  =   0x34;
    memAddr[1]  =   0x12;

    memVal  =   MCommon::GetUInt16( memAddr );

#ifndef M_BIG_ENDIAN //little-endian
    CPPUNIT_ASSERT( memVal == 0x1234 );
#else //big-endian
    CPPUNIT_ASSERT( memVal == 0x3412 );
#endif //end M_BIG_ENDIAN
}

void MCommonTest::testSetGetDouble()
{
    double  memVal1 =   1234.56789;
    double  memVal2 =   0.0;
    char    memAddr[sizeof(double)];

    MCommon::SetDouble( memAddr, memVal1 );
    memVal2 =   MCommon::GetDouble( memAddr );

    CPPUNIT_ASSERT( MCommon::IsEqual( memVal1, memVal2 ) );
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -