1 #ifndef __dof_object_test_h__
2 #define __dof_object_test_h__
6 #define DOFOBJECTTEST \
7 CPPUNIT_TEST( testSetId ); \
8 CPPUNIT_TEST( testValidId ); \
9 CPPUNIT_TEST( testInvalidateId ); \
10 CPPUNIT_TEST( testSetProcId ); \
11 CPPUNIT_TEST( testValidProcId ); \
12 CPPUNIT_TEST( testInvalidateProcId ); \
13 CPPUNIT_TEST( testSetNSystems ); \
14 CPPUNIT_TEST( testSetNVariableGroups ); \
15 CPPUNIT_TEST( testAddExtraData ); \
16 CPPUNIT_TEST( testAddSystemExtraInts ); \
17 CPPUNIT_TEST( testSetNSystemsExtraInts ); \
18 CPPUNIT_TEST( testSetNVariableGroupsExtraInts ); \
19 CPPUNIT_TEST( testManualDofCalculation ); \
20 CPPUNIT_TEST( testJensEftangBug );
24 template <
class DerivedClass>
31 void setUp(DerivedClass * derived_instance)
33 instance=derived_instance;
41 CPPUNIT_ASSERT_EQUAL( static_cast<dof_id_type>(1) , aobject.
id() );
49 CPPUNIT_ASSERT( aobject.
valid_id() );
52 CPPUNIT_ASSERT( !aobject.
valid_id() );
62 CPPUNIT_ASSERT( !aobject.
valid_id() );
100 CPPUNIT_ASSERT_EQUAL( (
unsigned int) 10, aobject.
n_systems() );
109 std::vector<unsigned int> nvpg;
118 for (
unsigned int s=0; s<2; s++)
120 CPPUNIT_ASSERT_EQUAL( (
unsigned int) 60, aobject.
n_vars(s) );
121 CPPUNIT_ASSERT_EQUAL( (
unsigned int) 3, aobject.
n_var_groups(s) );
123 for (
unsigned int vg=0; vg<3; vg++)
124 CPPUNIT_ASSERT_EQUAL( nvpg[vg], aobject.
n_vars(s,vg) );
140 for (
unsigned int i=0; i != 9; ++i)
143 for (
unsigned int i=0; i != 9; ++i)
149 if (i == 2 && ints_per_Real <= 4)
151 if (i < 1 || i >= (2 + ints_per_Real))
164 for (
unsigned int i=0; i != 6; ++i)
168 if (i == 2 && ints_per_Real <= 4)
170 if (i < 1 || i >= (2 + ints_per_Real))
187 CPPUNIT_ASSERT_EQUAL( (
unsigned int) 1, aobject.
n_systems() );
189 CPPUNIT_ASSERT_EQUAL( (
unsigned int) 0, aobject.
n_vars(0) );
199 CPPUNIT_ASSERT_EQUAL( (
unsigned int) 2, aobject.
n_systems() );
201 CPPUNIT_ASSERT_EQUAL( (
unsigned int) 0, aobject.
n_vars(0) );
202 CPPUNIT_ASSERT_EQUAL( (
unsigned int) 0, aobject.
n_vars(1) );
204 for (
unsigned int i=0; i != 4; ++i)
213 for (
unsigned int i=0; i != 4; ++i)
216 for (
unsigned int i=4; i != 7; ++i)
223 for (
unsigned int i=0; i != 4; ++i)
226 for (
unsigned int i=4; i != 7; ++i)
233 CPPUNIT_ASSERT_EQUAL( (
unsigned int) 3, aobject.
n_systems() );
235 CPPUNIT_ASSERT_EQUAL( (
unsigned int) 0, aobject.
n_vars(0) );
236 CPPUNIT_ASSERT_EQUAL( (
unsigned int) 0, aobject.
n_vars(1) );
237 CPPUNIT_ASSERT_EQUAL( (
unsigned int) 0, aobject.
n_vars(2) );
239 for (
unsigned int i=0; i != 7; ++i)
255 CPPUNIT_ASSERT_EQUAL( (
unsigned int) 10, aobject.
n_systems() );
257 for (
unsigned int i=0; i != 5; ++i)
266 for (
unsigned int i=0; i != 5; ++i)
269 for (
unsigned int i=5; i != 9; ++i)
276 for (
unsigned int i=0; i != 5; ++i)
279 for (
unsigned int i=5; i != 9; ++i)
286 CPPUNIT_ASSERT_EQUAL( (
unsigned int) 6, aobject.
n_systems() );
288 for (
unsigned int i=0; i != 9; ++i)
300 for (
unsigned int i=0; i != 5; ++i)
307 std::vector<unsigned int> nvpg;
316 for (
unsigned int s=0; s<2; s++)
318 CPPUNIT_ASSERT_EQUAL( (
unsigned int) 60, aobject.
n_vars(s) );
319 CPPUNIT_ASSERT_EQUAL( (
unsigned int) 3, aobject.
n_var_groups(s) );
321 for (
unsigned int vg=0; vg<3; vg++)
322 CPPUNIT_ASSERT_EQUAL( nvpg[vg], aobject.
n_vars(s,vg) );
327 for (
unsigned int i=0; i != 5; ++i)
338 std::vector<unsigned int> nvpg;
359 CPPUNIT_ASSERT_EQUAL(static_cast<dof_id_type>(0), aobject.
dof_number(0, 0, 0));
363 CPPUNIT_ASSERT_EQUAL(static_cast<dof_id_type>(aobject.
vg_dof_base(0, 0) + 1*1 + 0), aobject.
dof_number(0, 1, 0));
367 CPPUNIT_ASSERT_EQUAL(static_cast<dof_id_type>(aobject.
vg_dof_base(0, 1) + 2*3 + 2), aobject.
dof_number(0, 4, 2));
371 CPPUNIT_ASSERT_EQUAL(static_cast<dof_id_type>(aobject.
vg_dof_base(1, 1) + 0*3 + 0), aobject.
dof_number(1, 2, 0));
379 dof_id_type buf0[] = {2, 8, 257, 0, 257, 96, 257, 192, 257, 0};
380 aobject.
set_buffer(std::vector<dof_id_type>(buf0, buf0+10));
382 CPPUNIT_ASSERT_EQUAL (aobject.
dof_number(0,0,0), static_cast<dof_id_type>( 0));
383 CPPUNIT_ASSERT_EQUAL (aobject.
dof_number(0,1,0), static_cast<dof_id_type>( 96));
384 CPPUNIT_ASSERT_EQUAL (aobject.
dof_number(0,2,0), static_cast<dof_id_type>(192));
385 CPPUNIT_ASSERT_EQUAL (aobject.
dof_number(1,0,0), static_cast<dof_id_type>( 0));
387 dof_id_type buf1[] = {2, 8, 257, 1, 257, 97, 257, 193, 257, 1};
388 aobject.
set_buffer(std::vector<dof_id_type>(buf1, buf1+10));
390 CPPUNIT_ASSERT_EQUAL (aobject.
dof_number(0,0,0), static_cast<dof_id_type>( 1));
391 CPPUNIT_ASSERT_EQUAL (aobject.
dof_number(0,1,0), static_cast<dof_id_type>( 97));
392 CPPUNIT_ASSERT_EQUAL (aobject.
dof_number(0,2,0), static_cast<dof_id_type>(193));
393 CPPUNIT_ASSERT_EQUAL (aobject.
dof_number(1,0,0), static_cast<dof_id_type>( 1));
397 #endif // #ifdef __dof_object_test_h__