#!/usr/bin/perl
use
5.012;
eval
(
"require Text::Levenshtein::XS;"
);
plan
skip_all
=>
'This test requires the Text::Levenshtein::XS module to be installed'
if
$@;
my
%tests
= (
'good-map.xml'
=>
undef
,
'station-names-similar.xml'
=>
'Similar names maybe due to typo? :Station A1:Statione A2:'
,
);
my
@localdir
= File::Spec->splitdir($0);
pop
(
@localdir
);
for
my
$name
(
sort
keys
%tests
) {
my
$dataname
= File::Spec->catfile(
@localdir
,
$name
);
my
$map
= Sample->new(
xml
=>
$dataname
);
my
(
$ok
,
@messages
) = ok_station_names_different(
$map
, {
name
=>
$name
} );
if
(
$tests
{
$name
} ) {
if
(
$ok
) {
diag(
'Test passed although it should not, expected '
.
$tests
{
$name
} );
ok( !
$ok
,
$name
);
}
else
{
is(
$messages
[1],
$tests
{
$name
},
$name
);
}
}
else
{
diag(
$_
)
for
@messages
;
ok(
$ok
,
$name
);
}
}
my
$name
=
'station-names-similar.xml'
;
my
$dataname
= File::Spec->catfile(
@localdir
,
$name
);
my
$map
= Sample->new(
xml
=>
$dataname
);
my
(
$ok
,
@messages
) = ok_station_names_different(
$map
, {
name
=>
$name
,
dist_limit
=> 1 } );
diag(
$_
)
for
@messages
;
ok(
$ok
,
$name
);
(
$ok
,
@messages
) = ok_station_names_different(
$map
, {
name
=>
$name
,
max_allowed
=> 1 } );
diag(
$_
)
for
@messages
;
ok(
$ok
,
$name
);
(
$ok
,
@messages
) = ok_station_names_different(
$map
, {
name
=>
$name
,
dist_limit
=> 2 } );
if
(
$ok
) {
diag(
'Test passed although it should not, expected '
.
$tests
{
$name
} );
ok( !
$ok
,
$name
);
}
else
{
is(
$messages
[1],
$tests
{
$name
},
$name
);
}
(
$ok
,
@messages
) = ok_station_names_different(
$map
, {
name
=>
$name
,
max_allowed
=> 0 } );
if
(
$ok
) {
diag(
'Test passed although it should not, expected '
.
$tests
{
$name
} );
ok( !
$ok
,
$name
);
}
else
{
is(
$messages
[1],
$tests
{
$name
},
$name
);
}
done_testing;