コード例 #1
0
ファイル: ert_util_filename.cpp プロジェクト: OPM/ResInsight
void test_filename() {
  const char * src_file1 = "/some/very/long/path/file1.txt";
  const char * src_file2 = "relative/path/file2";
  const char * src_file3 = "/tmp";

  char * file1 = util_split_alloc_filename( src_file1 );
  char * file2 = util_split_alloc_filename( src_file2 );
  char * file3 = util_split_alloc_filename( src_file3 );

  test_assert_string_equal( "file1.txt" , file1);
  test_assert_string_equal( "file2" , file2);
  test_assert_NULL( file3 );
  free( file1 );
  free( file2 );

}
コード例 #2
0
ファイル: ecl_util.c プロジェクト: danielfmva/ert
bool ecl_util_valid_basename_fmt(const char * basename_fmt)
{
  bool valid;

  char * eclbasename_fmt = util_split_alloc_filename(basename_fmt);

  const char * percent_ptr = strchr(eclbasename_fmt, '%');
  if (percent_ptr) {
    percent_ptr++;
    while (true)
    {
      if (*percent_ptr == 'd')
      {
        char * basename_instance = util_alloc_sprintf(eclbasename_fmt, 0);
        valid = ecl_util_valid_basename(basename_instance);
        free(basename_instance);
        break;
      } else if (!isdigit(*percent_ptr)) {
        valid = false;
        break;
      } else
        percent_ptr++;
    }
  } else
    valid = ecl_util_valid_basename(eclbasename_fmt);

  free(eclbasename_fmt);

  return valid;
}
コード例 #3
0
ファイル: ecl_util.c プロジェクト: danielfmva/ert
bool ecl_util_valid_basename( const char * basename ) {

  char * eclbasename = util_split_alloc_filename(basename);

  int upper_count = 0;
  int lower_count = 0;
  int index;

  for (index = 0; index < strlen( eclbasename ); index++) {
    int c = eclbasename[index];
    if (isalpha(c)) {
      if (isupper(c))
        upper_count++;
      else
        lower_count++;
    }
  }

  free(eclbasename);

  if ((lower_count * upper_count) != 0)
    return false;
  else
    return true;
}
コード例 #4
0
ファイル: ert_util_work_area.cpp プロジェクト: OPM/ResInsight
void test_copy_file( const char * src_file ) {
  char * filename = util_split_alloc_filename( src_file );
  test_work_area_type * work_area = test_work_area_alloc( "copy-file" );
  test_work_area_copy_file( work_area , src_file );

  test_assert_true( util_file_exists( filename ));

  test_work_area_free( work_area );
  free( filename );
}
コード例 #5
0
ファイル: ert_test_context.c プロジェクト: blattms/ert
ert_test_context_type * ert_test_context_alloc( const char * test_name , const char * model_config , const char * site_config) {
   ert_test_context_type * test_context = util_malloc( sizeof * test_context );
   UTIL_TYPE_ID_INIT( test_context , ERT_TEST_CONTEXT_TYPE_ID );
   if (util_file_exists(model_config)) {
     test_context->work_area = test_work_area_alloc(test_name);
     test_work_area_set_store( test_context->work_area , false );
     test_work_area_copy_parent_content(test_context->work_area , model_config );
     {
       char * config_file = util_split_alloc_filename( model_config );
       test_context->enkf_main = enkf_main_bootstrap( site_config , config_file , true , false );
       free( config_file );
     }
     test_context->rng = rng_alloc( MZRAN , INIT_DEV_URANDOM );
   } else {
     test_context->enkf_main = NULL;
     test_context->work_area = NULL;
     test_context->rng = NULL;
   }
   return test_context;
}
コード例 #6
0
ファイル: ecl_file.c プロジェクト: akva2/ert
void test_writable(const char * src_file ) {
  test_work_area_type * work_area = test_work_area_alloc("ecl_file_writable" );
  char * fname = util_split_alloc_filename( src_file );

  test_work_area_copy_file( work_area , src_file );
  {
    ecl_file_type * ecl_file = ecl_file_open( fname , ECL_FILE_WRITABLE);
    ecl_kw_type * swat = ecl_file_iget_named_kw( ecl_file , "SWAT" , 0 );
    ecl_kw_type * swat0 = ecl_kw_alloc_copy( swat );
    test_assert_true( ecl_kw_equal( swat , swat0 ));
    ecl_kw_iset_float( swat , 0 , 1000.0 );
    ecl_file_save_kw( ecl_file , swat );
    test_assert_true( ecl_file_writable( ecl_file ));
    ecl_file_close( ecl_file );

    ecl_file = ecl_file_open( fname , 0);
    swat = ecl_file_iget_named_kw( ecl_file , "SWAT" , 0 );
    test_assert_true( util_double_approx_equal( ecl_kw_iget_float( swat , 0 ) , 1000 ));
  }
  test_work_area_free( work_area );
}