mcommon_test.cpp

来自「跨平台C++基础库」· C++ 代码 · 共 113 行

CPP
113
字号

#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 + =
减小字号Ctrl + -
显示快捷键?