X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1274add43f7e746721102ae6f206c8b0f746271c..ea32fa53af6c7e8de7a8214f1df0245c63ae8a64:/tests/streams/datastreamtest.cpp diff --git a/tests/streams/datastreamtest.cpp b/tests/streams/datastreamtest.cpp index 8f48c285cf..2aed7a3b04 100644 --- a/tests/streams/datastreamtest.cpp +++ b/tests/streams/datastreamtest.cpp @@ -50,6 +50,17 @@ private: CPPUNIT_TEST( PseudoTest_UseBigEndian ); CPPUNIT_TEST( FloatRW ); CPPUNIT_TEST( DoubleRW ); + // Only test standard IEEE 754 formats if we're using IEEE extended + // format by default, otherwise the tests above already covered them. +#if wxUSE_APPLE_IEEE + CPPUNIT_TEST( PseudoTest_UseIEEE754 ); + CPPUNIT_TEST( FloatRW ); + CPPUNIT_TEST( DoubleRW ); + // Also retest little endian version with standard formats. + CPPUNIT_TEST( PseudoTest_UseLittleEndian ); + CPPUNIT_TEST( FloatRW ); + CPPUNIT_TEST( DoubleRW ); +#endif // wxUSE_APPLE_IEEE CPPUNIT_TEST_SUITE_END(); wxFloat64 TestFloatRW(wxFloat64 fValue); @@ -65,8 +76,15 @@ private: void NaNRW(); void PseudoTest_UseBigEndian() { ms_useBigEndianFormat = true; } + void PseudoTest_UseLittleEndian() { ms_useBigEndianFormat = false; } +#if wxUSE_APPLE_IEEE + void PseudoTest_UseIEEE754() { ms_useIEEE754 = true; } +#endif // wxUSE_APPLE_IEEE static bool ms_useBigEndianFormat; +#if wxUSE_APPLE_IEEE + static bool ms_useIEEE754; +#endif // wxUSE_APPLE_IEEE DECLARE_NO_COPY_CLASS(DataStreamTestCase) }; @@ -78,6 +96,9 @@ CPPUNIT_TEST_SUITE_REGISTRATION( DataStreamTestCase ); CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( DataStreamTestCase, "DataStreamTestCase" ); bool DataStreamTestCase::ms_useBigEndianFormat = false; +#if wxUSE_APPLE_IEEE +bool DataStreamTestCase::ms_useIEEE754 = false; +#endif // wxUSE_APPLE_IEEE DataStreamTestCase::DataStreamTestCase() { @@ -91,6 +112,11 @@ wxFloat64 DataStreamTestCase::TestFloatRW(wxFloat64 fValue) if ( ms_useBigEndianFormat ) pDataOutput.BigEndianOrdered(true); +#if wxUSE_APPLE_IEEE + if ( ms_useIEEE754 ) + pDataOutput.UseBasicPrecisions(); +#endif // wxUSE_APPLE_IEEE + pDataOutput << fValue; } @@ -99,6 +125,11 @@ wxFloat64 DataStreamTestCase::TestFloatRW(wxFloat64 fValue) if ( ms_useBigEndianFormat ) pDataInput.BigEndianOrdered(true); +#if wxUSE_APPLE_IEEE + if ( ms_useIEEE754 ) + pDataInput.UseBasicPrecisions(); +#endif // wxUSE_APPLE_IEEE + wxFloat64 fInFloat; pDataInput >> fInFloat;