]> git.saurik.com Git - wxWidgets.git/blobdiff - tests/streams/datastreamtest.cpp
Make @genericAppearance Doxygen macro consistent with @appearance.
[wxWidgets.git] / tests / streams / datastreamtest.cpp
index 8f48c285cf2542554129eaf928127e24b05241c1..0b5b09f8475793e1776e9e0be4aa840b321b02ae 100644 (file)
@@ -3,7 +3,6 @@
 // Purpose:     wxDataXXXStream Unit Test
 // Author:      Ryan Norton
 // Created:     2004-08-14
-// RCS-ID:      $Id$
 // Copyright:   (c) 2004 Ryan Norton
 ///////////////////////////////////////////////////////////////////////////////
 
@@ -50,6 +49,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 +75,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 +95,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 +111,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 +124,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;