X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=test%2Ftest_rpn2solr.c;h=0b0ddde1eae3efb8e788444cbafa237951528613;hb=3d6a83ffdf9f09a97fea2c346029b7bff0d27adc;hp=e60d9c0969f3fc43648ce344e819237a151f0e11;hpb=dd749e1547ed756dddc3ab4b22aec241e3e9eefa;p=yaz-moved-to-github.git diff --git a/test/test_rpn2solr.c b/test/test_rpn2solr.c index e60d9c0..0b0ddde 100644 --- a/test/test_rpn2solr.c +++ b/test/test_rpn2solr.c @@ -37,9 +37,9 @@ static int compare(solr_transform_t ct, const char *pqf, const char *solr) { yaz_log(YLOG_LOG, "%s -> %s", pqf, wrbuf_cstr(w)); if (solr && !strcmp(wrbuf_cstr(w), solr)) - { ret = 1; - } + else + yaz_log(YLOG_LOG, "Exp: %s", solr); } } wrbuf_destroy(w); @@ -51,6 +51,7 @@ static void tst1(void) { solr_transform_t ct = solr_transform_create(); + YAZ_CHECK(compare(ct, "@or a @and b c", "a OR (b AND c)")); YAZ_CHECK(compare(ct, "abc", "abc")); YAZ_CHECK(compare(ct, "\"a b c\"", "\"a b c\"")); YAZ_CHECK(compare(ct, "@not a b", "a AND NOT b")); @@ -91,6 +92,24 @@ static void tst1(void) YAZ_CHECK(compare(ct, "@attr 5=104 \\\"\\\\\\\\\\\"", "\\\"" "\\\\" "\\\"")); + YAZ_CHECK(compare(ct, "@attr 1=date @attr 2=1 1980", "date:[* TO 1980}")); + YAZ_CHECK(compare(ct, "@attr 1=date @attr 2=2 1980", "date:[* TO 1980]")); + YAZ_CHECK(compare(ct, "@attr 1=date @attr 2=3 1980", "date:1980")); + YAZ_CHECK(compare(ct, "@attr 1=date @attr 2=4 1980", "date:[1980 TO *]")); + YAZ_CHECK(compare(ct, "@attr 1=date @attr 2=5 1980", "date:{1980 TO *]")); + YAZ_CHECK(compare(ct, "@and @attr 1=date @attr 2=2 234 @attr 1=date @attr 2=4 1990", "date:[1990 TO 234]")); + YAZ_CHECK(compare(ct, "@and @attr 1=date @attr 2=2 345 @attr 1=date @attr 2=4 234", "date:[234 TO 345]")); + YAZ_CHECK(compare(ct, "@and @attr 1=date @attr 2=5 234 @attr 1=titl @attr 2=2 1990", "date:{234 TO *] AND titl:[* TO 1990]")); + YAZ_CHECK(compare(ct, "@and @attr 1=date @attr 2=5 234 @attr 1=date @attr 2=2 1990", "date:{234 TO 1990]")); + YAZ_CHECK(compare(ct, "@and @attr 1=date @attr 2=4 234 @attr 1=date @attr 2=2 1990", "date:[234 TO 1990]")); + YAZ_CHECK(compare(ct, "@and @attr 1=date @attr 2=5 234 @attr 1=date @attr 2=1 1990", "date:{234 TO 1990}")); + YAZ_CHECK(compare(ct, "@and @attr 1=date @attr 2=4 234 @attr 1=date @attr 2=2 1990", "date:[234 TO 1990]")); + YAZ_CHECK(compare(ct, "@or @attr 1=date @attr 2=4 234 @attr 1=date @attr 2=2 1990", "date:[234 TO *] OR date:[* TO 1990]")); + YAZ_CHECK(compare(ct, "@or @attr 1=date @attr 2=2 234 @attr 1=date @attr 2=4 1990", "date:[* TO 234] OR date:[1990 TO *]")); + YAZ_CHECK(compare(ct, "@attr 1=date @attr 2=1 1980", "date:[* TO 1980}")); + YAZ_CHECK(compare(ct, "@attr 1=date @attr 2=2 1980", "date:[* TO 1980]")); + YAZ_CHECK(compare(ct, "@and @attr 1=date @attr 2=2 234 @attr 1=date @attr 2=4 1990", "date:[1990 TO 234]")); + solr_transform_close(ct); } @@ -123,8 +142,9 @@ static void tst2(void) YAZ_CHECK(compare(ct, "@attr 1=30 @attr 2=3 1980", "dc.date:1980")); YAZ_CHECK(compare(ct, "@attr 1=30 @attr 2=4 1980", "dc.date:[1980 TO *]")); YAZ_CHECK(compare(ct, "@attr 1=30 @attr 2=5 1980", "dc.date:{1980 TO *]")); -// YAZ_CHECK(compare(ct, "@attr 1=30 @attr 2=5 1980", "dc.date:[* TO 1980]")); - YAZ_CHECK(compare(ct, "@and @attr 1=30 @attr 2=2 234 @attr 1=30 @attr 2=4 1990", "dc.date:[* TO 234] AND dc.date:[1990 TO *]")); + YAZ_CHECK(compare(ct, "@and @attr 1=30 @attr 2=2 234 @attr 1=30 @attr 2=4 1990", "dc.date:[1990 TO 234]")); + YAZ_CHECK(compare(ct, "@and @attr 1=30 @attr 2=2 345 @attr 1=30 @attr 2=4 234", "dc.date:[234 TO 345]")); + YAZ_CHECK(compare(ct, "@and @attr 1=30 @attr 2=5 234 @attr 1=4 @attr 2=2 1990", "dc.date:{234 TO *] AND dc.title:[* TO 1990]")); YAZ_CHECK(compare(ct, "@and @attr 1=30 @attr 2=5 234 @attr 1=30 @attr 2=2 1990", "dc.date:{234 TO 1990]")); YAZ_CHECK(compare(ct, "@and @attr 1=30 @attr 2=4 234 @attr 1=30 @attr 2=2 1990", "dc.date:[234 TO 1990]")); YAZ_CHECK(compare(ct, "@and @attr 1=30 @attr 2=5 234 @attr 1=30 @attr 2=1 1990", "dc.date:{234 TO 1990}"));