示例#1
0
END_TEST

START_TEST (test_classifier) 
{
    freesasa_set_verbosity(FREESASA_V_SILENT);

    set_fail_freq(1);
    ck_assert_ptr_eq(classifier_types_new(),NULL);
    ck_assert_ptr_eq(classifier_residue_new("A"),NULL);
    ck_assert_ptr_eq(classifier_config_new(),NULL);

    for (int i = 1; i < 5; ++i) {
        set_fail_freq(10000);
        struct classifier_types *types = classifier_types_new();
        struct classifier_residue *res = classifier_residue_new("ALA");
        struct classifier_config *cfg = classifier_config_new();

        if (i < 3) {
            set_fail_freq(i);
            ck_assert_int_eq(add_class(types,"A"),FREESASA_FAIL);        
            set_fail_freq(i);
            ck_assert_int_eq(add_type(types,"a","A",1.0),FREESASA_FAIL);
        } 
        set_fail_freq(i);
        ck_assert_int_eq(add_atom(res,"A",1.0,0),FREESASA_FAIL);
        set_fail_freq(i);
        ck_assert_int_eq(add_residue(cfg,"A"),FREESASA_FAIL);
        classifier_types_free(types);
        classifier_residue_free(res);
        classifier_config_free(cfg);
    }
    // don't test all levels, but make sure errors in low level
    // allocation propagates to the interface
    FILE *config = fopen(SHAREDIR "naccess.config","r");
    ck_assert_ptr_ne(config, NULL);
    for (int i = 1; i < 50; ++i) {
        set_fail_freq(i);
        ck_assert_ptr_eq(freesasa_classifier_from_file(config),NULL);
        rewind(config);
    }
    fclose(config);
    freesasa_set_verbosity(FREESASA_V_NORMAL);
}
示例#2
0
static struct classifier_config*
read_config(FILE *input) 
{
    assert(input);
    struct file_range types_section, atoms_section; 
    struct classifier_config *config = NULL;
    struct classifier_types *types = NULL;

    if (!(types = classifier_types_new()) ||
        !(config = classifier_config_new()) ||
        check_file(input, &types_section, &atoms_section) ||
        read_types(types, input, types_section) ||
        read_atoms(config, types, input, atoms_section) ||
        config_copy_classes(config, types)) {
        classifier_config_free(config);
        config = NULL;
    }
    classifier_types_free(types);
    
    return config;
}