X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=test%2Fapi%2Ftest_sort3.c;fp=test%2Fapi%2Ftest_sort3.c;h=aabf73dd5a59f2fc34976ea4a713694283e8a1d3;hb=af102b1fb451ba27bfa7343528c4240b3ab3a80b;hp=5ad4930b8696e5678281921f4e881f6816b02686;hpb=bdef6b61d9565342be2f314b5947ada0e2f2099a;p=idzebra-moved-to-github.git diff --git a/test/api/test_sort3.c b/test/api/test_sort3.c index 5ad4930..aabf73d 100644 --- a/test/api/test_sort3.c +++ b/test/api/test_sort3.c @@ -18,35 +18,88 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ /** \file - \brief test sortindex + \brief sort using various sortindex types */ #include #include "testlib.h" const char *myrec[] = { - "\nMy title\n\n", - "\nMy x title\n\n", - "\nMy title x\n\n" , - 0} ; + /* 2 */ + "\n" + " My title\n" + " X\n" + "\n", + + /* 3 */ + "\n" + " My x title\n" + " B\n" + "\n", + + /* 4 */ + "\n" + " My title x\n" + " A\n" + "\n" , + 0} ; -static void tst(int argc, char **argv) +static void tst_sortindex(int argc, char **argv, const char *type) { zint ids[5]; + Res res = res_open(0, 0); ZebraService zs = tl_start_up("test_sort3.cfg", argc, argv); - ZebraHandle zh = zebra_open(zs, 0); + ZebraHandle zh; + + res_set(res, "sortindex", type); + + zh = zebra_open(zs, res); YAZ_CHECK(tl_init_data(zh, myrec)); - ids[0] = 2; - ids[1] = 4; - ids[2] = 3; + if (strcmp(type, "m")) + { + /* i, f only takes first title into consideration */ + ids[0] = 2; + ids[1] = 4; + ids[2] = 3; + } + else + { + /* m takes all titles into consideration */ + ids[0] = 4; + ids[1] = 3; + ids[2] = 2; + } YAZ_CHECK(tl_sort(zh, "@or @attr 1=4 title @attr 7=1 @attr 1=4 0", 3, ids)); + if (strcmp(type, "m")) + { + /* i, f only takes first title into consideration */ + ids[0] = 3; + ids[1] = 4; + ids[2] = 2; + } + else + { + /* m takes all titles into consideration */ + ids[0] = 2; + ids[1] = 3; + ids[2] = 4; + } + YAZ_CHECK(tl_sort(zh, "@or @attr 1=4 title @attr 7=2 @attr 1=4 0", 3, ids)); + YAZ_CHECK(tl_close_down(zh, zs)); } +static void tst(int argc, char **argv) +{ + tst_sortindex(argc, argv, "i"); + tst_sortindex(argc, argv, "f"); + tst_sortindex(argc, argv, "m"); +} + TL_MAIN /*