[ci] Update macos jobs
[xapian.git] / xapian-bindings / perl / t / valuerange.t
blob176cfe4705adc36d4a892ac2e80ead262ae92371
1 use strict;
2 # Before 'make install' is performed this script should be runnable with
3 # 'make test'. After 'make install' it should work as 'perl test.pl'
5 #########################
7 # change 'tests => 1' to 'tests => last_test_to_print';
9 # Make warnings fatal
10 use warnings;
11 BEGIN {$SIG{__WARN__} = sub { die "Terminating test due to warning: $_[0]" } };
13 use Test::More;
14 BEGIN { plan tests => 22 };
15 use Xapian qw(:all);
17 #########################
19 # Insert your test code below, the Test module is use()ed here so read
20 # its man page ( perldoc Test ) for help writing this test script.
22 # None of the following tests can be expected to succeed without first
23 # creating a test database in the directory testdb.
25 my $db;
26 ok( $db = Xapian::Database->new( 'testdb' ), "test db opened ok" );
28 my $enq;
29 ok( $enq = Xapian::Enquire->new( $db ), "enquire object created" );
31 my $query;
32 my $mset;
34 ok( $query = Xapian::Query->new(OP_VALUE_RANGE, 0, "a", "b") );
36 $enq->set_query($query);
37 ok( $mset = $enq->get_mset(0, 10), "got mset" );
38 is( $mset->size, 0, "range a..b ok" );
40 ok( $query = Xapian::Query->new(OP_VALUE_RANGE, 0, "four", "seven") );
42 $enq->set_query($query);
43 ok( $mset = $enq->get_mset(0, 10), "got mset" );
44 is( $mset->size, 1, "range four..seven ok" );
46 is( $mset->begin()->get_document()->get_value(0), "one" );
48 ok( $query = Xapian::Query->new(OP_VALUE_RANGE, 0, "one", "zero") );
50 $enq->set_query($query);
51 ok( $mset = $enq->get_mset(0, 10), "got mset" );
52 is( $mset->size, 2, "range one..zero ok" );
53 my $mseti = $mset->begin();
54 is( $mseti->get_document()->get_value(0), "one" );
55 ++$mseti;
56 is( $mseti->get_document()->get_value(0), "two" );
58 ok( $query = Xapian::Query->new(OP_VALUE_LE, 0, "one") );
59 $enq->set_query($query);
60 ok( $mset = $enq->get_mset(0, 10), "got mset" );
61 # FIXME: bug in xapian-core in 1.0.6 and earlier means this gives the wrong answer
62 #is( $mset->size, 1, "range ..one ok" );
63 ok( 1 );
64 $mseti = $mset->begin();
65 is( $mseti->get_document()->get_value(0), "one" );
67 ok( $query = Xapian::Query->new(OP_VALUE_GE, 0, "two") );
68 $enq->set_query($query);
69 ok( $mset = $enq->get_mset(0, 10), "got mset" );
70 is( $mset->size, 1, "range one.. ok" );
71 $mseti = $mset->begin();
72 is( $mseti->get_document()->get_value(0), "two" );