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 MsqMeshEntityTest::test_all_nodes( EntityTopology type, unsigned num_nodes ) { const unsigned num_vtx = 27; double coords[3*num_vtx] = {0.0}; size_t conn[num_vtx]; for (size_t i = 0; i < num_vtx; ++i) conn[i] = i; bool fixed[num_vtx] = {false}; CPPUNIT_ASSERT(num_nodes <= num_vtx); MsqError err; PatchData pd; size_t n = num_nodes; pd.fill( num_nodes, coords, 1, &type, &n, conn, fixed, err ); ASSERT_NO_ERROR(err); MsqMeshEntity& elem = pd.element_by_index(0); NodeSet all = elem.all_nodes(err); ASSERT_NO_ERROR(err); CPPUNIT_ASSERT_EQUAL( num_nodes, all.num_nodes() ); CPPUNIT_ASSERT( all.have_any_corner_node() ); bool mid_edge, mid_face, mid_reg; TopologyInfo::higher_order( type, num_nodes, mid_edge, mid_face, mid_reg, err ); ASSERT_NO_ERROR(err); CPPUNIT_ASSERT_EQUAL( mid_edge, !!all.have_any_mid_edge_node() ); CPPUNIT_ASSERT_EQUAL( mid_face, !!all.have_any_mid_face_node() ); CPPUNIT_ASSERT_EQUAL( mid_reg, !!all.have_any_mid_region_node() ); }