void NodeSetTest::test_have_any() { NodeSet set; set.clear(); CPPUNIT_ASSERT( !set.have_any_corner_node() ); set.set_corner_node(0); CPPUNIT_ASSERT( set.have_any_corner_node() ); set.clear_corner_node(0); CPPUNIT_ASSERT( !set.have_any_corner_node() ); set.set_corner_node( NodeSet::NUM_CORNER_BITS-1 ); CPPUNIT_ASSERT( set.have_any_corner_node() ); CPPUNIT_ASSERT( !set.have_any_mid_node() ); CPPUNIT_ASSERT( !set.have_any_mid_edge_node() ); set.set_mid_edge_node(0); CPPUNIT_ASSERT( set.have_any_mid_edge_node() ); CPPUNIT_ASSERT( set.have_any_mid_node() ); set.clear_mid_edge_node(0); CPPUNIT_ASSERT( !set.have_any_mid_edge_node() ); CPPUNIT_ASSERT( !set.have_any_mid_node() ); set.set_mid_edge_node( NodeSet::NUM_EDGE_BITS-1 ); CPPUNIT_ASSERT( set.have_any_mid_edge_node() ); CPPUNIT_ASSERT( set.have_any_mid_node() ); set.clear(); CPPUNIT_ASSERT( !set.have_any_mid_face_node() ); set.set_mid_face_node(0); CPPUNIT_ASSERT( set.have_any_mid_face_node() ); CPPUNIT_ASSERT( set.have_any_mid_node() ); set.clear_mid_face_node(0); CPPUNIT_ASSERT( !set.have_any_mid_face_node() ); CPPUNIT_ASSERT( !set.have_any_mid_node() ); set.set_mid_face_node( NodeSet::NUM_FACE_BITS-1 ); CPPUNIT_ASSERT( set.have_any_mid_face_node() ); CPPUNIT_ASSERT( set.have_any_mid_node() ); set.clear(); CPPUNIT_ASSERT( !set.have_any_mid_region_node() ); set.set_mid_region_node(0); CPPUNIT_ASSERT( set.have_any_mid_region_node() ); CPPUNIT_ASSERT( set.have_any_mid_node() ); set.clear_mid_region_node(0); CPPUNIT_ASSERT( !set.have_any_mid_region_node() ); CPPUNIT_ASSERT( !set.have_any_mid_node() ); set.set_mid_region_node( NodeSet::NUM_REGION_BITS-1 ); CPPUNIT_ASSERT( set.have_any_mid_region_node() ); CPPUNIT_ASSERT( set.have_any_mid_node() ); set.clear(); }
void NodeSetTest::test_set_get_clear_simple() { NodeSet set; for (unsigned i = 0; i < NodeSet::NUM_CORNER_BITS; ++i) { CPPUNIT_ASSERT( !set.corner_node(i) ); set.set_corner_node( i ); CPPUNIT_ASSERT( set.corner_node(i) ); set.clear_corner_node( i ); CPPUNIT_ASSERT( !set.corner_node(i) ); } for (unsigned i = 0; i < NodeSet::NUM_EDGE_BITS; ++i) { CPPUNIT_ASSERT( !set.mid_edge_node(i) ); set.set_mid_edge_node( i ); CPPUNIT_ASSERT( set.mid_edge_node(i) ); set.clear_mid_edge_node( i ); CPPUNIT_ASSERT( !set.mid_edge_node(i) ); } for (unsigned i = 0; i < NodeSet::NUM_FACE_BITS; ++i) { CPPUNIT_ASSERT( !set.mid_face_node(i) ); set.set_mid_face_node( i ); CPPUNIT_ASSERT( set.mid_face_node(i) ); set.clear_mid_face_node( i ); CPPUNIT_ASSERT( !set.mid_face_node(i) ); } for (unsigned i = 0; i < NodeSet::NUM_REGION_BITS; ++i) { CPPUNIT_ASSERT( !set.mid_region_node(i) ); set.set_mid_region_node( i ); CPPUNIT_ASSERT( set.mid_region_node(i) ); set.clear_mid_region_node( i ); CPPUNIT_ASSERT( !set.mid_region_node(i) ); } }
void NodeSetTest::test_num_nodes() { NodeSet set; set.clear(); set.set_corner_node(1); CPPUNIT_ASSERT_EQUAL( 1u, set.num_nodes() ); set.set_corner_node(3); CPPUNIT_ASSERT_EQUAL( 2u, set.num_nodes() ); set.set_mid_region_node(0); CPPUNIT_ASSERT_EQUAL( 3u, set.num_nodes() ); set.set_mid_edge_node(1); set.set_mid_edge_node(2); CPPUNIT_ASSERT_EQUAL( 5u, set.num_nodes() ); set.set_all_nodes(HEXAHEDRON); CPPUNIT_ASSERT_EQUAL( 27u, set.num_nodes() ); set.clear(); set.set_all_nodes(TETRAHEDRON); CPPUNIT_ASSERT_EQUAL( 15u, set.num_nodes() ); set.clear(); set.set_all_nodes(TRIANGLE); CPPUNIT_ASSERT_EQUAL( 7u, set.num_nodes() ); set.clear(); set.set_all_nodes(QUADRILATERAL); CPPUNIT_ASSERT_EQUAL( 9u, set.num_nodes() ); set.clear(); set.set_all_nodes(PYRAMID); CPPUNIT_ASSERT_EQUAL( 19u, set.num_nodes() ); set.clear(); set.set_all_nodes(PRISM); CPPUNIT_ASSERT_EQUAL( 21u, set.num_nodes() ); }
void NodeSetTest::test_clear() { NodeSet set; set.set_corner_node(1); set.clear(); CPPUNIT_ASSERT( !set.get_bits() ); set.set_mid_edge_node(2); set.clear(); CPPUNIT_ASSERT( !set.get_bits() ); set.set_mid_region_node(); set.clear(); CPPUNIT_ASSERT( !set.get_bits() ); }
void TriLagrangeShapeTest::test_deriv_edges() { NodeSet ns; ns.clear(); test_edge_derivs( 0, ns ); test_edge_derivs( 1, ns ); test_edge_derivs( 2, ns ); ns.set_mid_edge_node(0); test_edge_derivs( 0, ns ); test_edge_derivs( 1, ns ); test_edge_derivs( 2, ns ); ns.clear(); ns.set_mid_edge_node(1); test_edge_derivs( 0, ns ); test_edge_derivs( 1, ns ); test_edge_derivs( 2, ns ); ns.set_mid_edge_node(0); test_edge_derivs( 0, ns ); test_edge_derivs( 1, ns ); test_edge_derivs( 2, ns ); ns.clear(); ns.set_mid_edge_node(2); test_edge_derivs( 0, ns ); test_edge_derivs( 1, ns ); test_edge_derivs( 2, ns ); ns.set_mid_edge_node(0); test_edge_derivs( 0, ns ); test_edge_derivs( 1, ns ); test_edge_derivs( 2, ns ); ns.set_mid_edge_node(1); test_edge_derivs( 0, ns ); test_edge_derivs( 1, ns ); test_edge_derivs( 2, ns ); ns.clear_mid_edge_node(0); test_edge_derivs( 0, ns ); test_edge_derivs( 1, ns ); test_edge_derivs( 2, ns ); }
void TriLagrangeShapeTest::test_coeff_edges() { NodeSet ns; ns.clear(); test_edge_coeff( 0, ns ); test_edge_coeff( 1, ns ); test_edge_coeff( 2, ns ); ns.set_mid_edge_node(0); test_edge_coeff( 0, ns ); test_edge_coeff( 1, ns ); test_edge_coeff( 2, ns ); ns.clear(); ns.set_mid_edge_node(1); test_edge_coeff( 0, ns ); test_edge_coeff( 1, ns ); test_edge_coeff( 2, ns ); ns.set_mid_edge_node(0); test_edge_coeff( 0, ns ); test_edge_coeff( 1, ns ); test_edge_coeff( 2, ns ); ns.clear(); ns.set_mid_edge_node(2); test_edge_coeff( 0, ns ); test_edge_coeff( 1, ns ); test_edge_coeff( 2, ns ); ns.set_mid_edge_node(0); test_edge_coeff( 0, ns ); test_edge_coeff( 1, ns ); test_edge_coeff( 2, ns ); ns.set_mid_edge_node(1); test_edge_coeff( 0, ns ); test_edge_coeff( 1, ns ); test_edge_coeff( 2, ns ); ns.clear_mid_edge_node(0); test_edge_coeff( 0, ns ); test_edge_coeff( 1, ns ); test_edge_coeff( 2, ns ); }
void NodeSetTest::test_set_node() { NodeSet set; for (unsigned i = 0; i < NodeSet::NUM_CORNER_BITS; ++i) { set.set_corner_node( i ); CPPUNIT_ASSERT_EQUAL( 1u << (NodeSet::CORNER_OFFSET + i), set.get_bits() ); set.clear(); } for (unsigned i = 0; i < NodeSet::NUM_EDGE_BITS; ++i) { set.set_mid_edge_node( i ); CPPUNIT_ASSERT_EQUAL( 1u << (NodeSet::EDGE_OFFSET + i), set.get_bits() ); set.clear(); } for (unsigned i = 0; i < NodeSet::NUM_FACE_BITS; ++i) { set.set_mid_face_node( i ); CPPUNIT_ASSERT_EQUAL( 1u << (NodeSet::FACE_OFFSET + i), set.get_bits() ); set.clear(); } for (unsigned i = 0; i < NodeSet::NUM_REGION_BITS; ++i) { set.set_mid_region_node( i ); CPPUNIT_ASSERT_EQUAL( 1u << (NodeSet::REGION_OFFSET + i), set.get_bits() ); set.clear(); } }
void TriLagrangeShapeTest::test_deriv_center() { NodeSet ns; ns.clear(); test_mid_derivs( ns ); ns.set_mid_edge_node(0); test_mid_derivs( ns ); ns.clear(); ns.set_mid_edge_node(1); test_mid_derivs( ns ); ns.set_mid_edge_node(0); test_mid_derivs( ns ); ns.clear(); ns.set_mid_edge_node(2); test_mid_derivs( ns ); ns.set_mid_edge_node(0); test_mid_derivs( ns ); ns.set_mid_edge_node(1); test_mid_derivs( ns ); ns.clear_mid_edge_node(0); test_mid_derivs( ns ); }