Data-EventStream

 view release on metacpan or  search on metacpan

t/event_stream_mixed.t  view on Meta::CPAN

use Test::Most;
use Test::FailWarnings;

use Data::EventStream;

use lib 't/lib';
use MinMax;
use TestStream;

my %params = (
    t10 => { duration => 10, },
    c3  => { count    => 3, },
    ct  => { duration => 10, count => 3, },
    ctb => { duration => 10, count => 3, batch => 1, },
);

my @events = (
    {
        time => 3,
        val  => 52,
        ins  => { t10 => "52,52,1", c3 => "52,52,3", ct => "52,52,1", ctb => "52,52,1", },
    },
    {
        time => 5,
        val  => 33,
        ins  => { t10 => "33,52,1", c3 => "33,52,3", ct => "33,52,1", ctb => "33,52,1", },
    },
    {
        time   => 7,
        val    => 47,
        resets => { ctb => "33,52,1", },
        ins    => { t10 => "33,52,1", c3 => "33,52,3", ct => "33,52,1", ctb => "33,52,1", },
    },
    {
        time => 16,
        outs => { t10 => [ "33,52,3", "33,47,5", ], ct => [ "33,52,3", "33,47,5", ], },
        vals => { t10 => "47,47,6", c3 => "33,52,3", ct => "47,47,6", ctb => "NaN,NaN,7", },
    },
    {
        time   => 18,
        val    => 23,
        resets => { ctb => "NaN,NaN,7" },
        outs   => { t10 => "47,47,7", c3 => "33,52,3", ct => "47,47,7", },
        ins    => { t10 => "23,23,8", c3 => "23,47,5", ct => "23,23,8", ctb => "23,23,17", },
    },
    {
        time => 19,
        val  => 15,
        outs => { c3 => "23,47,5", },
        ins  => { t10 => "15,23,9", c3 => "15,47,7", ct => "15,23,9", ctb => "15,23,17", },
    },
    {
        time   => 20,
        val    => 22,
        resets => { ctb => "15,23,17" },
        outs   => { c3 => "15,47,7", },
        ins    => { t10 => "15,23,10", c3 => "15,23,18", ct => "15,23,10", ctb => "15,23,17", },
    },
    {
        time => 21,
        val  => 14,
        outs => { c3 => "15,23,18", ct => "15,23,18", },
        ins  => { t10 => "14,23,11", c3 => "14,22,19", ct => "14,22,19", ctb => "14,14,20", },
    },
);

TestStream->new(
    aggregator_class     => 'MinMax',
    aggregator_params    => \%params,
    events               => \@events,
    start_time           => 1,
    time_sub             => sub { $_[0]->{time} },
    expected_length      => 3,
    expected_time_length => 10,
)->run;

done_testing;



( run in 2.755 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )