Ejemplo n.º 1
0
void CheckOuterInstance(const Outer_Class& x)
{
    UT_ASSERT(x.booleanScalar_value()); //  == true
    UT_ASSERT(x.uint8Scalar_value() == 8);
    UT_ASSERT(x.sint8Scalar_value() == -8);
    UT_ASSERT(x.uint16Scalar_value() == 16);
    UT_ASSERT(x.sint16Scalar_value() == -16);
    UT_ASSERT(x.uint32Scalar_value() == 32);
    UT_ASSERT(x.sint32Scalar_value() == -32);
    UT_ASSERT(x.uint64Scalar_value() == 64);
    UT_ASSERT(x.sint64Scalar_value() == -64);
    UT_ASSERT(Close(x.real32Scalar_value(), 32.32));
    UT_ASSERT(Close(x.real64Scalar_value(), 64.64));
    UT_ASSERT(x.char16Scalar_value() == 16);

    {
        Datetime datetimeScalar;
        datetimeScalar.Set(MI_T("20091231120030.123456+360"));
        UT_ASSERT(x.datetimeScalar_value() == datetimeScalar);
    }

    UT_ASSERT(x.stringScalar_value() == ZT("string"));

    CheckInnerInstance(x.instanceScalar_value());

    UT_ASSERT(CheckArray<Boolean>::func(x.booleanArray_value(), true, false));
    UT_ASSERT(CheckArray<Uint8>::func(x.uint8Array_value(), 8, 8));
    UT_ASSERT(CheckArray<Sint8>::func(x.sint8Array_value(), -8, -8));
    UT_ASSERT(CheckArray<Uint16>::func(x.uint16Array_value(), 16, 16));
    UT_ASSERT(CheckArray<Sint16>::func(x.sint16Array_value(), -16, -16));
    UT_ASSERT(CheckArray<Uint32>::func(x.uint32Array_value(), 32, 32));
    UT_ASSERT(CheckArray<Sint32>::func(x.sint32Array_value(), -32, -32));
    UT_ASSERT(CheckArray<Uint64>::func(x.uint64Array_value(), 64, 64));
    UT_ASSERT(CheckArray<Sint64>::func(x.sint64Array_value(), -64, -64));
    UT_ASSERT(CheckArray<Real32>::func(x.real32Array_value(), 32.32f, 32.32f));
    UT_ASSERT(CheckArray<Real64>::func(x.real64Array_value(), 64.64, 64.64));
    UT_ASSERT(CheckArray<Char16>::func(x.char16Array_value(), 16, 16));
    UT_ASSERT(CheckArray<String>::func(x.stringArray_value(), 
        String(ZT("string")), String(ZT("string"))));

    {
        Datetime dt;
        dt.Set(ZT("20091231120030.123456+360"));
        UT_ASSERT(CheckArray<Datetime>::func(x.datetimeArray_value(), dt, dt));
    }

    {
        UT_ASSERT(x.instanceArray_value().GetSize() == 2);
        CheckInnerInstance(x.instanceArray_value()[0]);
        CheckInnerInstance(x.instanceArray_value()[1]);
    }
}