LCOV - code coverage report
Current view: top level - itaps/irel - test_both.cpp (source / functions) Hit Total Coverage
Test: coverage_sk.info Lines: 49 49 100.0 %
Date: 2020-12-16 07:07:30 Functions: 6 6 100.0 %
Branches: 45 84 53.6 %

           Branch data     Line data    Source code
       1                 :            : #include "iGeom.h"
       2                 :            : #include "iMesh.h"
       3                 :            : #include "iRel.h"
       4                 :            : 
       5                 :            : #include "TestUtil.hpp"
       6                 :            : 
       7                 :            : #include <cstdlib>
       8                 :            : 
       9                 :            : using namespace moab;
      10                 :            : iGeom_Instance geom;
      11                 :            : iMesh_Instance mesh;
      12                 :            : iRel_Instance rel;
      13                 :            : 
      14                 :            : iBase_EntityHandle geom_ent;
      15                 :            : iBase_EntityHandle mesh_ents[4];
      16                 :            : iBase_EntitySetHandle mesh_set;
      17                 :            : 
      18                 :          1 : void test_both()
      19                 :            : {
      20                 :            :     int err;
      21                 :            :     iRel_PairHandle pair;
      22                 :            : 
      23                 :            :     iRel_createPair( rel, geom, iRel_ENTITY, iRel_IGEOM_IFACE, iRel_ACTIVE, mesh, iRel_BOTH, iRel_IMESH_IFACE,
      24 [ +  - ][ +  - ]:          1 :                      iRel_ACTIVE, &pair, &err );CHECK_ERR( err );
      25                 :            : 
      26 [ +  - ][ +  - ]:          1 :     iRel_setEntSetRelation( rel, pair, geom_ent, mesh_set, &err );CHECK_ERR( err );
      27                 :            : 
      28                 :          1 :     iBase_EntityHandle* related_ents = NULL;
      29                 :          1 :     int related_ents_alloc           = 0, related_ents_size;
      30                 :            :     iRel_getEntArrEntArrRelation( rel, pair, mesh_ents, 4, 1, &related_ents, &related_ents_alloc, &related_ents_size,
      31 [ +  - ][ +  - ]:          1 :                                   &err );CHECK_ERR( err );
      32                 :            : 
      33         [ +  + ]:          5 :     for( int i = 0; i < related_ents_size; i++ )
      34         [ +  - ]:          4 :         CHECK_EQUAL( related_ents[i], geom_ent );
      35                 :            : 
      36                 :          1 :     free( related_ents );
      37                 :          1 : }
      38                 :            : 
      39                 :          1 : void test_change_to_both()
      40                 :            : {
      41                 :            :     int err;
      42                 :            :     iRel_PairHandle pair;
      43                 :            : 
      44                 :            :     iRel_createPair( rel, geom, iRel_ENTITY, iRel_IGEOM_IFACE, iRel_ACTIVE, mesh, iRel_SET, iRel_IMESH_IFACE,
      45 [ +  - ][ +  - ]:          1 :                      iRel_ACTIVE, &pair, &err );CHECK_ERR( err );
      46                 :            : 
      47 [ +  - ][ +  - ]:          1 :     iRel_setEntSetRelation( rel, pair, geom_ent, mesh_set, &err );CHECK_ERR( err );
      48                 :            : 
      49 [ +  - ][ +  - ]:          1 :     iRel_changePairType( rel, pair, iRel_ENTITY, iRel_BOTH, &err );CHECK_ERR( err );
      50                 :            : 
      51                 :          1 :     iBase_EntityHandle* related_ents = NULL;
      52                 :          1 :     int related_ents_alloc           = 0, related_ents_size;
      53                 :            :     iRel_getEntArrEntArrRelation( rel, pair, mesh_ents, 4, 1, &related_ents, &related_ents_alloc, &related_ents_size,
      54 [ +  - ][ +  - ]:          1 :                                   &err );CHECK_ERR( err );
      55                 :            : 
      56         [ +  + ]:          5 :     for( int i = 0; i < related_ents_size; i++ )
      57         [ +  - ]:          4 :         CHECK_EQUAL( related_ents[i], geom_ent );
      58                 :            : 
      59                 :          1 :     free( related_ents );
      60                 :          1 : }
      61                 :            : 
      62                 :          1 : void test_change_to_set()
      63                 :            : {
      64                 :            :     int err;
      65                 :            :     iRel_PairHandle pair;
      66                 :            : 
      67                 :            :     iRel_createPair( rel, geom, iRel_ENTITY, iRel_IGEOM_IFACE, iRel_ACTIVE, mesh, iRel_BOTH, iRel_IMESH_IFACE,
      68 [ +  - ][ +  - ]:          1 :                      iRel_ACTIVE, &pair, &err );CHECK_ERR( err );
      69                 :            : 
      70 [ +  - ][ +  - ]:          1 :     iRel_setEntSetRelation( rel, pair, geom_ent, mesh_set, &err );CHECK_ERR( err );
      71                 :            : 
      72 [ +  - ][ +  - ]:          1 :     iRel_changePairType( rel, pair, iRel_ENTITY, iRel_SET, &err );CHECK_ERR( err );
      73                 :            : 
      74         [ +  + ]:          5 :     for( int i = 0; i < 4; i++ )
      75                 :            :     {
      76                 :            :         iBase_EntityHandle related_ent;
      77         [ +  - ]:          4 :         iRel_getEntEntRelation( rel, pair, mesh_ents[i], 1, &related_ent, &err );
      78         [ +  - ]:          4 :         CHECK( err != iBase_SUCCESS );
      79                 :            :     }
      80                 :          1 : }
      81                 :            : 
      82                 :          1 : int main()
      83                 :            : {
      84                 :            :     int err;
      85                 :          1 :     int num_fail = 0;
      86                 :            : 
      87         [ +  - ]:          1 :     iGeom_newGeom( 0, &geom, &err, 0 );
      88         [ +  - ]:          1 :     iMesh_newMesh( 0, &mesh, &err, 0 );
      89         [ +  - ]:          1 :     iRel_create( 0, &rel, &err, 0 );
      90                 :            : 
      91         [ +  - ]:          1 :     iGeom_createBrick( geom, 2, 2, 2, &geom_ent, &err );
      92                 :            : 
      93                 :            :     double coords[] = {
      94                 :            :         0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0,
      95                 :          1 :     };
      96                 :            : 
      97                 :          1 :     iBase_EntityHandle* mesh_ents_ptr = mesh_ents;
      98                 :          1 :     int mesh_ents_alloc               = 4, mesh_ents_size;
      99                 :            :     iMesh_createVtxArr( mesh, 4, iBase_INTERLEAVED, coords, 12, &mesh_ents_ptr, &mesh_ents_alloc, &mesh_ents_size,
     100         [ +  - ]:          1 :                         &err );
     101                 :            : 
     102         [ +  - ]:          1 :     iMesh_createEntSet( mesh, false, &mesh_set, &err );
     103         [ +  - ]:          1 :     iMesh_addEntArrToSet( mesh, mesh_ents, mesh_ents_size, mesh_set, &err );
     104                 :            : 
     105         [ +  - ]:          1 :     num_fail += RUN_TEST( test_both );
     106         [ +  - ]:          1 :     num_fail += RUN_TEST( test_change_to_both );
     107         [ +  - ]:          1 :     num_fail += RUN_TEST( test_change_to_set );
     108                 :            : 
     109         [ +  - ]:          1 :     iRel_destroy( rel, &err );
     110         [ +  - ]:          1 :     iMesh_dtor( mesh, &err );
     111         [ +  - ]:          1 :     iGeom_dtor( geom, &err );
     112                 :            : 
     113                 :          1 :     return num_fail;
     114 [ +  - ][ +  - ]:          4 : }

Generated by: LCOV version 1.11