From 49f152b65fd82988ae25a1b7ba4b74bdcbf39e9b Mon Sep 17 00:00:00 2001 From: Paul Miller Date: Fri, 10 Jun 2011 21:02:02 -0400 Subject: [PATCH] =?UTF-8?q?something=20turned=20warnings=20on,=20probably?= =?UTF-8?q?=20the=20test=20suite=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MANIFEST | 5 +++++ MapGen.pm | 1 + t/05_z_freeze_thaw.t | 42 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 t/05_z_freeze_thaw.t diff --git a/MANIFEST b/MANIFEST index 689d607..c97ae90 100644 --- a/MANIFEST +++ b/MANIFEST @@ -66,3 +66,8 @@ xmllint.test/bad.xml xmllint.test/map.xml xmllint.test/t2/MapGen.dtd xmllint.test/t2/MapGen.xsl +t/05_export.t +t/05_perfect.t +t/05_save_load_files.t +t/05_save_load_strings.t +t/05_z_freeze_thaw.t diff --git a/MapGen.pm b/MapGen.pm index 17fdde1..44896af 100644 --- a/MapGen.pm +++ b/MapGen.pm @@ -6,6 +6,7 @@ use strict; use AutoLoader; use Carp; use Storable; +no warnings; our $VERSION = '1.5000'; diff --git a/t/05_z_freeze_thaw.t b/t/05_z_freeze_thaw.t new file mode 100644 index 0000000..c755c33 --- /dev/null +++ b/t/05_z_freeze_thaw.t @@ -0,0 +1,42 @@ + +use strict; +use Test; + +my ($x, $y) = (25, 25); + +plan tests => ($x * $y); + +use Games::RolePlay::MapGen; +use Storable qw(freeze thaw); + +my $map = new Games::RolePlay::MapGen({bounding_box => join("x", $x, $y) }); + +$map->generate; +my $saved_string = freeze($map); + +my %checksums = (); +for my $i (0..$x-1) { + for my $j (0..$y-1) { + $checksums{$i}{$j} = &a_kind_of_checksum( $i, $j, $map ); + } +} + +delete $map->{_the_map}; +delete $map->{_the_groups}; + +$map = thaw($saved_string); + +for my $i (0..$x-1) { + for my $j (0..$y-1) { + ok( &a_kind_of_checksum($i, $j, $map), $checksums{$i}{$j} ); + } +} + +sub a_kind_of_checksum { + my ($x, $y, $map) = @_; + + my $tile = $map->{_the_map}[$y][$x]; + + return "nothin' there" if not exists $tile->{type}; + return sprintf('%d-%d-%s-%d%d%d%d', $x, $y, $tile->{type}, map($tile->{od}{$_}, qw(n e s w))); +}