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_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_before() { const EntityTopology type = HEXAHEDRON; NodeSet set; set.clear(); set.set_mid_face_node( 2 ); CPPUNIT_ASSERT_EQUAL( 0u, set.num_before_mid_face( 2 ) ); CPPUNIT_ASSERT_EQUAL( 1u, set.num_before_mid_face( 3 ) ); set.set_corner_node( 0 ); CPPUNIT_ASSERT_EQUAL( 1u, set.num_before_mid_face( 2 ) ); CPPUNIT_ASSERT_EQUAL( 2u, set.num_before_mid_face( 3 ) ); CPPUNIT_ASSERT_EQUAL( 0u, set.num_before_corner( 0 ) ); CPPUNIT_ASSERT_EQUAL( 1u, set.num_before_corner( 1 ) ); set.set_all_corner_nodes( type ); CPPUNIT_ASSERT_EQUAL( TopologyInfo::corners(type), set.num_before_mid_edge(0) ); CPPUNIT_ASSERT_EQUAL( TopologyInfo::corners(type)-1, set.num_before_corner(TopologyInfo::corners(type)-1) ); CPPUNIT_ASSERT_EQUAL( 0u, set.num_before_corner(0) ); CPPUNIT_ASSERT_EQUAL( 1u, set.num_before_corner(1) ); CPPUNIT_ASSERT_EQUAL( 2u, set.num_before_corner(2) ); CPPUNIT_ASSERT_EQUAL( 3u, set.num_before_corner(3) ); CPPUNIT_ASSERT_EQUAL( 4u, set.num_before_corner(4) ); const unsigned total_nodes = 27; set.set_all_nodes( type ); CPPUNIT_ASSERT_EQUAL( total_nodes - 1, set.num_before_mid_region( 0 ) ); set.clear_mid_edge_node( 0 ); CPPUNIT_ASSERT_EQUAL( total_nodes - 2, set.num_before_mid_region( 0 ) ); set.clear_mid_edge_node( 1 ); CPPUNIT_ASSERT_EQUAL( total_nodes - 3, set.num_before_mid_region( 0 ) ); }
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 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(); } }