Games-Solitaire-Verify

 view release on metacpan or  search on metacpan

t/from-patsolve.t  view on Meta::CPAN

#!/usr/bin/env perl

use strict;
use warnings;
use autodie;
use Path::Tiny qw/ path /;

use Test::Differences (qw( eq_or_diff ));

require 5.008;

use Test::More tests => 6;

use Games::Solitaire::Verify::App::CmdLine::From_Patsolve ();

my $sol_fn =
    path('t/data/sample-solutions/patsolve-338741497-win-solution.txt');

my $board_fn = path('t/data/boards/338741497.board');

{
    my $obj = Games::Solitaire::Verify::App::CmdLine::From_Patsolve->new(
        {
            argv => [ qw(-g freecell), $board_fn, $sol_fn, ],
        }
    );

    $obj->_read_initial_state();

    # TEST
    ok( 1, "_read_initial_state is successful." );

    $obj->_perform_move("2S to temp");

    # TEST
    eq_or_diff(
        scalar( $obj->_get_buffer ),
        <<"EOF",
-=-=-=-=-=-=-=-=-=-=-=-

Foundations: H-0 C-0 D-0 S-0
Freecells:
: QD 5S JC 3S 9H 3C 9S
: QH QC 3D 5H 2C 7D KS
: 9D 3H JH JS 4S AC 2H
: AS 5D 4C TC TD 2D KC
: AH 6H KD KH TH QS
: JD TS 8C 5C 6C 2S
: 8D 8H 8S 6S 6D 9C
: AD 7H 7S 7C 4H 4D


====================

Move a card from stack 5 to freecell 0

Foundations: H-0 C-0 D-0 S-0
Freecells:  2S
: QD 5S JC 3S 9H 3C 9S
: QH QC 3D 5H 2C 7D KS
: 9D 3H JH JS 4S AC 2H
: AS 5D 4C TC TD 2D KC
: AH 6H KD KH TH QS
: JD TS 8C 5C 6C
: 8D 8H 8S 6S 6D 9C
: AD 7H 7S 7C 4H 4D




( run in 1.085 second using v1.01-cache-2.11-cpan-6aa56a78535 )