BEGIN{
use_ok(
'Bio::SNP::Inherit'
);
}
eval
{
my
$dead_snp_obj
= Bio::SNP::Inherit->new(
manifest_filename
=>
't/sample_bad_manifest.tab'
,
data_filename
=>
't/sample_data.tab'
,
);
};
like(
$@,
qr/duplicate sample id in manifest file/
,
'fail on duplicate sample id in manifest file'
);
eval
{
my
$dead_snp_obj
= Bio::SNP::Inherit->new(
manifest_filename
=>
't/missing_id_manifest.tab'
,
data_filename
=>
't/sample_data.tab'
,
);
};
like(
$@,
qr/Empty id/
,
'fail on missing id in manifest file'
);
my
$dummy_sample_snp_obj
= Bio::SNP::Inherit->new(
manifest_filename
=>
't/dummy_manifest.tab'
,
data_filename
=>
't/dummy_data.tab'
,
);
my
%dummy_sample_for
= (
'WG0096796-DNAF01'
=> {
name
=>
'B97'
,
group
=>
'25DL'
,
replicates
=> [
'WG0096796-DNAF11'
],
},
'WG0096796-DNAA05'
=> {
name
=>
'B73xB97'
,
group
=>
'NAM F1'
,
parentA
=>
'WG0096795-DNAA01'
,
parentB
=>
'WG0096796-DNAF01'
,
},
'WG0096795-DNAA01'
=> {
name
=>
'B73'
,
group
=>
'Control'
,
replicates
=>[
'WG0096796-DNAA01'
,
'WG0096797-DNAA01'
],
},
'WG0096796-DNAA01'
=> {
name
=>
'B73'
,
group
=>
'Control'
,
replicate_of
=>
'WG0096795-DNAA01'
,
},
'WG0096797-DNAA01'
=> {
name
=>
'B73'
,
group
=>
'Control'
,
replicate_of
=>
'WG0096795-DNAA01'
,
},
'WG0096796-DNAF11'
=> {
name
=>
'B97'
,
group
=>
'Holland pop'
,
replicate_of
=>
'WG0096796-DNAF01'
,
},
'DUMMY-NUMBER-WEL'
=> {
name
=>
'B73xB97'
,
group
=>
'NAM F1'
,
parentA
=>
'WG0096795-DNAA01'
,
},
'DUMMY-NUMBE-WELL'
=> {
name
=>
'B73xB97'
,
group
=>
'NAM F1'
,
parentB
=>
'WG0096796-DNAF01'
,
},
);
is_deeply(
$dummy_sample_snp_obj
->_sample_for(),
\
%dummy_sample_for
,
'correctly parses/stores info from dummy manifest file'
);
SKIP: {
eval
'use File::Slurp qw{ slurp }'
;
skip(
'File::Slurp needed for these tests'
,2)
if
$@;
eval
'use Test::LongString'
;
skip(
'Test::LongString needed for these tests'
,2)
if
$@;
my
$expected_dummy_abh
= slurp(
't/dummy_abh.tab'
);
my
$result_dummy_abh
= slurp(
't/dummy_data.tab_abh.tab'
);
is_string(
$result_dummy_abh
,
$expected_dummy_abh
,
'dummy abh correct'
);
my
$expected_dummy_summary
= slurp(
't/dummy_summary.tab'
);
my
$result_dummy_summary
= slurp(
't/dummy_data.tab_summary.tab'
);
is_string(
$result_dummy_summary
,
$expected_dummy_summary
,
'dummy summary correct'
);
}
my
$snp_obj
= Bio::SNP::Inherit->new(
manifest_filename
=>
't/sample_manifest.tab'
,
data_filename
=>
't/sample_data.tab'
,
);
my
%expected_sample_for
= (
'WG0096796-DNAF01'
=> {
name
=>
'B97'
,
group
=>
'25DL'
,
replicates
=> [
'WG0096796-DNAF11'
],
},
'WG0096796-DNAA05'
=> {
name
=>
'B73xB97'
,
group
=>
'NAM F1'
,
parentA
=>
'WG0096795-DNAA01'
,
parentB
=>
'WG0096796-DNAF01'
,
},
'WG0096795-DNAA01'
=> {
name
=>
'B73'
,
group
=>
'Control'
,
replicates
=>[
'WG0096796-DNAA01'
,
'WG0096797-DNAA01'
],
},
'WG0096796-DNAA01'
=> {
name
=>
'B73'
,
group
=>
'Control'
,
replicate_of
=>
'WG0096795-DNAA01'
,
},
'WG0096797-DNAA01'
=> {
name
=>
'B73'
,
group
=>
'Control'
,
replicate_of
=>
'WG0096795-DNAA01'
,
},
'WG0096796-DNAF11'
=> {
name
=>
'B97'
,
group
=>
'Holland pop'
,
replicate_of
=>
'WG0096796-DNAF01'
,
},
);
is_deeply(
$snp_obj
->_sample_for(),
\
%expected_sample_for
,
'correctly parses/stores info from sample manifest file'
);
remove_temp_file(
't/dummy_data.tab_abh.tab'
);
remove_temp_file(
't/dummy_data.tab_summary.tab'
);
remove_temp_file(
't/sample_data.tab_abh.tab'
);
remove_temp_file(
't/sample_data.tab_summary.tab'
);
sub
remove_temp_file{
my
$filename
=
shift
;
my
$result
=
unlink
$filename
;
ok(
$result
,
"removed temp file: '$filename'"
);
}