Chess-Opening

 view release on metacpan or  search on metacpan

t/get-key.t  view on Meta::CPAN

# to Public License, Version 2, as published by Sam Hocevar. See
# http://www.wtfpl.net/ for more details.

use common::sense;

use Test::More;
use Chess::Opening::Book::Polyglot;

# Tests from http://hardy.uhasselt.be/Toga/book_format.html

sub stringify_key($);

my ($key);

$key = Chess::Opening::Book::Polyglot->_getKey(
	'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1'
);
is stringify_key $key, "0x463b96181691fc9c";

$key = Chess::Opening::Book::Polyglot->_getKey(
	'rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1',

t/get-key.t  view on Meta::CPAN

);
is stringify_key $key, "0x3c8123ea7b067637";

$key = Chess::Opening::Book::Polyglot->_getKey(
	'rnbqkbnr/p1pppppp/8/8/P6P/R1p5/1P1PPPP1/1NBQKBNR b Kkq - 0 4',
);
is stringify_key $key, "0x5c3f9b829b279560";

done_testing;

sub stringify_key($) {
	my @bytes = unpack 'C*', shift;

	my $retval = '0x';
	foreach my $byte (@bytes) {
		$retval .= sprintf '%02x', $byte;
	}

	return $retval;
}



( run in 0.322 second using v1.01-cache-2.11-cpan-1f129e94a17 )