Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _ParaMEDMEMTEST_HXX_
00021 #define _ParaMEDMEMTEST_HXX_
00022
00023 #include <cppunit/extensions/HelperMacros.h>
00024
00025 #include <set>
00026 #include <string>
00027 #include <iostream>
00028 #include "mpi.h"
00029
00030
00031 class ParaMEDMEMTest : public CppUnit::TestFixture
00032 {
00033 CPPUNIT_TEST_SUITE( ParaMEDMEMTest );
00034 CPPUNIT_TEST(testMPIProcessorGroup_constructor);
00035 CPPUNIT_TEST(testMPIProcessorGroup_boolean);
00036 CPPUNIT_TEST(testMPIProcessorGroup_rank);
00037 CPPUNIT_TEST(testBlockTopology_constructor);
00038 CPPUNIT_TEST(testBlockTopology_serialize);
00039 CPPUNIT_TEST(testInterpKernelDEC_1D);
00040 CPPUNIT_TEST(testInterpKernelDEC_2DCurve);
00041 CPPUNIT_TEST(testInterpKernelDEC_2D);
00042 CPPUNIT_TEST(testInterpKernelDEC2_2D);
00043 CPPUNIT_TEST(testInterpKernelDEC_2DP0P1);
00044 CPPUNIT_TEST(testInterpKernelDEC_3D);
00045 CPPUNIT_TEST(testInterpKernelDECNonOverlapp_2D_P0P0);
00046 CPPUNIT_TEST(testInterpKernelDECNonOverlapp_2D_P0P1P1P0);
00047 CPPUNIT_TEST(testInterpKernelDEC2DM1D_P0P0);
00048 CPPUNIT_TEST(testInterpKernelDECPartialProcs);
00049 CPPUNIT_TEST(testInterpKernelDEC3DSurfEmptyBBox);
00050 CPPUNIT_TEST(testOverlapDEC1);
00051
00052 CPPUNIT_TEST(testSynchronousEqualInterpKernelWithoutInterpNativeDEC_2D);
00053 CPPUNIT_TEST(testSynchronousEqualInterpKernelWithoutInterpDEC_2D);
00054 CPPUNIT_TEST(testSynchronousEqualInterpKernelDEC_2D);
00055 CPPUNIT_TEST(testSynchronousFasterSourceInterpKernelDEC_2D);
00056 CPPUNIT_TEST(testSynchronousSlowerSourceInterpKernelDEC_2D);
00057 CPPUNIT_TEST(testSynchronousSlowSourceInterpKernelDEC_2D);
00058 CPPUNIT_TEST(testSynchronousFastSourceInterpKernelDEC_2D);
00059 CPPUNIT_TEST(testAsynchronousEqualInterpKernelDEC_2D);
00060 CPPUNIT_TEST(testAsynchronousFasterSourceInterpKernelDEC_2D);
00061 CPPUNIT_TEST(testAsynchronousSlowerSourceInterpKernelDEC_2D);
00062 CPPUNIT_TEST(testAsynchronousSlowSourceInterpKernelDEC_2D);
00063 CPPUNIT_TEST(testAsynchronousFastSourceInterpKernelDEC_2D);
00064 #ifdef MED_ENABLE_FVM
00065
00066
00067 CPPUNIT_TEST(testNonCoincidentDEC_3D);
00068 #endif
00069 CPPUNIT_TEST(testStructuredCoincidentDEC);
00070 CPPUNIT_TEST(testStructuredCoincidentDEC);
00071 CPPUNIT_TEST(testICocoTrio1);
00072 CPPUNIT_TEST(testGauthier1);
00073 CPPUNIT_TEST(testGauthier2);
00074 CPPUNIT_TEST(testFabienAPI1);
00075 CPPUNIT_TEST(testFabienAPI2);
00076 CPPUNIT_TEST(testMEDLoaderRead1);
00077 CPPUNIT_TEST(testMEDLoaderPolygonRead);
00078 CPPUNIT_TEST(testMEDLoaderPolyhedronRead);
00079
00080
00081 CPPUNIT_TEST_SUITE_END();
00082
00083
00084 public:
00085
00086 ParaMEDMEMTest():CppUnit::TestFixture(){}
00087 ~ParaMEDMEMTest(){}
00088 void setUp(){}
00089 void tearDown(){}
00090 void testMPIProcessorGroup_constructor();
00091 void testMPIProcessorGroup_boolean();
00092 void testMPIProcessorGroup_rank();
00093 void testBlockTopology_constructor();
00094 void testBlockTopology_serialize();
00095 void testInterpKernelDEC_1D();
00096 void testInterpKernelDEC_2DCurve();
00097 void testInterpKernelDEC_2D();
00098 void testInterpKernelDEC2_2D();
00099 void testInterpKernelDEC_2DP0P1();
00100 void testInterpKernelDEC_3D();
00101 void testInterpKernelDECNonOverlapp_2D_P0P0();
00102 void testInterpKernelDECNonOverlapp_2D_P0P1P1P0();
00103 void testInterpKernelDEC2DM1D_P0P0();
00104 void testInterpKernelDECPartialProcs();
00105 void testInterpKernelDEC3DSurfEmptyBBox();
00106 void testOverlapDEC1();
00107 #ifdef MED_ENABLE_FVM
00108 void testNonCoincidentDEC_2D();
00109 void testNonCoincidentDEC_3D();
00110 #endif
00111 void testStructuredCoincidentDEC();
00112 void testSynchronousEqualInterpKernelWithoutInterpNativeDEC_2D();
00113 void testSynchronousEqualInterpKernelWithoutInterpDEC_2D();
00114 void testSynchronousEqualInterpKernelDEC_2D();
00115 void testSynchronousFasterSourceInterpKernelDEC_2D();
00116 void testSynchronousSlowerSourceInterpKernelDEC_2D();
00117 void testSynchronousSlowSourceInterpKernelDEC_2D();
00118 void testSynchronousFastSourceInterpKernelDEC_2D();
00119
00120 void testAsynchronousEqualInterpKernelDEC_2D();
00121 void testAsynchronousFasterSourceInterpKernelDEC_2D();
00122 void testAsynchronousSlowerSourceInterpKernelDEC_2D();
00123 void testAsynchronousSlowSourceInterpKernelDEC_2D();
00124 void testAsynchronousFastSourceInterpKernelDEC_2D();
00125
00126 void testICocoTrio1();
00127 void testGauthier1();
00128 void testGauthier2();
00129 void testFabienAPI1();
00130 void testFabienAPI2();
00131
00132 void testMEDLoaderRead1();
00133 void testMEDLoaderPolygonRead();
00134 void testMEDLoaderPolyhedronRead();
00135 void testMEDLoaderWrite1();
00136 void testMEDLoaderPolygonWrite();
00137
00138 std::string getResourceFile( const std::string& );
00139 std::string getTmpDirectory();
00140 std::string makeTmpFile( const std::string&, const std::string& = "" );
00141
00142 private:
00143 #ifdef MED_ENABLE_FVM
00144 void testNonCoincidentDEC(const std::string& filename1,
00145 const std::string& meshname1,
00146 const std::string& filename2,
00147 const std::string& meshname2,
00148 int nbprocsource, double epsilon);
00149 #endif
00150 void testAsynchronousInterpKernelDEC_2D(double dtA, double tmaxA,
00151 double dtB, double tmaxB,
00152 bool WithPointToPoint, bool Asynchronous, bool WithInterp, const char *srcMeth, const char *targetMeth);
00153 void testInterpKernelDEC_2D_(const char *srcMeth, const char *targetMeth);
00154 void testInterpKernelDEC2_2D_(const char *srcMeth, const char *targetMeth);
00155 void testInterpKernelDEC_3D_(const char *srcMeth, const char *targetMeth);
00156 };
00157
00158
00159 class ParaMEDMEMTest_TmpFilesRemover
00160 {
00161 public:
00162 ParaMEDMEMTest_TmpFilesRemover() {}
00163 ~ParaMEDMEMTest_TmpFilesRemover();
00164 bool Register(const std::string theTmpFile);
00165
00166 private:
00167 std::set<std::string> myTmpFiles;
00168 };
00169
00173 template<class T>
00174 void ParaMEDMEMTest_DumpArray (std::ostream & stream, const T* array, const int length, const std::string text)
00175 {
00176 stream << text << ": {";
00177 if (length > 0) {
00178 stream << array[0];
00179 for (int i = 1; i < length; i++) {
00180 stream << ", " << array[i];
00181 }
00182 }
00183 stream << "}" << std::endl;
00184 };
00185
00186 #endif