| #!/usr/bin/env perl |
| use strict; |
| use warnings; |
| use Test::More; |
| use KorAP::DefList; |
| use Mojo::JSON 'decode_json'; |
| |
| my $rf = \&KorAP::DefList::from_regex; |
| |
| sub _collection { |
| return decode_json($rf->(@_)->to_string)->{collection} |
| } |
| |
| my $doc = _collection("x",'Name','Beschreibung'); |
| is($doc->{key},'corpusSigle'); |
| is($doc->{value},'x'); |
| is($doc->{type},'type:string'); |
| is($doc->{comment},'name:"Name",desc:"Beschreibung"'); |
| |
| $doc = _collection("x/"); |
| is($doc->{key},'corpusSigle'); |
| is($doc->{value},'x'); |
| is($doc->{type},'type:string'); |
| |
| $doc = _collection("x[0-3]",'Na"me','Besch"re\'ibung'); |
| is($doc->{key},'corpusSigle'); |
| is($doc->{value},'x[0-3]'); |
| is($doc->{type},'type:regex'); |
| is($doc->{comment},'name:"Na\"me",desc:"Besch\"re\'ibung"'); |
| |
| $doc = _collection('x[0-3]/'); |
| is($doc->{key},'corpusSigle'); |
| is($doc->{value},'x[0-3]'); |
| is($doc->{type},'type:regex'); |
| |
| $doc = _collection('BIO/(BKA|LTI|TK1|TK2|TK3|TK4|TK5|TK6)'); |
| is($doc->{key},'docSigle'); |
| is($doc->{value},'BIO/(BKA|LTI|TK1|TK2|TK3|TK4|TK5|TK6)'); |
| is($doc->{type},'type:regex'); |
| |
| $doc = _collection('(GOE/(AGD|AGM|AGN|AGV|AGW))|(MK1/(LBC|LBT|LFH|LGB|LJA|LMB|LSO|MHE|TJM|TPM))|(MK2/TRI)'); |
| is($doc->{key},'docSigle'); |
| is($doc->{value},'(GOE/(AGD|AGM|AGN|AGV|AGW))|(MK1/(LBC|LBT|LFH|LGB|LJA|LMB|LSO|MHE|TJM|TPM))|(MK2/TRI)'); |
| is($doc->{type},'type:regex'); |
| |
| $doc = _collection('FSP/~FSP/(ANG|ANR|EIN|GEB|KAR|REI|SCH|TYP|VER|VID)','fsp-pub','Fachsprachenkorpus'); |
| |
| is($doc->{'@type'},'koral:docGroup'); |
| is($doc->{'operation'},'operation:and'); |
| is($doc->{operands}->[0]->{type},'type:string'); |
| is($doc->{operands}->[0]->{match},'match:eq'); |
| is($doc->{operands}->[0]->{key},'corpusSigle'); |
| is($doc->{operands}->[0]->{value},'FSP'); |
| is($doc->{operands}->[1]->{type},'type:regex'); |
| is($doc->{operands}->[1]->{match},'match:ne'); |
| is($doc->{operands}->[1]->{key},'docSigle'); |
| is($doc->{operands}->[1]->{value},'FSP/(ANG|ANR|EIN|GEB|KAR|REI|SCH|TYP|VER|VID)'); |
| |
| done_testing; |