#!/usr/bin/perl -w use strict; END { print "not ok 1\n" unless $::XBaseloaded; } BEGIN { $| = 1; print "1..6\n"; print "Load modules: use XBase; use XBase::Index;\n"; } use XBase; use XBase::Index; $::XBaseloaded = 1; print "ok 1\n"; my $dir = ( -d "t" ? "t" : "." ); $XBase::Base::DEBUG = 1; # We want to see any problems unlink "$dir/tstidx.dbf", "$dir/tstidxid.idx", "$dir/tstidxname.idx"; my $table = create XBase('name' => "$dir/tstidx.dbf", 'field_names' => [ 'ID', 'NAME' ], 'field_types' => [ 'N', 'C' ], 'field_lengths' => [ 6, 100 ], 'field_decimals' => [ 0, undef ]) or do { print XBase->errstr, "not ok 2\n"; exit; }; print "ok 2\n"; my $i = 0; $table->set_record($i++, 56, 'Padesat sest'); $table->set_record($i++, 123, 'Stodvacettri'); $table->set_record($i++, 9, 'Krtek'); $table->set_record($i++, 88, 'Osmaosmdesat'); $table->set_record($i++, -7, 'minus sedm'); $table->set_record($i++, 7, 'plus sedm'); $table->set_record($i++, 15, 'Patnact'); $table->set_record($i++, -1000, 'Tisic pod nulou'); my $numindex = create XBase::idx($table, "$dir/tstidxid.idx", "id"); if (not defined $numindex) { print XBase->errstr, 'not '; } print "ok 3\n"; my $got = ''; $numindex->prepare_select; while (my ($key, $num) = $numindex->fetch) { $got .= "$key $num\n"; } my $expected = ''; while () { last if $_ eq "__END_DATA__\n"; $expected .= $_; } if ($got ne $expected) { print "Expected:\n$expected\nGot:\n$got\nnot "; } print "ok 4\n"; my $charindex = create XBase::idx($table, "$dir/tstidxname.idx", "name"); if (not $charindex) { print XBase->errstr, 'not '; } print "ok 5\n"; $got = ''; $charindex->prepare_select; while (my ($key, $num) = $charindex->fetch) { $key =~ s/\s+$//; $got .= "$key $num\n"; } $expected = ''; while () { last if $_ eq "__END_DATA__\n"; $expected .= $_; } if ($got ne $expected) { print "Expected:\n$expected\nGot:\n$got\nnot "; } print "ok 6\n"; __DATA__ -1000 8 -7 5 7 6 9 3 15 7 56 1 88 4 123 2 __END_DATA__ Krtek 3 Osmaosmdesat 4 Padesat sest 1 Patnact 7 Stodvacettri 2 Tisic pod nulou 8 minus sedm 5 plus sedm 6