AI-Pathfinding-OptimizeMultiple

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

    - Add missing Prerequisites
        - MooX::late
        - MooX::Types::MooseLike::Base

v0.0.3      2013-01-18

    - Fixed broken POD for hyperlinks.

v0.0.2      2013-01-17

    - Fixed the POD - removed extraneous sections and added a NAME handler.
        - Part of it was caused due to a Pod::Weaver misconfiguration

v0.0.1      2013-01-17

    - First version, released on an unsuspecting world.

    - Everything is still subject to change and break.

lib/AI/Pathfinding/OptimizeMultiple.pm  view on Meta::CPAN

=head1 SYNOPSIS

    use AI::Pathfinding::OptimizeMultiple

    my @scans =
    (
        {
            name => "first_search"
        },
        {
            name => "second_search",
        },
        {
            name => "third_search",
        },
    );

    my $obj = AI::Pathfinding::OptimizeMultiple->new(
        {
            scans => \@scans,
            num_boards => 32_000,
            optimize_for => 'speed',
            scans_iters_pdls =>
            {
                first_search => $first_search_pdl,
                second_search => $second_search_pdl,
            },
            quotas => [400, 300, 200],
            selected_scans =>
            [
                AI::Pathfinding::OptimizeMultiple::Scan->new(
                    id => 'first_search',
                    cmd_line => "--preset first_search",
                ),
                AI::Pathfinding::OptimizeMultiple::Scan->new(
                    id => 'second_search',
                    cmd_line => "--preset second_search",
                ),
                AI::Pathfinding::OptimizeMultiple::Scan->new(
                    id => 'third_search',
                    cmd_line => "--preset third_search",
                ),
            ],
        }
    );

    $obj->calc_meta_scan();

t/optimize-multiple-full-test.t  view on Meta::CPAN


{
    # TEST*$test_based_on_data
    test_based_on_data(
        [
            {
                name => "first",
                data => [ 200, 400, 500 ],
            },
            {
                name => "second",
                data => [ 300, 50, 1000 ],
            },
            {
                name => "third",
                data => [ 10, 10, 100000 ],
            },
        ],
        [ 200, 500, ],
        [
            {

t/optimize-multiple-full-test.t  view on Meta::CPAN


{
    # TEST*$test_based_on_data
    test_based_on_data(
        [
            {
                name => "first",
                data => [ 50_000, 100_000, 100_000, 1_000_000, 2_000_000 ],
            },
            {
                name => "second",
                data => [ 100, 200, 200, 300, 300 ],
            },
            {
                name => "third",
                data => [ 2000, 2000, 2000, 2000, 2000 ],
            },
        ],
        [ 100, 300, ],
        [
            {
                name  => "first",
                iters => 100_000,
            },
            {
                name  => "second",
                iters => 300,
            },
        ],
        {
            first => 1000,
        },
        'Test the stats_factors',
    );
}

{
    # TEST*$test_based_on_data
    test_based_on_data(
        [
            {
                name => "first",
                data => [ 50_000, 99_500, 100_000, 1_000_000, 2_000_000 ],
            },
            {
                name => "second",
                data => [ 100, 200, 200, 300, 300 ],
            },
            {
                name => "third",
                data => [ 2000, 2000, 2000, 2000, 2000 ],
            },
        ],
        [ 100, 300, ],
        [
            {
                name  => "first",
                iters => 100_000,
            },
            {
                name  => "second",
                iters => 300,
            },
        ],
        {
            first => 1000,
        },
        'Test fractional stats due to stats_factors',
    );
}

{
    # TEST*$test_based_on_data
    test_based_on_data(
        [
            {
                name => "first",
                data => [ 50_000, 99_500, 100_000, -1, -1, ],
            },
            {
                name => "second",
                data => [ 100, 200, 200, 300, 300 ],
            },
            {
                name => "third",
                data => [ 2000, 2000, 2000, 2000, 2000 ],
            },
        ],
        [ 100, 300, ],
        [
            {
                name  => "first",
                iters => 100_000,
            },
            {
                name  => "second",
                iters => 300,
            },
        ],
        {
            first => 1000,
        },
        'Test negative stats due to stats_factors',
    );
}



( run in 0.578 second using v1.01-cache-2.11-cpan-39bf76dae61 )