blob: a78dfdd0c3b322c7a982106c6512c2a0fe0a745e [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011 - 2012 ACIN, nxtControl, 2018 TU Vienna/ACIN
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Martin Melik Merkumians, Ingo Hegny, Alois Zoitl, Stanislav Meduna - initial API and implementation and/or initial documentation
* Martin Melik Merkumians - Adds cast template tests
*******************************************************************************/
#ifdef FORTE_USE_REAL_DATATYPE
#include <boost/test/unit_test.hpp>
#include <boost/test/floating_point_comparison.hpp>
#include "../../../src/core/datatypes/forte_real.h"
//BOOLEAN
#include "../../../src/core/datatypes/forte_bool.h"
//BIT-Datatypes
#include "../../../src/core/datatypes/forte_byte.h"
#include "../../../src/core/datatypes/forte_word.h"
#include "../../../src/core/datatypes/forte_dword.h"
//INT-Datatypes
#include "../../../src/core/datatypes/forte_sint.h"
#include "../../../src/core/datatypes/forte_usint.h"
#include "../../../src/core/datatypes/forte_int.h"
#include "../../../src/core/datatypes/forte_uint.h"
#include "../../../src/core/datatypes/forte_dint.h"
#include "../../../src/core/datatypes/forte_udint.h"
//STRING-Datatypes
#include "../../../src/core/datatypes/forte_string.h"
#include "../../../src/core/datatypes/forte_wstring.h"
//TIME
#include "../../../src/core/datatypes/forte_time.h"
#ifdef FORTE_USE_64BIT_DATATYPES
#include "../../../src/core/datatypes/forte_lword.h"
#include "../../../src/core/datatypes/forte_lint.h"
#include "../../../src/core/datatypes/forte_ulint.h"
#include "../../../src/core/datatypes/forte_lreal.h"
#endif //FORTE_USE_64BIT_DATATYPES
using namespace boost::unit_test;
BOOST_AUTO_TEST_SUITE(CIEC_REAL_casts_function_test)
BOOST_AUTO_TEST_CASE(CASTS_REAL_to_BOOL)
{
CIEC_REAL nTestReal0;
CIEC_REAL nTestReal1;
CIEC_REAL nTestReal2_2874e6;
CIEC_REAL nTestRealm6_2587em4;
CIEC_REAL nTestReal1_0em37;
CIEC_REAL nTestReal36;
CIEC_BOOL bTestBool;
//check initial values
BOOST_CHECK_EQUAL(nTestReal0, 0.0f);
BOOST_CHECK_EQUAL(nTestReal1, 0.0f);
BOOST_CHECK_EQUAL(nTestReal2_2874e6, 0.0f);
BOOST_CHECK_EQUAL(nTestRealm6_2587em4, 0.0f);
BOOST_CHECK_EQUAL(nTestReal1_0em37, 0.0f);
BOOST_CHECK_EQUAL(nTestReal36, 0.0f);
nTestReal0=0.0f;
nTestReal1=1.0f;
nTestReal2_2874e6=2.2874e6f;
nTestRealm6_2587em4=-6.2587e-4f;
nTestReal1_0em37=1.0e-37f;
nTestReal36=36.0f;
BOOST_CHECK_EQUAL(0.0f, nTestReal0);
BOOST_CHECK_EQUAL(1.0f, nTestReal1);
BOOST_CHECK_EQUAL(2.2874e6f, nTestReal2_2874e6);
BOOST_CHECK_EQUAL(-6.2587e-4f, nTestRealm6_2587em4);
BOOST_CHECK_EQUAL(1.0e-37f, nTestReal1_0em37);
BOOST_CHECK_EQUAL(36.0f, nTestReal36);
//checks
CIEC_ANY::specialCast(nTestReal0, bTestBool);
BOOST_CHECK_EQUAL(false, bTestBool);
CIEC_ANY::specialCast(nTestReal1, bTestBool);
BOOST_CHECK_EQUAL(true, bTestBool);
CIEC_ANY::specialCast(nTestReal2_2874e6, bTestBool);
BOOST_CHECK_EQUAL(true, bTestBool);
CIEC_ANY::specialCast(nTestRealm6_2587em4, bTestBool);
BOOST_CHECK_EQUAL(false, bTestBool);
}
BOOST_AUTO_TEST_CASE(CASTS_REAL_to_BITDTs)
{
CIEC_BYTE nTestByte;
CIEC_WORD nTestWord;
CIEC_DWORD nTestDWord;
#ifdef FORTE_USE_64BIT_DATATYPES
CIEC_LWORD nTestLWord;
#endif //FORTE_USE_64BIT_DATATYPES
CIEC_REAL nTestReal0;
CIEC_REAL nTestReal1;
CIEC_REAL nTestReal2_2874e6;
CIEC_REAL nTestRealm6_2587em4;
CIEC_REAL nTestReal1_0em37;
CIEC_REAL nTestReal36;
//check initial values
BOOST_CHECK_EQUAL(nTestReal0, 0.0f);
BOOST_CHECK_EQUAL(nTestReal1, 0.0f);
BOOST_CHECK_EQUAL(nTestReal2_2874e6, 0.0f);
BOOST_CHECK_EQUAL(nTestRealm6_2587em4, 0.0f);
BOOST_CHECK_EQUAL(nTestReal1_0em37, 0.0f);
BOOST_CHECK_EQUAL(nTestReal36, 0.0f);
nTestReal0=0.0f;
nTestReal1=1.0f;
nTestReal2_2874e6=2.2874e6f;
nTestRealm6_2587em4=-6.2587e-4f;
nTestReal1_0em37=1.0e-37f;
nTestReal36=36.0f;
BOOST_CHECK_EQUAL(0.0f, nTestReal0);
BOOST_CHECK_EQUAL(1.0f, nTestReal1);
BOOST_CHECK_EQUAL(2.2874e6f, nTestReal2_2874e6);
BOOST_CHECK_EQUAL(-6.2587e-4f, nTestRealm6_2587em4);
BOOST_CHECK_EQUAL(1.0e-37f, nTestReal1_0em37);
BOOST_CHECK_EQUAL(36.0f, nTestReal36);
//the 4byte hex value for 36.0: 0x42100000
//the 4byte hex value for -6.2587e-4f: 0xba24116d
//the 4byte hex value for 1: 0x3f800000
//toByte
CIEC_ANY::specialCast(nTestReal0, nTestByte);
BOOST_CHECK_EQUAL(nTestByte, 0U);
CIEC_ANY::specialCast(nTestReal1, nTestByte);
BOOST_CHECK_EQUAL(nTestByte, 0x00);
CIEC_ANY::specialCast(nTestReal36, nTestByte);
BOOST_CHECK_EQUAL(nTestByte, 0x00);
CIEC_ANY::specialCast(nTestRealm6_2587em4, nTestByte);
BOOST_CHECK_EQUAL(nTestByte, 0x6d);
//toWord
CIEC_ANY::specialCast(nTestReal0, nTestWord);
BOOST_CHECK_EQUAL(nTestWord, 0U);
CIEC_ANY::specialCast(nTestReal1, nTestWord);
BOOST_CHECK_EQUAL(nTestWord, 0x00);
CIEC_ANY::specialCast(nTestReal36, nTestWord);
BOOST_CHECK_EQUAL(nTestWord, 0x0000);
CIEC_ANY::specialCast(nTestRealm6_2587em4, nTestWord);
BOOST_CHECK_EQUAL(nTestWord, 0x116d);
//toDWord
CIEC_ANY::specialCast(nTestReal0, nTestDWord);
BOOST_CHECK_EQUAL(nTestDWord, 0UL);
CIEC_ANY::specialCast(nTestReal1, nTestDWord);
BOOST_CHECK_EQUAL(nTestDWord, 0x3f800000);
CIEC_ANY::specialCast(nTestReal36, nTestDWord);
BOOST_CHECK_EQUAL(nTestDWord, 0x42100000);
CIEC_ANY::specialCast(nTestRealm6_2587em4, nTestDWord);
BOOST_CHECK_EQUAL(nTestDWord, 0xba24116d);
#ifdef FORTE_USE_64BIT_DATATYPES
//toLWord
CIEC_ANY::specialCast(nTestReal0, nTestLWord);
BOOST_CHECK_EQUAL(nTestLWord, 0ULL);
CIEC_ANY::specialCast(nTestReal1, nTestLWord);
BOOST_CHECK_EQUAL(nTestLWord, 0x3f800000);
CIEC_ANY::specialCast(nTestReal36, nTestLWord);
BOOST_CHECK_EQUAL(nTestLWord, 0x42100000);
CIEC_ANY::specialCast(nTestRealm6_2587em4, nTestLWord);
BOOST_CHECK_EQUAL(nTestLWord, 0xba24116d);
#endif
}
BOOST_AUTO_TEST_CASE(CASTS_REAL_to_INTS)
{
CIEC_USINT nTestUSInt;
CIEC_INT nTestInt;
CIEC_UINT nTestUInt;
CIEC_DINT nTestDInt;
CIEC_UDINT nTestUDInt;
#ifdef FORTE_USE_64BIT_DATATYPES
CIEC_LINT nTestLInt;
CIEC_ULINT nTestULInt;
#endif //FORTE_USE_64BIT_DATATYPES
CIEC_REAL nTestReal0;
CIEC_REAL nTestReal1;
CIEC_REAL nTestReal2_2874e6;
CIEC_REAL nTestRealm6_2587em4;
CIEC_REAL nTestReal1_0em37;
CIEC_REAL nTestReal36;
//check initial values
BOOST_CHECK_EQUAL(nTestReal0, 0.0f);
BOOST_CHECK_EQUAL(nTestReal1, 0.0f);
BOOST_CHECK_EQUAL(nTestReal2_2874e6, 0.0f);
BOOST_CHECK_EQUAL(nTestRealm6_2587em4, 0.0f);
BOOST_CHECK_EQUAL(nTestReal1_0em37, 0.0f);
BOOST_CHECK_EQUAL(nTestReal36, 0.0f);
nTestReal0=0.0f;
nTestReal1=1.0f;
nTestReal2_2874e6=2.2874e6f;
nTestRealm6_2587em4=-6.2587e-4f;
nTestReal1_0em37=1.0e-37f;
nTestReal36=36.0f;
BOOST_CHECK_EQUAL(0.0f, nTestReal0);
BOOST_CHECK_EQUAL(1.0f, nTestReal1);
BOOST_CHECK_EQUAL(2.2874e6f, nTestReal2_2874e6);
BOOST_CHECK_EQUAL(-6.2587e-4f, nTestRealm6_2587em4);
BOOST_CHECK_EQUAL(1.0e-37f, nTestReal1_0em37);
BOOST_CHECK_EQUAL(36.0f, nTestReal36);
//toUSINT
CIEC_ANY::specialCast(nTestReal0, nTestUSInt);
BOOST_CHECK_EQUAL(nTestUSInt, 0U);
CIEC_ANY::specialCast(nTestReal1, nTestUSInt);
BOOST_CHECK_EQUAL(nTestUSInt, 1U);
CIEC_ANY::specialCast(nTestReal36, nTestUSInt);
BOOST_CHECK_EQUAL(nTestUSInt, 36U);
//toINT
CIEC_ANY::specialCast(nTestReal0, nTestInt);
BOOST_CHECK_EQUAL(nTestInt, 0);
CIEC_ANY::specialCast(nTestReal1, nTestInt);
BOOST_CHECK_EQUAL(nTestInt, 1);
CIEC_ANY::specialCast(nTestReal36, nTestInt);
BOOST_CHECK_EQUAL(nTestInt, 36);
//toUINT
CIEC_ANY::specialCast(nTestReal0, nTestUInt);
BOOST_CHECK_EQUAL(nTestUInt, 0U);
CIEC_ANY::specialCast(nTestReal1, nTestUInt);
BOOST_CHECK_EQUAL(nTestUInt, 1U);
CIEC_ANY::specialCast(nTestReal36, nTestUInt);
BOOST_CHECK_EQUAL(nTestUInt, 36U);
//toDINT
CIEC_ANY::specialCast(nTestReal0, nTestDInt);
BOOST_CHECK_EQUAL(nTestDInt, 0L);
CIEC_ANY::specialCast(nTestReal1, nTestDInt);
BOOST_CHECK_EQUAL(nTestDInt, 1L);
CIEC_ANY::specialCast(nTestReal36, nTestDInt);
BOOST_CHECK_EQUAL(nTestDInt, 36L);
//toUDINT
CIEC_ANY::specialCast(nTestReal0, nTestUDInt);
BOOST_CHECK_EQUAL(nTestUDInt, 0UL);
CIEC_ANY::specialCast(nTestReal1, nTestUDInt);
BOOST_CHECK_EQUAL(nTestUDInt, 1UL);
CIEC_ANY::specialCast(nTestReal36, nTestUDInt);
BOOST_CHECK_EQUAL(nTestUDInt, 36UL);
#ifdef FORTE_USE_64BIT_DATATYPES
//toLINT
CIEC_ANY::specialCast(nTestReal0, nTestLInt);
BOOST_CHECK_EQUAL(nTestLInt, 0LL);
CIEC_ANY::specialCast(nTestReal1, nTestLInt);
BOOST_CHECK_EQUAL(nTestLInt, 1LL);
CIEC_ANY::specialCast(nTestReal36, nTestLInt);
BOOST_CHECK_EQUAL(nTestLInt, 36LL);
//toULINT
CIEC_ANY::specialCast(nTestReal0, nTestULInt);
BOOST_CHECK_EQUAL(nTestULInt, 0ULL);
CIEC_ANY::specialCast(nTestReal1, nTestULInt);
BOOST_CHECK_EQUAL(nTestULInt, 1ULL);
CIEC_ANY::specialCast(nTestReal36, nTestULInt);
BOOST_CHECK_EQUAL(nTestULInt, 36ULL);
#endif
}
BOOST_AUTO_TEST_CASE(CASTS_REAL_to_LREAL)
{
CIEC_REAL nTestReal0;
CIEC_REAL nTestReal1;
CIEC_REAL nTestReal2_2874e6;
CIEC_REAL nTestRealm6_2587em4;
CIEC_REAL nTestReal1_0em37;
CIEC_REAL nTestReal36;
//check initial values
BOOST_CHECK_EQUAL(nTestReal0, 0.0f);
BOOST_CHECK_EQUAL(nTestReal1, 0.0f);
BOOST_CHECK_EQUAL(nTestReal2_2874e6, 0.0f);
BOOST_CHECK_EQUAL(nTestRealm6_2587em4, 0.0f);
BOOST_CHECK_EQUAL(nTestReal1_0em37, 0.0f);
BOOST_CHECK_EQUAL(nTestReal36, 0.0f);
nTestReal0=0.0f;
nTestReal1=1.0f;
nTestReal2_2874e6=2.2874e6f;
nTestRealm6_2587em4=-6.2587e-4f;
nTestReal1_0em37=1.0e-37f;
nTestReal36=36.0f;
BOOST_CHECK_EQUAL(0.0f, nTestReal0);
BOOST_CHECK_EQUAL(1.0f, nTestReal1);
BOOST_CHECK_EQUAL(2.2874e6f, nTestReal2_2874e6);
BOOST_CHECK_EQUAL(-6.2587e-4f, nTestRealm6_2587em4);
BOOST_CHECK_EQUAL(1.0e-37f, nTestReal1_0em37);
BOOST_CHECK_EQUAL(36.0f, nTestReal36);
#ifdef FORTE_USE_64BIT_DATATYPES
CIEC_LREAL nTestLReal;
//toLREAL
BOOST_CHECK_EQUAL(1.0f, nTestReal1);
BOOST_CHECK_EQUAL(2.2874e6f, nTestReal2_2874e6);
BOOST_CHECK_EQUAL(-6.2587e-4f, nTestRealm6_2587em4);
BOOST_CHECK_EQUAL(1.0e-37f, nTestReal1_0em37);
BOOST_CHECK_EQUAL(36.0f, nTestReal36);
CIEC_ANY::specialCast(nTestReal0, nTestLReal);
BOOST_CHECK_EQUAL((double)0.0f, nTestLReal);
CIEC_ANY::specialCast(nTestReal1, nTestLReal);
BOOST_CHECK_EQUAL((double)1.0f, nTestLReal);
nTestLReal.setValue(nTestReal2_2874e6);
CIEC_ANY::specialCast(nTestReal2_2874e6, nTestLReal);
BOOST_CHECK_EQUAL(((double)2.2874e6f), nTestLReal);
CIEC_ANY::specialCast(nTestRealm6_2587em4, nTestLReal);
BOOST_CHECK_EQUAL(((double)-6.2587e-4f), nTestLReal);
nTestLReal.setValue(nTestReal1_0em37);
CIEC_ANY::specialCast(nTestReal1_0em37, nTestLReal);
BOOST_CHECK_EQUAL(((double)1.0e-37f), nTestLReal);
CIEC_ANY::specialCast(nTestReal36, nTestLReal);
BOOST_CHECK_EQUAL(((double)36.0f), nTestLReal);
#endif //FORTE_USE_64BIT_DATATYPES
}
BOOST_AUTO_TEST_CASE(CASTS_REAL_to_TIME)
{
CIEC_TIME nTestTime;
CIEC_REAL nTestReal0;
CIEC_REAL nTestReal1;
CIEC_REAL nTestReal2_2874e6;
CIEC_REAL nTestRealm6_2587em4;
CIEC_REAL nTestReal1_0em37;
CIEC_REAL nTestReal36;
//check initial values
BOOST_CHECK_EQUAL(nTestReal0, 0.0f);
BOOST_CHECK_EQUAL(nTestReal1, 0.0f);
BOOST_CHECK_EQUAL(nTestReal2_2874e6, 0.0f);
BOOST_CHECK_EQUAL(nTestRealm6_2587em4, 0.0f);
BOOST_CHECK_EQUAL(nTestReal1_0em37, 0.0f);
BOOST_CHECK_EQUAL(nTestReal36, 0.0f);
nTestReal0=0.0f;
nTestReal1=1.0f;
nTestReal2_2874e6=2.2874e6f;
nTestRealm6_2587em4=-6.2587e-4f;
nTestReal1_0em37=1.0e-37f;
nTestReal36=36.0f;
BOOST_CHECK_EQUAL(0.0f, nTestReal0);
BOOST_CHECK_EQUAL(1.0f, nTestReal1);
BOOST_CHECK_EQUAL(2.2874e6f, nTestReal2_2874e6);
BOOST_CHECK_EQUAL(-6.2587e-4f, nTestRealm6_2587em4);
BOOST_CHECK_EQUAL(1.0e-37f, nTestReal1_0em37);
BOOST_CHECK_EQUAL(36.0f, nTestReal36);
//toTime
CIEC_ANY::specialCast(nTestReal0, nTestTime);
BOOST_CHECK_EQUAL(nTestTime, 0);
CIEC_ANY::specialCast(nTestReal1, nTestTime);
BOOST_CHECK_EQUAL(nTestTime, 1);
CIEC_ANY::specialCast(nTestReal36, nTestTime);
BOOST_CHECK_EQUAL(nTestTime, 36);
}
BOOST_AUTO_TEST_CASE(REAL_Castable_test)
{
bool bUp, bDown;
BOOST_CHECK(CIEC_ANY::isCastable(CIEC_ANY::e_REAL, CIEC_ANY::e_BOOL, bUp, bDown)); BOOST_CHECK(! bUp); BOOST_CHECK(bDown);
BOOST_CHECK(CIEC_ANY::isCastable(CIEC_ANY::e_REAL, CIEC_ANY::e_SINT, bUp, bDown)); BOOST_CHECK(! bUp); BOOST_CHECK(bDown);
BOOST_CHECK(CIEC_ANY::isCastable(CIEC_ANY::e_REAL, CIEC_ANY::e_INT, bUp, bDown)); BOOST_CHECK(! bUp); BOOST_CHECK(bDown);
BOOST_CHECK(CIEC_ANY::isCastable(CIEC_ANY::e_REAL, CIEC_ANY::e_DINT, bUp, bDown)); BOOST_CHECK(! bUp); BOOST_CHECK(bDown);
BOOST_CHECK(CIEC_ANY::isCastable(CIEC_ANY::e_REAL, CIEC_ANY::e_LINT, bUp, bDown)); BOOST_CHECK(! bUp); BOOST_CHECK(bDown);
BOOST_CHECK(CIEC_ANY::isCastable(CIEC_ANY::e_REAL, CIEC_ANY::e_USINT, bUp, bDown)); BOOST_CHECK(! bUp); BOOST_CHECK(bDown);
BOOST_CHECK(CIEC_ANY::isCastable(CIEC_ANY::e_REAL, CIEC_ANY::e_UINT, bUp, bDown)); BOOST_CHECK(! bUp); BOOST_CHECK(bDown);
BOOST_CHECK(CIEC_ANY::isCastable(CIEC_ANY::e_REAL, CIEC_ANY::e_UDINT, bUp, bDown)); BOOST_CHECK(! bUp); BOOST_CHECK(bDown);
BOOST_CHECK(CIEC_ANY::isCastable(CIEC_ANY::e_REAL, CIEC_ANY::e_ULINT, bUp, bDown)); BOOST_CHECK(! bUp); BOOST_CHECK(bDown);
BOOST_CHECK(CIEC_ANY::isCastable(CIEC_ANY::e_REAL, CIEC_ANY::e_BYTE, bUp, bDown)); BOOST_CHECK(! bUp); BOOST_CHECK(bDown);
BOOST_CHECK(CIEC_ANY::isCastable(CIEC_ANY::e_REAL, CIEC_ANY::e_WORD, bUp, bDown)); BOOST_CHECK(! bUp); BOOST_CHECK(bDown);
BOOST_CHECK(CIEC_ANY::isCastable(CIEC_ANY::e_REAL, CIEC_ANY::e_DWORD, bUp, bDown)); BOOST_CHECK(bUp); BOOST_CHECK(! bDown);
BOOST_CHECK(CIEC_ANY::isCastable(CIEC_ANY::e_REAL, CIEC_ANY::e_LWORD, bUp, bDown)); BOOST_CHECK(bUp); BOOST_CHECK(! bDown);
BOOST_CHECK(!CIEC_ANY::isCastable(CIEC_ANY::e_REAL, CIEC_ANY::e_DATE, bUp, bDown)); BOOST_CHECK(! bUp); BOOST_CHECK(! bDown);
BOOST_CHECK(!CIEC_ANY::isCastable(CIEC_ANY::e_REAL, CIEC_ANY::e_TIME_OF_DAY, bUp, bDown)); BOOST_CHECK(! bUp); BOOST_CHECK(! bDown);
BOOST_CHECK(!CIEC_ANY::isCastable(CIEC_ANY::e_REAL, CIEC_ANY::e_DATE_AND_TIME, bUp, bDown)); BOOST_CHECK(! bUp); BOOST_CHECK(! bDown);
BOOST_CHECK(!CIEC_ANY::isCastable(CIEC_ANY::e_REAL, CIEC_ANY::e_TIME, bUp, bDown)); BOOST_CHECK(! bUp); BOOST_CHECK(! bDown);
BOOST_CHECK(CIEC_ANY::isCastable(CIEC_ANY::e_REAL, CIEC_ANY::e_REAL, bUp, bDown)); BOOST_CHECK(bUp); BOOST_CHECK(! bDown);
BOOST_CHECK(CIEC_ANY::isCastable(CIEC_ANY::e_REAL, CIEC_ANY::e_LREAL, bUp, bDown)); BOOST_CHECK(bUp); BOOST_CHECK(! bDown);
BOOST_CHECK(!CIEC_ANY::isCastable(CIEC_ANY::e_REAL, CIEC_ANY::e_STRING, bUp, bDown)); BOOST_CHECK(! bUp); BOOST_CHECK(! bDown);
BOOST_CHECK(!CIEC_ANY::isCastable(CIEC_ANY::e_REAL, CIEC_ANY::e_WSTRING, bUp, bDown)); BOOST_CHECK(! bUp); BOOST_CHECK(! bDown);
}
BOOST_AUTO_TEST_CASE(Explict_cast_operator_to_REAL)
{
CIEC_USINT nUsint(2);
CIEC_UINT nUint(3);
CIEC_UDINT nUdint(4);
CIEC_ULINT nUlint(5);
CIEC_SINT nSint(6);
CIEC_INT nInt(7);
CIEC_DINT nDint(8);
CIEC_LINT nLint(9);
CIEC_REAL nReal(10);
CIEC_LREAL nLreal(11);
CIEC_DWORD nDword(0x41200000);
CIEC_REAL nResult(0);
nResult = CIEC_ANY::cast<CIEC_REAL>(nUsint);
BOOST_TEST(nResult == 2);
nResult = CIEC_ANY::cast<CIEC_REAL>(nUint);
BOOST_TEST(nResult == 3);
nResult = CIEC_ANY::cast<CIEC_REAL>(nUdint);
BOOST_TEST(nResult == 4);
nResult = CIEC_ANY::cast<CIEC_REAL>(nUlint);
BOOST_TEST(nResult == 5);
nResult = CIEC_ANY::cast<CIEC_REAL>(nSint);
BOOST_TEST(nResult == 6);
nResult = CIEC_ANY::cast<CIEC_REAL>(nInt);
BOOST_TEST(nResult == 7);
nResult = CIEC_ANY::cast<CIEC_REAL>(nDint);
BOOST_TEST(nResult == 8);
nResult = CIEC_ANY::cast<CIEC_REAL>(nLint);
BOOST_TEST(nResult == 9);
nResult = CIEC_ANY::cast<CIEC_REAL>(nReal);
BOOST_TEST(nResult == 10);
nResult = CIEC_ANY::cast<CIEC_REAL>(nLreal);
BOOST_TEST(nResult == 11);
nResult = CIEC_ANY::cast<CIEC_REAL>(nDword);
BOOST_TEST(nResult == 10);
}
BOOST_AUTO_TEST_SUITE_END()
#endif //FORTE_USE_REAL_DATATYPE