[cig-commits] r6931 - short/3D/PyLith/trunk/unittests/libtests/bc
brad at geodynamics.org
brad at geodynamics.org
Sat May 19 15:37:27 PDT 2007
Author: brad
Date: 2007-05-19 15:37:27 -0700 (Sat, 19 May 2007)
New Revision: 6931
Modified:
short/3D/PyLith/trunk/unittests/libtests/bc/TestDirichlet.cc
short/3D/PyLith/trunk/unittests/libtests/bc/TestDirichletMulti.cc
Log:
Made setConstraints() C++ unit test more rigorous.
Modified: short/3D/PyLith/trunk/unittests/libtests/bc/TestDirichlet.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/TestDirichlet.cc 2007-05-19 19:39:35 UTC (rev 6930)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/TestDirichlet.cc 2007-05-19 22:37:27 UTC (rev 6931)
@@ -131,11 +131,27 @@
mesh->allocate(field);
bc.setConstraints(field, mesh);
- // ADD STUFF HERE
- // use getConstraintDof()
+ CPPUNIT_ASSERT(0 != _data);
- // No accessor in real_section_type to verify constraints are set
- // correctly. For now, rely on testSetField test.
+ const int numCells = mesh->heightStratum(0)->size();
+ const int offset = numCells;
+ int iConstraint = 0;
+ for (Mesh::label_sequence::iterator v_iter = vertices->begin();
+ v_iter != vertices->end();
+ ++v_iter) {
+ const int* fixedDOF = field->getConstraintDof(*v_iter);
+ if (*v_iter != _data->constrainedPoints[iConstraint] + offset) {
+ CPPUNIT_ASSERT_EQUAL(0, field->getConstraintDimension(*v_iter));
+ //CPPUNIT_ASSERT(0 == fixedDOF);
+ } else {
+ CPPUNIT_ASSERT(0 != fixedDOF);
+ CPPUNIT_ASSERT_EQUAL(_data->numFixedDOF,
+ field->getConstraintDimension(*v_iter));
+ for (int iDOF=0; iDOF < _data->numFixedDOF; ++iDOF)
+ CPPUNIT_ASSERT_EQUAL(_data->fixedDOF[iDOF], fixedDOF[iDOF]);
+ ++iConstraint;
+ } // if/else
+ } // for
} // testSetConstraints
// ----------------------------------------------------------------------
Modified: short/3D/PyLith/trunk/unittests/libtests/bc/TestDirichletMulti.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/TestDirichletMulti.cc 2007-05-19 19:39:35 UTC (rev 6930)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/TestDirichletMulti.cc 2007-05-19 22:37:27 UTC (rev 6931)
@@ -81,8 +81,34 @@
bcA.setConstraints(field, mesh);
bcB.setConstraints(field, mesh);
- // No accessor in real_section_type to verify constraints are set
- // correctly. For now, rely on testSetField test.
+ CPPUNIT_ASSERT(0 != _data);
+
+ const int numCells = mesh->heightStratum(0)->size();
+ const int offset = numCells;
+ for (Mesh::label_sequence::iterator v_iter = vertices->begin();
+ v_iter != vertices->end();
+ ++v_iter) {
+ const int* fixedDOF = field->getConstraintDof(*v_iter);
+
+ const int flag = _data->bcFlags[*v_iter-offset];
+ if (-1 == flag) {
+ // no constraints
+ CPPUNIT_ASSERT_EQUAL(0, field->getConstraintDimension(*v_iter));
+ //CPPUNIT_ASSERT(0 == fixedDOF);
+ } else if (0 == flag) {
+ CPPUNIT_ASSERT(0 != fixedDOF);
+ CPPUNIT_ASSERT_EQUAL(_data->numFixedDOFA,
+ field->getConstraintDimension(*v_iter));
+ for (int iDOF=0; iDOF < _data->numFixedDOFA; ++iDOF)
+ CPPUNIT_ASSERT_EQUAL(_data->fixedDOFA[iDOF], fixedDOF[iDOF]);
+ } else if (1 == flag) {
+ CPPUNIT_ASSERT(0 != fixedDOF);
+ CPPUNIT_ASSERT_EQUAL(_data->numFixedDOFB,
+ field->getConstraintDimension(*v_iter));
+ for (int iDOF=0; iDOF < _data->numFixedDOFB; ++iDOF)
+ CPPUNIT_ASSERT_EQUAL(_data->fixedDOFB[iDOF], fixedDOF[iDOF]);
+ } // if/else
+ } // for
} // testSetConstraints
// ----------------------------------------------------------------------
More information about the cig-commits
mailing list