void test_set_from_mask() { int i; state_map_type * map1 = state_map_alloc(); state_map_type * map2 = state_map_alloc(); bool_vector_type * mask = bool_vector_alloc(0, false); bool_vector_iset(mask , 10 , true); bool_vector_iset(mask , 20 , true); state_map_set_from_mask(map1 , mask , STATE_INITIALIZED); state_map_set_from_inverted_mask(map2 , mask , STATE_INITIALIZED); test_assert_int_equal(21 , state_map_get_size(map1)); test_assert_int_equal(21 , state_map_get_size(map2)); for (i = 0; i < state_map_get_size(map1); i++) { if (i == 10 || i== 20) { test_assert_int_equal( STATE_INITIALIZED , state_map_iget( map1 , i) ); test_assert_int_equal( STATE_UNDEFINED , state_map_iget(map2 , i)); } else { test_assert_int_equal(STATE_UNDEFINED , state_map_iget(map1 , i )); test_assert_int_equal( STATE_INITIALIZED , state_map_iget(map2 , i)); } } }
void set_test( ) { state_map_type * state_map = state_map_alloc(); state_map_iset( state_map , 0 , STATE_INITIALIZED ); test_assert_int_equal( STATE_INITIALIZED , state_map_iget( state_map , 0 )); state_map_iset( state_map , 100 , STATE_INITIALIZED ); test_assert_int_equal( STATE_INITIALIZED , state_map_iget( state_map , 100 )); test_assert_int_equal( STATE_UNDEFINED , state_map_iget( state_map , 50 )); test_assert_int_equal( 101 , state_map_get_size( state_map )); state_map_free( state_map ); }
void test_update_undefined( ) { state_map_type * map = state_map_alloc( ); state_map_iset( map , 10 , STATE_INITIALIZED ); test_assert_int_equal( STATE_UNDEFINED , state_map_iget( map , 5 ) ); test_assert_int_equal( STATE_INITIALIZED , state_map_iget( map , 10 ) ); state_map_update_undefined( map , 5 , STATE_INITIALIZED ); test_assert_int_equal( STATE_INITIALIZED , state_map_iget( map , 5 ) ); state_map_update_undefined( map , 10 , STATE_INITIALIZED ); test_assert_int_equal( STATE_INITIALIZED , state_map_iget( map , 10 ) ); state_map_free( map ); }
void test_update_matching( ) { state_map_type * map = state_map_alloc( ); state_map_iset( map , 10 , STATE_INITIALIZED ); state_map_iset( map , 3 , STATE_PARENT_FAILURE ); test_assert_int_equal( STATE_UNDEFINED , state_map_iget( map , 5 ) ); test_assert_int_equal( STATE_INITIALIZED , state_map_iget( map , 10 ) ); state_map_update_matching( map , 5 , STATE_UNDEFINED | STATE_LOAD_FAILURE , STATE_INITIALIZED ); state_map_update_matching( map , 10 , STATE_UNDEFINED | STATE_LOAD_FAILURE , STATE_INITIALIZED ); state_map_update_matching( map , 3 , STATE_UNDEFINED | STATE_LOAD_FAILURE , STATE_INITIALIZED ); test_assert_int_equal( STATE_INITIALIZED , state_map_iget( map , 5 ) ); test_assert_int_equal( STATE_INITIALIZED , state_map_iget( map , 10 ) ); test_assert_int_equal( STATE_PARENT_FAILURE , state_map_iget( map , 3 ) ); state_map_update_undefined( map , 10 , STATE_INITIALIZED ); test_assert_int_equal( STATE_INITIALIZED , state_map_iget( map , 10 ) ); state_map_free( map ); }
void get_test( ) { state_map_type * state_map = state_map_alloc(); test_assert_int_equal( STATE_UNDEFINED , state_map_iget( state_map , 0 )); test_assert_int_equal( STATE_UNDEFINED , state_map_iget( state_map , 100 )); state_map_free( state_map ); }
void state_map_update_matching( state_map_type * map , int index , int state_mask , realisation_state_enum new_state) { realisation_state_enum current_state = state_map_iget( map , index ); if (current_state & state_mask) state_map_iset( map , index , new_state ); }
void state_map_update_undefined( state_map_type * map , int index , realisation_state_enum new_state) { realisation_state_enum current_state = state_map_iget( map , index ); if (current_state == STATE_UNDEFINED) state_map_iset( map , index , new_state ); }