1 /* _______________________________________________________________________ 2 3 Surfpack: A Software Library of Multidimensional Surface Fitting Methods 4 Copyright (c) 2006, Sandia National Laboratories. 5 This software is distributed under the GNU Lesser General Public License. 6 For more information, see the README file in the top Surfpack directory. 7 _______________________________________________________________________ */ 8 9 #ifdef HAVE_CONFIG_H 10 #include "surfpack_config.h" 11 #endif 12 13 #ifndef SURFPOINTTEST_H 14 #define SURFPOINTTEST_H 15 16 #include <cppunit/extensions/HelperMacros.h> 17 18 #include "SurfPoint.h" 19 #include "SurfData.h" 20 21 class SurfPointTest : public CppUnit::TestFixture 22 { 23 CPPUNIT_TEST_SUITE( SurfPointTest ); 24 CPPUNIT_TEST( testSurfPointPtrLessThan ); 25 CPPUNIT_TEST( testConstructor ); 26 CPPUNIT_TEST( testConstructorXSpecified ); 27 CPPUNIT_TEST( testConstructorXSpecifiedPlusOneF ); 28 CPPUNIT_TEST( testConstructorXSpecifiedFVector ); 29 CPPUNIT_TEST( testConstructorFromIStreamBinary ); 30 CPPUNIT_TEST( testConstructorFromIStreamText ); 31 CPPUNIT_TEST( testCopyConstructor ); 32 CPPUNIT_TEST_EXCEPTION( testConstructorBadXSize, SurfPoint::null_point ); 33 CPPUNIT_TEST( testOperatorAssignment ); 34 CPPUNIT_TEST( testOperatorAssignmentToSelf ); 35 CPPUNIT_TEST( testOperatorEquality ); 36 CPPUNIT_TEST( testOperatorInequality ); 37 CPPUNIT_TEST( testXSize ); 38 CPPUNIT_TEST( testFSize ); 39 CPPUNIT_TEST( testX ); 40 CPPUNIT_TEST( testFQuery ); 41 CPPUNIT_TEST_EXCEPTION( testFQueryBadIndex, std::range_error ); 42 CPPUNIT_TEST( testAddResponse ); 43 CPPUNIT_TEST( testFAssign ); 44 CPPUNIT_TEST_EXCEPTION( testFAssignBadIndex , std::range_error ); 45 CPPUNIT_TEST( testWriteBinary ); 46 CPPUNIT_TEST( testWriteText ); 47 CPPUNIT_TEST( testReadBinary ); 48 CPPUNIT_TEST( testReadText ); 49 CPPUNIT_TEST( testStreamInsertion ); 50 CPPUNIT_TEST( testResize ); 51 CPPUNIT_TEST( testSetX ); 52 CPPUNIT_TEST_SUITE_END(); 53 public: 54 void setUp(); 55 void tearDown(); 56 57 // Other 58 void testSurfPointPtrLessThan(); 59 60 // Constructors 61 void testConstructor(); 62 void testConstructorXSpecified(); 63 void testConstructorXSpecifiedPlusOneF(); 64 void testConstructorXSpecifiedFVector(); 65 void testConstructorFromIStreamBinary(); 66 void testConstructorFromIStreamText(); 67 void testCopyConstructor(); 68 void testConstructorBadXSize(); 69 70 // Overloaded operators 71 void testOperatorAssignment(); 72 void testOperatorAssignmentToSelf(); 73 void testOperatorEquality(); 74 void testOperatorInequality(); 75 76 // Queries 77 void testXSize(); 78 void testFSize(); 79 void testX(); 80 void testFQuery(); 81 void testFQueryBadIndex(); 82 83 // Commands 84 void testAddResponse(); 85 void testFAssign(); 86 void testFAssignBadIndex(); 87 void testResize(); 88 void testSetX(); 89 90 // I/O 91 void testWriteBinary(); 92 void testWriteText(); 93 void testReadBinary(); 94 void testReadText(); 95 void testStreamInsertion(); 96 97 private: 98 std::vector<double> x1; 99 std::vector<double> x2; 100 std::vector<double> x3; 101 std::vector<double> f1; 102 std::vector<double> f2; 103 104 SurfPoint* spPtr; 105 SurfPoint* spPtr2; 106 107 108 }; 109 110 111 #endif 112