void NodeSetTest::test_clear_all() { const EntityTopology type = HEXAHEDRON; NodeSet set; set.set_all_nodes( type ); set.clear_all_corner_nodes(); CPPUNIT_ASSERT( check_all( type, set, 0, false ) ); CPPUNIT_ASSERT( check_all( type, set, 1, true ) ); CPPUNIT_ASSERT( check_all( type, set, 2, true ) ); CPPUNIT_ASSERT( check_all( type, set, 3, true ) ); set.set_all_nodes( type ); set.clear_all_mid_edge_nodes(); CPPUNIT_ASSERT( check_all( type, set, 0, true ) ); CPPUNIT_ASSERT( check_all( type, set, 1, false ) ); CPPUNIT_ASSERT( check_all( type, set, 2, true ) ); CPPUNIT_ASSERT( check_all( type, set, 3, true ) ); set.set_all_nodes( type ); set.clear_all_mid_face_nodes(); CPPUNIT_ASSERT( check_all( type, set, 0, true ) ); CPPUNIT_ASSERT( check_all( type, set, 1, true ) ); CPPUNIT_ASSERT( check_all( type, set, 2, false ) ); CPPUNIT_ASSERT( check_all( type, set, 3, true ) ); set.set_all_nodes( type ); set.clear_all_mid_region_nodes(); CPPUNIT_ASSERT( check_all( type, set, 0, true ) ); CPPUNIT_ASSERT( check_all( type, set, 1, true ) ); CPPUNIT_ASSERT( check_all( type, set, 2, true ) ); CPPUNIT_ASSERT( check_all( type, set, 3, false ) ); }
void NodeSetTest::test_clear_node() { const EntityTopology type = HEXAHEDRON; NodeSet set; NodeSet::BitSet expected; for (unsigned i = 0; i < TopologyInfo::corners(type); ++i) { set.set_all_nodes(type); expected = set.get_bits() & ~(1u << (NodeSet::CORNER_OFFSET + i)); set.clear_corner_node( i ); CPPUNIT_ASSERT_EQUAL( expected, set.get_bits() ); } for (unsigned i = 0; i < TopologyInfo::edges(type); ++i) { set.set_all_nodes(type); expected = set.get_bits() & ~(1u << (NodeSet::EDGE_OFFSET + i)); set.clear_mid_edge_node( i ); CPPUNIT_ASSERT_EQUAL( expected, set.get_bits() ); } for (unsigned i = 0; i < TopologyInfo::faces(type); ++i) { set.set_all_nodes(type); expected = set.get_bits() & ~(1u << (NodeSet::FACE_OFFSET + i)); set.clear_mid_face_node( i ); CPPUNIT_ASSERT_EQUAL( expected, set.get_bits() ); } set.set_all_nodes(type); expected = set.get_bits() & ~(1u << (NodeSet::REGION_OFFSET)); set.clear_mid_region_node( 0 ); CPPUNIT_ASSERT_EQUAL( expected, set.get_bits() ); }
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_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() ); }