Ejemplo n.º 1
0
static void
test_Equals(TestBatch *batch)
{
    TestSchema *schema = TestSchema_new();
    TestSchema *arch_differs = TestSchema_new();
    TestSchema *spec_differs = TestSchema_new();
    FullTextType  *type 
        = (FullTextType*)Schema_Fetch_Type(spec_differs, (CharBuf*)&content);
    CaseFolder *case_folder = CaseFolder_new();


    ASSERT_TRUE(batch, TestSchema_Equals(schema, (Obj*)schema), "Equals");

    FullTextType_Set_Analyzer(type, (Analyzer*)case_folder);
    ASSERT_FALSE(batch, TestSchema_Equals(schema, (Obj*)spec_differs), 
        "Equals spoiled by differing FieldType");

    DECREF(arch_differs->arch);
    arch_differs->arch = Arch_new();
    ASSERT_FALSE(batch, TestSchema_Equals(schema, (Obj*)arch_differs), 
        "Equals spoiled by differing Architecture");

    DECREF(schema);
    DECREF(arch_differs);
    DECREF(spec_differs);
    DECREF(case_folder);
}
Ejemplo n.º 2
0
static void
test_Dump_Load_and_Equals(TestBatchRunner *runner) {
    CaseFolder *case_folder = CaseFolder_new();
    CaseFolder *other       = CaseFolder_new();
    Obj        *dump        = (Obj*)CaseFolder_Dump(case_folder);
    CaseFolder *clone       = (CaseFolder*)CaseFolder_Load(other, dump);

    TEST_TRUE(runner, CaseFolder_Equals(case_folder, (Obj*)other), "Equals");
    TEST_FALSE(runner, CaseFolder_Equals(case_folder, (Obj*)CFISH_TRUE),
               "Not Equals");
    TEST_TRUE(runner, CaseFolder_Equals(case_folder, (Obj*)clone),
              "Dump => Load round trip");

    DECREF(case_folder);
    DECREF(other);
    DECREF(dump);
    DECREF(clone);
}
Ejemplo n.º 3
0
static void
test_Dump_Load_and_Equals(TestBatch *batch)
{
    CaseFolder *case_folder = CaseFolder_new();
    CaseFolder *other       = CaseFolder_new();
    Obj        *dump        = Obj_Dump(case_folder);
    CaseFolder *clone       = (CaseFolder*)Obj_Load(other, dump);

    ASSERT_TRUE(batch, Obj_Equals(case_folder, (Obj*)other), "Equals");
    ASSERT_TRUE(batch, CaseFolder_Dump_Equals(case_folder, (Obj*)dump), 
        "Dump_Equals");
    ASSERT_FALSE(batch, Obj_Equals(case_folder, (Obj*)&EMPTY), "Not Equals");
    ASSERT_TRUE(batch, Obj_Equals(case_folder, (Obj*)clone), 
        "Dump => Load round trip");

    DECREF(case_folder);
    DECREF(other);
    DECREF(dump);
    DECREF(clone);
}
Ejemplo n.º 4
0
static void
test_analysis(TestBatchRunner *runner) {
    CaseFolder *case_folder = CaseFolder_new();
    String *source = Str_newf("caPiTal ofFensE");
    VArray *wanted = VA_new(1);
    VA_Push(wanted, (Obj*)Str_newf("capital offense"));
    TestUtils_test_analyzer(runner, (Analyzer*)case_folder, source, wanted,
                            "lowercase plain text");
    DECREF(wanted);
    DECREF(source);
    DECREF(case_folder);
}
Ejemplo n.º 5
0
PolyAnalyzer*
PolyAnalyzer_init(PolyAnalyzer *self, const CharBuf *language,
                  VArray *analyzers) {
    Analyzer_init((Analyzer*)self);
    if (analyzers) {
        for (uint32_t i = 0, max = VA_Get_Size(analyzers); i < max; i++) {
            CERTIFY(VA_Fetch(analyzers, i), ANALYZER);
        }
        self->analyzers = (VArray*)INCREF(analyzers);
    }
    else if (language) {
        self->analyzers = VA_new(3);
        VA_Push(self->analyzers, (Obj*)CaseFolder_new());
        VA_Push(self->analyzers, (Obj*)RegexTokenizer_new(NULL));
        VA_Push(self->analyzers, (Obj*)SnowStemmer_new(language));
    }
    else {
        THROW(ERR, "Must specify either 'language' or 'analyzers'");
    }

    return self;
}
Ejemplo n.º 6
0
PolyAnalyzer*
PolyAnalyzer_init(PolyAnalyzer *self, String *language,
                  Vector *analyzers) {
    Analyzer_init((Analyzer*)self);
    PolyAnalyzerIVARS *const ivars = PolyAnalyzer_IVARS(self);

    if (analyzers) {
        for (uint32_t i = 0, max = Vec_Get_Size(analyzers); i < max; i++) {
            CERTIFY(Vec_Fetch(analyzers, i), ANALYZER);
        }
        ivars->analyzers = (Vector*)INCREF(analyzers);
    }
    else if (language) {
        ivars->analyzers = Vec_new(3);
        Vec_Push(ivars->analyzers, (Obj*)CaseFolder_new());
        Vec_Push(ivars->analyzers, (Obj*)RegexTokenizer_new(NULL));
        Vec_Push(ivars->analyzers, (Obj*)SnowStemmer_new(language));
    }
    else {
        THROW(ERR, "Must specify either 'language' or 'analyzers'");
    }

    return self;
}