plan
tests
=> 13;
test_constructor();
test_accessors();
sub
test_constructor {
throws_ok {
Algorithm::AM::DataSet::Item->new();
}
qr/Must provide 'features' parameter of type array ref.*Item.t/
,
'constructor dies with missing features parameter'
;
throws_ok {
Algorithm::AM::DataSet::Item->new(
features
=>
'hello'
);
}
qr/Must provide 'features' parameter of type array ref.*Item.t/
,
'constructor dies with incorrect features parameter'
;
throws_ok {
Algorithm::AM::DataSet::Item->new(
features
=> [
'a'
],
foo
=>
'baz'
,
bar
=>
'qux'
);
}
qr/Unknown parameters: bar,foo.*Item.t/
,
'constructor dies with unknown parameters'
;
my
$item
= Algorithm::AM::DataSet::Item->new(
features
=> [
'a'
,
'b'
]);
isa_ok(
$item
,
'Algorithm::AM::DataSet::Item'
);
$item
= new_item(
features
=> [
'a'
,
'b'
]);
isa_ok(
$item
,
'Algorithm::AM::DataSet::Item'
);
return
;
}
sub
test_accessors {
my
$item_1
= Algorithm::AM::DataSet::Item->new(
features
=> [
'a'
,
'b'
],
class
=>
'zed'
,
comment
=>
'xyz'
);
is_deeply(
$item_1
->features, [
'a'
,
'b'
],
'features value'
);
is(
$item_1
->class,
'zed'
,
'class value'
);
is(
$item_1
->comment,
'xyz'
,
'comment value'
);
is(
$item_1
->cardinality, 2,
'cardinality'
);
my
$item_2
= Algorithm::AM::DataSet::Item->new(
features
=> [
'a'
,
'b'
,
''
]);
is(
$item_2
->class,
undef
,
'class default value'
);
is(
$item_2
->comment,
'a,b,'
,
'comment default value'
);
ok(
$item_1
->id ne
$item_2
->id,
q[unique items have unique id's]
)
or note
q[item id's are both ]
.
$item_1
->id;
note
$item_1
->id;
}