]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
adding tests for 2D interp
authorndjinga <ndjinga>
Fri, 3 Aug 2007 08:48:21 +0000 (08:48 +0000)
committerndjinga <ndjinga>
Fri, 3 Aug 2007 08:48:21 +0000 (08:48 +0000)
src/INTERP_KERNEL/3D_Vertex_Less.hxx [new file with mode: 0644]
src/INTERP_KERNEL/test_InterpolationUtils.cxx [new file with mode: 0644]

diff --git a/src/INTERP_KERNEL/3D_Vertex_Less.hxx b/src/INTERP_KERNEL/3D_Vertex_Less.hxx
new file mode 100644 (file)
index 0000000..49d57f8
--- /dev/null
@@ -0,0 +1,22 @@
+#ifndef _3D_VERTEX_HXX_
+#define _3D_VERTEX_HXX_
+
+namespace MEDMEM
+{
+  struct Vertex_Less_3D
+  {
+    //double * x;
+    bool operator()(const double * p1,const double * p2) 
+    {
+      return   (*p1 < *p2)
+       ||
+       ((*p1 == *p2)&&(*(p1+1) < *(p2+1)))
+       ||
+       ((*p1 == *p2)&&(*(p1+1) == *(p2+1))&&(*(p1+2) < *(p2+2)));
+    }
+  };
+  
+  //  bool operator()(const double * p1,const double * p2)
+
+};
+#endif
diff --git a/src/INTERP_KERNEL/test_InterpolationUtils.cxx b/src/INTERP_KERNEL/test_InterpolationUtils.cxx
new file mode 100644 (file)
index 0000000..a68579e
--- /dev/null
@@ -0,0 +1,337 @@
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//
+//
+//  File   : testUUnit.cxx
+//  Module : MED
+
+#include "InterpolationUtils.hxx"
+using namespace std;
+
+int main ()
+{
+  cerr<< endl;
+  cerr<< " ************ Test 1  ************ "<< endl;
+
+  const double Losange1[12]= 
+    {
+      1,0,0,
+      0,1,0,
+      -1,0,0,
+      0,-1,0
+    };
+  
+  const double Losange2[12]=
+    {
+      2,0,0,
+      1,1,0,
+      0,0,0,
+      1,-1,0
+    };
+
+  deque< double > resultat_test1 = INTERP_UTILS::intersect_convex_polygons(Losange1,Losange2,4,4,1,1e-6);
+
+  cerr<<  " Test1: Résultat théorique" << endl;
+  cerr<< 0.5 << " ,"<< -0.5 << " ," << 0 << endl;
+  cerr<<  0 << " ,"<< 0 << " ,"<< 0 << endl;
+  cerr<< 0.5 << " ,"<< 0.5 << " ,"<< 0 << endl;
+  cerr<< 1 << " ," << 0 << " ," << 0 << endl;
+
+  cerr<< " Test1: Résultat obtenu" << endl;
+  for (int i=0; i<resultat_test1.size()/3; i++)
+    {
+      cerr << resultat_test1[3*i] << "  ";
+      cerr << resultat_test1[3*i+1] << "  ";
+      cerr << resultat_test1[3*i+2] << "  ";
+      cerr << endl ;
+    }
+
+  cerr<< " ************ Test 2 ************ "<< endl;
+  
+  const double Losange3[12]=
+    {
+      2.5,0.5,0,
+      1.5,1.5,0,
+      0.5,0.5,0,
+      1.5,-0.5,0
+    };
+  deque< double > resultat_test2 = INTERP_UTILS::intersect_convex_polygons(Losange1,Losange3,4,4,1,1e-6);
+
+  cerr<<  " Test2: Résultat théorique" << endl;
+//   cerr<< 0.5 << " ,"<< 0.5 << " ," << 0 << endl;
+//   cerr<< 1 << " ,"<< 0 << " ," << 0 << endl;
+
+  cerr<< " Test2: Résultat obtenu" << endl;
+  for (int i=0; i<resultat_test2.size()/3; i++)
+    {
+      cerr << resultat_test2[3*i] << "  ";
+      cerr << resultat_test2[3*i+1] << "  ";
+      cerr << resultat_test2[3*i+2] << "  ";
+      cerr << endl ;
+    }
+
+  cerr<< " ************ Test 3  ************ "<< endl;
+  
+  const double Carre1[12]=
+    {
+      -1,-1,0,
+      -1,1,0,
+      1,1,0,
+      1,-1,0
+    };
+  const double Carre2[12]=
+    {
+      1,-0.25,0,
+      0,-0.25,0,
+      0,0.25,0,
+      1,0.25,0
+    };
+ deque< double > resultat_test3 = INTERP_UTILS::intersect_convex_polygons( Carre1, Carre2,4,4,1,1e-6);
+
+  cerr<<  " Test3: Résultat théorique" << endl;
+  cerr<< 0 << " ,"<< 0.25 << " ," << 0 << endl;
+  cerr<< 0 << " ,"<< -0.25 << " ," << 0 << endl;
+  cerr<< 1 << " ,"<< -0.25 << " ,"<< 0 << endl;
+  cerr<< 1 << " ,"<< 0.25 << " ," << 0 << endl;
+
+  cerr<< " Test3: Résultat obtenu" << endl;
+  for (int i=0; i<resultat_test3.size()/3; i++)
+    {
+      cerr << resultat_test3[3*i] << "  ";
+      cerr << resultat_test3[3*i+1] << "  ";
+      cerr << resultat_test3[3*i+2] << "  ";
+      cerr << endl ;
+    }
+  cerr<< " ***************** Test 4 ***************** " << endl;
+  
+  const double Losange4[12]=
+    {
+      3,0,0,
+      2,1,0,
+      1,0,0,
+      2,-1,0
+    };
+ deque< double > resultat_test4 = INTERP_UTILS::intersect_convex_polygons( Losange1, Losange4,4,4,1,1e-6);
+
+  cerr<<  " Test4: Résultat théorique" << endl;
+  cerr<< 1 << " ,"<< 0 << " ,"<< 0 << endl;
+
+  cerr<< " Test4: Résultat obtenu" << endl;
+  for (int i=0; i<resultat_test4.size()/3; i++)
+    {
+      cerr << resultat_test4[3*i] << "  ";
+      cerr << resultat_test4[3*i+1] << "  ";
+      cerr << resultat_test4[3*i+2] << "  ";
+      cerr << endl ;
+    }
+
+  cerr<< " ***************** Test 5 ***************** " << endl;
+ deque< double > resultat_test5 = INTERP_UTILS::intersect_convex_polygons( Carre1, Carre1,4,4,1,1e-6);
+
+  cerr<<  " Test5: Résultat théorique" << endl;
+  cerr<< -1 << " ,"<<  1 << " ," << 0 << endl;
+  cerr<< -1 << " ,"<< -1 << " ," << 0 << endl;
+  cerr<<  1 << " ,"<< -1 << " ," << 0 << endl;
+  cerr<<  1 << " ,"<<  1 << " ," << 0 << endl;
+
+  cerr<< " Test5: Résultat obtenu" << endl;
+  for (int i=0; i<resultat_test5.size()/3; i++)
+    {
+      cerr << resultat_test5[3*i] << "  ";
+      cerr << resultat_test5[3*i+1] << "  ";
+      cerr << resultat_test5[3*i+2] << "  ";
+      cerr << endl ;
+    }
+
+  cerr<< " ***************** Test 6 ***************** " << endl;
+
+  const double Losange5[12]= 
+    {
+      1.5,0,0,
+      0,1.5,0,
+      -1.5,0,0,
+      0,-1.5,0
+    };
+ deque< double > resultat_test6 = INTERP_UTILS::intersect_convex_polygons( Carre1, Losange5,4,4,1,1e-6);
+
+  cerr<<  " Test6: Résultat théorique" << endl;
+  cerr<< 1 << " ,"<< -0.5 << " ," << 0 << endl;
+  cerr<< 0.5 << " ,"<< -1 << " ," << 0 << endl;
+  cerr<< -0.5 << " ,"<< -1 << " ," << 0 << endl;
+  cerr<< -1 << " ,"<< -0.5 << " ," << 0 << endl;
+  cerr<< -1 << " ,"<< 0.5 << " ," << 0 << endl;
+  cerr<< -0.5 << " ,"<< 1 << " ," << 0 << endl;
+  cerr<< 0.5 << " ,"<< 1 << " ,"<< 0 << endl;
+  cerr<< 1 << " ,"<< 0.5 << " ," << 0 << endl;
+
+  cerr<< " Test6: Résultat obtenu" << endl;
+  for (int i=0; i<resultat_test6.size()/3; i++)
+    {
+      cerr << resultat_test6[3*i] << "  ";
+      cerr << resultat_test6[3*i+1] << "  ";
+      cerr << resultat_test6[3*i+2] << "  ";
+      cerr << endl ;
+    }
+  cerr<< " ***************** Test 7 ***************** " << endl;
+
+  deque< double > resultat_test7 = INTERP_UTILS::intersect_convex_polygons( Losange1, Carre1,4,4,1,1e-6);
+
+  cerr<<  " Test7: Résultat théorique" << endl;
+  cerr<< 0 << " ,"<< -1 << " ," << 0 << endl;
+  cerr<< -1 << " ,"<< 0 << " ," << 0 << endl;
+  cerr<< 0 << " ,"<< 1 << " ,"<< 0 << endl;
+  cerr<< 1 << " ,"<< 0 << " ," << 0 << endl;
+
+  cerr<< " Test7: Résultat obtenu" << endl;
+  for (int i=0; i<resultat_test7.size()/3; i++)
+    {
+      cerr << resultat_test7[3*i] << "  ";
+      cerr << resultat_test7[3*i+1] << "  ";
+      cerr << resultat_test7[3*i+2] << "  ";
+      cerr << endl ;
+    }
+  cerr<< " ************ Test 8  ************ "<< endl;
+
+  const double Losange6[18]=
+    {
+      2,0,0,
+      1,1,0,
+      0.5,0.5,0,
+      0,0,0,
+      0.5,-0.5,0,
+      1,-1,0
+    };
+  const double Losange7[15]= 
+    {
+      1,0,0,
+      0,1,0,
+      -1,0,0,
+      0,-1,0,
+      0.5,-0.5,0
+    };
+  
+  deque< double > resultat_test8 = INTERP_UTILS::intersect_convex_polygons(Losange6,Losange7,6,5,1,1e-6);
+
+  cerr<<  " Test8: Résultat théorique" << endl;
+  cerr<< 0.5 << " ,"<< -0.5 << " ," << 0 << endl;
+  cerr<<  0 << " ,"<< 0 << " ,"<< 0 << endl;
+  cerr<< 0.5 << " ,"<< 0.5 << " ,"<< 0 << endl;
+  cerr<< 1 << " ," << 0 << " ," << 0 << endl;
+
+  cerr<< " Test8: Résultat obtenu" << endl;
+  for (int i=0; i<resultat_test1.size()/3; i++)
+    {
+      cerr << resultat_test1[3*i] << "  ";
+      cerr << resultat_test1[3*i+1] << "  ";
+      cerr << resultat_test1[3*i+2] << "  ";
+      cerr << endl ;
+    }
+  cerr<< " ************ Test 9  ************ "<< endl;
+  const double Carre3[15]=
+    {
+      -1,-1,0,
+      -1,1,0,
+      0.5,1,0,
+      1,1,0,
+      1,-1,0
+    };
+  const double Carre4[12]=
+    {
+      -0.5,-1,0,
+      -0.5,1,0,
+      1.5,1,0,
+      1.5,-1,0
+    };
+
+  deque< double > resultat_test9 = INTERP_UTILS::intersect_convex_polygons(Carre4,Carre3,4,5,1,1e-6);
+
+  cerr<<  " Test9: Résultat théorique" << endl;
+  cerr<< -0.5 << " ,"<< -1 << " ," << 0 << endl;
+  cerr<< -0.5 << " ,"<<  1 << " ," << 0 << endl;
+  cerr<<  1   << " ,"<< 1 << " ," << 0 << endl;
+  cerr<<  1   << " ,"<< -1 << " ," << 0 << endl;
+
+  cerr<< " Test9: Résultat obtenu" << endl;
+  for (int i=0; i<resultat_test9.size()/3; i++)
+    {
+      cerr << resultat_test9[3*i] << "  ";
+      cerr << resultat_test9[3*i+1] << "  ";
+      cerr << resultat_test9[3*i+2] << "  ";
+      cerr << endl ;
+    }
+
+  cerr<< " ************ Test 10  ************ "<< endl;
+  const double Carre5[15]=
+    {
+      -1,-1,0,
+      -1,1,0,
+      0,1,0,
+      1,1,0,
+      1,-1,0
+    };
+  const double Losange8[12]=
+    {
+      0,1,0,
+      1,-1,0,
+      0,-1.5,0,
+      -0.5,-1,0
+    };
+  deque< double > resultat_test10 = INTERP_UTILS::intersect_convex_polygons(Losange8,Carre5,4,5,1,1e-6);
+  cerr<<  " Test10: Résultat théorique" << endl;
+  cerr<< 0 << " ,"<< 1 << " ," << 0 << endl;
+  cerr<< -0.5 << " ,"<< -1 << " ," << 0 << endl;
+  cerr<< 1 << " ,"<< -1 << " ," << 0 << endl;
+
+  cerr<< " Test10: Résultat obtenu" << endl;
+  for (int i=0; i<resultat_test10.size()/3; i++)
+    {
+      cerr << resultat_test10[3*i] << "  ";
+      cerr << resultat_test10[3*i+1] << "  ";
+      cerr << resultat_test10[3*i+2] << "  ";
+      cerr << endl ;
+    }
+
+  cerr<< " ************ Test 11  ************ "<< endl;
+
+  const double Losange9[12]= 
+    {
+       0.5,0,0,
+      0,1,0,
+      -1.5,0,0,
+      0,-1,0
+    };
+
+  deque< double > resultat_test11 = INTERP_UTILS::intersect_convex_polygons(Losange1,Losange9,4,4,1,1e-6);
+
+  cerr<<  " Test11: Résultat théorique" << endl;
+  cerr<< 0 << " ,"<< -1 << " ," << 0 << endl;
+  cerr<<  -1 << " ,"<< 0 << " ,"<< 0 << endl;
+  cerr<< 0 << " ,"<< 1 << " ,"<< 0 << endl;
+  cerr<< 0.5 << " ," << 0 << " ," << 0 << endl;
+
+  cerr<< " Test11: Résultat obtenu" << endl;
+  for (int i=0; i<resultat_test11.size()/3; i++)
+    {
+      cerr << resultat_test11[3*i] << "  ";
+      cerr << resultat_test11[3*i+1] << "  ";
+      cerr << resultat_test11[3*i+2] << "  ";
+      cerr << endl ;
+    }
+};