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