1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
|
#!/bin/sh
#BEGIN DEPEND------------------------------------------------------------------
INPUT_MODULE=src/lib/perl5/COD/CIF/Data/CIF2COD.pm
#END DEPEND--------------------------------------------------------------------
IMPORT_MODULE=$(\
echo ${INPUT_MODULE} | \
perl -pe "s|^src/lib/perl5/||; s/[.]pm$//; s|/|::|g;" \
)
perl -M"${IMPORT_MODULE}" \
<<'END_SCRIPT'
#------------------------------------------------------------------------------
#$Author: antanas $
#$Date: 2024-05-26 16:42:43 +0300 (Sun, 26 May 2024) $
#$Revision: 10064 $
#$URL: svn+ssh://www.crystallography.net/home/coder/svn-repositories/cod-tools/tags/v3.11.0/tests/shtests/get_cod_status_003.sh $
#------------------------------------------------------------------------------
#*
#* Unit test for the COD::CIF::Data::CIF2COD::get_cod_status subroutine.
#* Tests the way the subroutine behaves when the input data block contains
#* the '_cod_entry_issue.severity' data item with various flag values.
#**
use strict;
use warnings;
# use COD::CIF::Data::CIF2COD;
my $data_block =
{
'name' => 'cod_status_both_approaches',
'tags' => [
'_cod_error_flag',
'_cod_entry_issue.id',
'_cod_entry_issue.severity'
],
'loops' => [
[ '_cod_entry_issue.id', '_cod_entry_issue.severity' ],
],
'inloop' => {
'_cod_entry_issue.id' => 0,
'_cod_entry_issue.severity' => 0,
},
'values' => {
'_cod_error_flag' => [ 'note' ],
'_cod_entry_issue.id' => [
'1', '2', '3', '4'
],
'_cod_entry_issue.severity' => [
'note', 'note', 'note', 'note'
],
},
'precisions' => {},
'types' => {
'_cod_error_flag' => [ 'UQSTRING' ],
'_cod_entry_issue.id' => [
'INT', 'INT', 'INT', 'INT'
],
'_cod_entry_issue.severity' => [
'UQSTRING', 'UQSTRING', 'UQSTRING', 'UQSTRING'
]
}
};
# Structure marked as retracted using the '_cod_error_flag' data item
$data_block->{'values'}{'_cod_error_flag'}[0] = 'retracted';
my $value = COD::CIF::Data::CIF2COD::get_cod_status($data_block);
if (defined $value) {
print 'Data block \'' . $data_block->{'name'} . "' has the '$value' status ('retracted' status expected)." . "\n";
} else {
print 'Data block \'' . $data_block->{'name'} . "' has an undefined status ('retracted' status expected)." . "\n";
}
# Structure marked as having errors using the '_cod_error_flag' data item
$data_block->{'values'}{'_cod_error_flag'}[0] = 'errors';
$value = COD::CIF::Data::CIF2COD::get_cod_status($data_block);
if (defined $value) {
print 'Data block \'' . $data_block->{'name'} . "' has the '$value' status ('errors' status expected)." . "\n";
} else {
print 'Data block \'' . $data_block->{'name'} . "' has an undefined status ('errors' status expected)." . "\n";
}
# Structure marked as having warnings using the '_cod_error_flag' data item
$data_block->{'values'}{'_cod_error_flag'}[0] = 'warnings';
$value = COD::CIF::Data::CIF2COD::get_cod_status($data_block);
if (defined $value) {
print 'Data block \'' . $data_block->{'name'} . "' has the '$value' status ('warnings' status expected)." . "\n";
} else {
print 'Data block \'' . $data_block->{'name'} . "' has an undefined status ('warnings' status expected)." . "\n";
}
# Structure marked as retracted using the '_cod_entry_issue.severity' data item
$data_block->{'values'}{'_cod_entry_issue.severity'}[3] = 'retraction';
$data_block->{'values'}{'_cod_error_flag'}[0] = 'note';
$value = COD::CIF::Data::CIF2COD::get_cod_status($data_block);
if (defined $value) {
print 'Data block \'' . $data_block->{'name'} . "' has the '$value' status ('retracted' status expected)." . "\n";
} else {
print 'Data block \'' . $data_block->{'name'} . "' has an undefined status ('retracted' status expected)." . "\n";
}
# Structure marked as having errors using the '_cod_entry_issue.severity' data item
$data_block->{'values'}{'_cod_entry_issue.severity'}[3] = 'error';
$data_block->{'values'}{'_cod_error_flag'}[0] = 'note';
$value = COD::CIF::Data::CIF2COD::get_cod_status($data_block);
if (defined $value) {
print 'Data block \'' . $data_block->{'name'} . "' has the '$value' status ('errors' status expected)." . "\n";
} else {
print 'Data block \'' . $data_block->{'name'} . "' has an undefined status ('errors' status expected)." . "\n";
}
# Structure marked as having warnings using the '_cod_entry_issue.severity' data item
$data_block->{'values'}{'_cod_entry_issue.severity'}[3] = 'warning';
$data_block->{'values'}{'_cod_error_flag'}[0] = 'note';
$value = COD::CIF::Data::CIF2COD::get_cod_status($data_block);
if (defined $value) {
print 'Data block \'' . $data_block->{'name'} . "' has the '$value' status ('warnings' status expected)." . "\n";
} else {
print 'Data block \'' . $data_block->{'name'} . "' has an undefined status ('warnings' status expected)." . "\n";
}
# Structure marked as having warnings using the '_cod_entry_issue.severity'
# data item and as having errors using the '_cod_error_flag' data item
$data_block->{'values'}{'_cod_entry_issue.severity'}[3] = 'warning';
$data_block->{'values'}{'_cod_error_flag'}[0] = 'errors';
$value = COD::CIF::Data::CIF2COD::get_cod_status($data_block);
if (defined $value) {
print 'Data block \'' . $data_block->{'name'} . "' has the '$value' status ('errors' status expected)." . "\n";
} else {
print 'Data block \'' . $data_block->{'name'} . '\' has an undefined status (\'errors\' status expected).' . "\n";
}
# Structure marked as being retracted using the '_cod_entry_issue.severity'
# data item and as having errors using the '_cod_error_flag' data item
$data_block->{'values'}{'_cod_entry_issue.severity'}[3] = 'retraction';
$data_block->{'values'}{'_cod_error_flag'}[0] = 'errors';
$value = COD::CIF::Data::CIF2COD::get_cod_status($data_block);
if (defined $value) {
print 'Data block \'' . $data_block->{'name'} . "' has the '$value' status ('retracted' status expected)." . "\n";
} else {
print 'Data block \'' . $data_block->{'name'} . '\' has an undefined status (\'retracted\' status expected).' . "\n";
}
END_SCRIPT
|