Algorithm-SlopeOne

 view release on metacpan or  search on metacpan

t/01-simple.t  view on Meta::CPAN

#!perl
use strict;
use utf8;
use warnings qw(all);

use Test::More;

use Algorithm::SlopeOne;

my $s = Algorithm::SlopeOne->new;
isa_ok($s, q(Algorithm::SlopeOne));
can_ok($s, qw(add predict));

$s->add([
    {
        squid       => 1.0,
        cuttlefish  => 0.5,
        octopus     => 0.2,
    }, {
        squid       => 1.0,
        octopus     => 0.5,
        nautilus    => 0.2,
    }, {
        squid       => 0.2,
        octopus     => 1.0,
        cuttlefish  => 0.4,
        nautilus    => 0.4,
    }, {
        cuttlefish  => 0.9,
        octopus     => 0.4,
        nautilus    => 0.5,
    },
]);
is_deeply(
    $s->predict({ squid => 0.4 }),
    { cuttlefish => 0.25, nautilus => 0.1, octopus => 7 / 30 },
    q(range 0-1),
);

$s->clear;

$s->add({
    24          => 9.5,
    Lost        => 8.2,
    House       => 6.8,
});
$s->add({
    24          => 3.7,
    "Big Bang Theory" => 2.1,
    House       => 8.3,
});
$s->add([
    {
        24          => 9.5,
        Lost        => 3.4,
        House       => 5.5,
        "Big Bang Theory" => 9.3,
    }, {
        24          => 7.2,
        Lost        => 5.1,
        House       => 8.4,
        "The Event" => 7.8,
    },



( run in 0.393 second using v1.01-cache-2.11-cpan-677af5a14d3 )