1 /* This file is part of the YAZ toolkit.
2 * Copyright (C) 1995-2011 Index Data
3 * See the file LICENSE for details.
12 #include <yaz/stemmer.h>
15 int test_stemmer_stem(yaz_stemmer_p stemmer, const char* to_stem, const char *expected)
17 struct icu_buf_utf16 *src = icu_buf_utf16_create(0);
18 struct icu_buf_utf16 *dst = icu_buf_utf16_create(0);
19 struct icu_buf_utf8 *dst8 = icu_buf_utf8_create(0);
23 icu_utf16_from_utf8_cstr(src, to_stem, &status);
24 yaz_stemmer_stem(stemmer, dst, src, &status);
27 if (status == U_ZERO_ERROR) {
28 icu_utf16_to_utf8(dst8, dst, &status);
29 result = icu_buf_utf8_to_cstr(dst8);
30 rc = strcmp(result, expected) == 0;
32 icu_buf_utf8_destroy(dst8);
33 icu_buf_utf16_destroy(src);
34 icu_buf_utf16_destroy(dst);
44 yaz_stemmer_p stemmer = yaz_stemmer_create("en", "porter", &status);
48 YAZ_CHECK(test_stemmer_stem(stemmer, "beer", "water") == 0 );
51 YAZ_CHECK(test_stemmer_stem(stemmer, "adadwwr", "adadwwr"));
54 YAZ_CHECK(test_stemmer_stem(stemmer, "beers", "beer"));
55 YAZ_CHECK(test_stemmer_stem(stemmer, "persons", "person"));
57 /* Remove s and ing */
58 YAZ_CHECK(test_stemmer_stem(stemmer, "runs", "run"));
59 YAZ_CHECK(test_stemmer_stem(stemmer, "running", "run"));
61 yaz_stemmer_destroy(stemmer);
64 int main (int argc, char **argv)
66 YAZ_CHECK_INIT(argc, argv);
74 * c-file-style: "Stroustrup"
75 * indent-tabs-mode: nil
77 * vim: shiftwidth=4 tabstop=8 expandtab