home *** CD-ROM | disk | FTP | other *** search
- /*
- *******************************************************************************
- * *
- * COPYRIGHT: *
- * (C) Copyright International Business Machines Corporation, 1998 *
- * Licensed Material - Program-Property of IBM - All Rights Reserved. *
- * US Government Users Restricted Rights - Use, duplication, or disclosure *
- * restricted by GSA ADP Schedule Contract with IBM Corp. *
- * *
- *******************************************************************************
- *
- * File ieeetest.h
- *
- * Modification History:
- *
- * Date Name Description
- * 08/21/98 stephen Creation.
- *******************************************************************************
- */
-
- #ifndef _IEEETEST
- #define _IEEETEST
-
- int main(int argc, char **argv);
- void usage(const char *execName);
-
- // Very simple class for testing IEEE compliance
- class IEEETest
- {
- public:
-
- // additive constants for flags
- enum EModeFlags {
- kNone = 0x00,
- kVerboseMode = 0x01
- };
-
-
- IEEETest(int flags = kNone);
- ~IEEETest();
-
- // method returns the number of errors
- int run();
-
- private:
- // utility function for running a test function
- int runTest(const char *testName,
- int (IEEETest::*testFunc)(void));
-
- // the actual tests; methods return the number of errors
- int testNaN();
- int testPositiveInfinity();
- int testNegativeInfinity();
- int testZero();
-
- // subtests of testNaN
- int testIsNaN();
- int NaNGT();
- int NaNLT();
- int NaNGTE();
- int NaNLTE();
- int NaNE();
- int NaNNE();
-
-
- // logging utilities
- int getTestLevel() const;
- void increaseTestLevel();
- void decreaseTestLevel();
-
- IEEETest& log(char c);
- IEEETest& log(const char *s);
- IEEETest& log(int i);
- IEEETest& log(long l);
- IEEETest& log(double d);
- IEEETest& logln();
-
- IEEETest& err(char c);
- IEEETest& err(const char *s);
- IEEETest& err(int i);
- IEEETest& err(long l);
- IEEETest& err(double d);
- IEEETest& errln();
-
- // data members
- int mFlags; // flags - only verbose for now
- int mTestLevel; // indent level
-
- short mNeedLogIndent;
- short mNeedErrIndent;
- };
-
- inline int
- IEEETest::getTestLevel() const
- { return mTestLevel; }
-
- inline void
- IEEETest::increaseTestLevel()
- { mTestLevel++; }
-
- inline void
- IEEETest::decreaseTestLevel()
- { mTestLevel--; }
-
- #endif
-
- //eof
-