1 |
#!/usr/bin/perl -w |
#!/usr/bin/perl -w |
2 |
|
|
3 |
use strict; |
use strict; |
4 |
use blib; |
use lib 'lib'; |
5 |
|
|
6 |
use Test::More tests => 340; |
use Test::More tests => 357; |
7 |
|
|
8 |
|
use utf8; |
9 |
|
|
10 |
BEGIN { |
BEGIN { |
11 |
use_ok( 'WebPAC::Test' ); |
use_ok( 'WebPAC::Test' ); |
57 |
} ], |
} ], |
58 |
'700' => [ { |
'700' => [ { |
59 |
'a' => 'Haynal', |
'a' => 'Haynal', |
60 |
'b' => 'André' |
'b' => 'André' |
61 |
} ], |
} ], |
62 |
'801' => [ 'FFZG' ], |
'801' => [ 'FFZG' ], |
63 |
'991' => [ '8302' ], |
'991' => [ '8302' ], |
80 |
'e' => 'from Freud and Ferenczi to Michael balint', |
'e' => 'from Freud and Ferenczi to Michael balint', |
81 |
'a' => 'Controversies in psychoanalytic method', |
'a' => 'Controversies in psychoanalytic method', |
82 |
'g' => 'translated by Elizabeth Holder on the basisi of a first draft by Archie Hooton ; with a preface by Daniel N. Stern', |
'g' => 'translated by Elizabeth Holder on the basisi of a first draft by Archie Hooton ; with a preface by Daniel N. Stern', |
83 |
'f' => 'by André E. Haynal' |
'f' => 'by André E. Haynal' |
84 |
} ], |
} ], |
85 |
'610' => [ 'povijest psihoanalize' ], |
'610' => [ 'povijest psihoanalize' ], |
86 |
'994' => [ { |
'994' => [ { |
868 |
|
|
869 |
# frec |
# frec |
870 |
|
|
871 |
my $rec = { |
$rec = { |
872 |
'200' => [ { |
'200' => [ { |
873 |
a => [ 'a1', 'a2' ], b => [ 'b1', 'b2' ], c => [ 'c1', 'c2' ], |
a => [ 'a1', 'a2' ], b => [ 'b1', 'b2' ], c => [ 'c1', 'c2' ], |
874 |
subfields => [ qw/a 0 b 0 a 1 b 1 c 0 c 1/ ], |
subfields => [ qw/a 0 b 0 a 1 b 1 c 0 c 1/ ], |
875 |
|
i1 => '0', i2 => '1', |
876 |
}, { |
}, { |
877 |
a => [ 'a3', 'a4', 'a5' ], b => 'b3', c => 'c3', |
a => [ 'a3', 'a4', 'a5' ], b => 'b3', c => 'c3', |
878 |
subfields => [ qw/a 0 a 1 b 0 c 0 a 2/ ], |
subfields => [ qw/a 0 a 1 b 0 c 0 a 2/ ], |
895 |
ok( frec_ne( '200' => $sf, '200' => 'c' ), "frec_ne 200 $sf == 200 c"); |
ok( frec_ne( '200' => $sf, '200' => 'c' ), "frec_ne 200 $sf == 200 c"); |
896 |
} |
} |
897 |
|
|
898 |
|
test_rule( 'rec(200,i1)', $rec, qq{ rec(200,'i1') }, [ '0' ] ); |
899 |
|
test_rule( 'rec(200,i2)', $rec, qq{ rec(200,'i2') }, [ '1' ] ); |
900 |
|
|
901 |
|
my $hash = { a => '[a]', 'b' => '[b]', subfields => [ 'a', 0, 'b', 0 ] }; |
902 |
|
is_deeply([ _pack_subfields_hash( $hash ) ], [ '[a]', '[b]' ], '_pack_subfields_hash' ); |
903 |
|
ok( $hash->{subfields}, 'subfields exist' ); |
904 |
|
cmp_ok( _pack_subfields_hash( $hash, 1 ), 'eq', '^a[a]^b[b]', '_pack_subfields_hash' ); |
905 |
|
ok( $hash->{subfields}, 'subfields exist' ); |
906 |
|
|
907 |
|
$rec = { 'arr' => [ 1, 2, 3 ] }; |
908 |
|
test_rule( 'rec_array', $rec, qq{ rec_array('arr') }, $rec->{arr} ); |
909 |
|
|
910 |
|
_clean_ds(); |
911 |
|
_set_ds( $rec ); |
912 |
|
test_s(q{ |
913 |
|
row( 'table', e => $_ ) foreach ( rec_array('arr') ); |
914 |
|
}); |
915 |
|
ok( my $rows = _get_ds->{_rows}->{table}, 'ds have _rows' ); |
916 |
|
|
917 |
|
foreach my $i ( 1 .. 3 ) { |
918 |
|
cmp_ok( $rows->[ $i - 1 ]->{e}, '==', $i, "e $i" ); |
919 |
|
} |
920 |
|
|
921 |
|
test_rule( 'utf-8' |
922 |
|
, { '900' => [{ a => 'Čev', b => 'ić' }] } |
923 |
|
, qq{ join_with('', rec(900,'a'), 'apÄ', rec(900,'b') ) } |
924 |
|
, [ "\x{10C}evap\x{10D}i\x{107}" ] |
925 |
|
); |
926 |
|
|
927 |
} |
} |
928 |
|
|