Пример #1
0
TEST(Config, body_extractor)
{
    Config config;
    bool success = config.Init("test_data/body_extractor_test.ini");
    EXPECT_TRUE(success);
    const char* c_section_name = "bodyExtractor";

    double weights[] = {0.5,1,0,0,0,0,0,0,0,1,0,2.5,-2.5,0};
    vector<double> weights_vec(weights, weights + sizeof(weights) / sizeof(weights[0]));

    const vector<double>& weights_result = config.GetDoubleList(c_section_name, "classifier_weights");
    compare_vector(weights_vec, weights_result);

    const char* factor_tag_names[] = {"div", "blockquote", "form", "th"};
    vector<string> factor_tag_names_vec(factor_tag_names, factor_tag_names + sizeof(factor_tag_names) / sizeof(factor_tag_names[0]));
    compare_vector(factor_tag_names_vec, config.GetStringList(c_section_name, "factor_tag_names"));
    EXPECT_EQ(true, config.GetBoolValue(c_section_name, "negative_tags_enabled"));
    EXPECT_EQ(25, config.GetIntValue(c_section_name, "min_text_length"));
    string sanitize_expr("FN_IS_HEADER_TAG == 1 && FN_BASIC_WEIGHT < 0 || FN_IS_HEADER_TAG == 1 && FN_LINK_DENSITY > 0.33 || FN_IS_INTERACTIVE_TAG == 1 || FN_IS_STRUCT_TAG == 1 && FN_BASIC_WEIGHT < 0");
    EXPECT_EQ(sanitize_expr, config.GetStringValue(c_section_name, "sanitize_expression"));
}