summaryrefslogtreecommitdiffstats
path: root/t
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-05-25 03:38:11 -0400
committerJesse Luehrs <doy@tozt.net>2014-05-25 03:38:21 -0400
commitfc00f92dd845e4fd1c7057a5eae696b71c15c7ca (patch)
tree0975bfcf77272c4e62a9267cc301337fb2d60a52 /t
parentd233d8e2c9503e0be1906081fa30a845c64109ba (diff)
downloadgames-smtnocturne-demons-fc00f92dd845e4fd1c7057a5eae696b71c15c7ca.tar.gz
games-smtnocturne-demons-fc00f92dd845e4fd1c7057a5eae696b71c15c7ca.zip
start adding tests
not all of them pass yet, since not everything is implemented properly yet
Diffstat (limited to 't')
-rw-r--r--t/basic.t65
-rw-r--r--t/lib/Test/Games/SMTNocturne/Demons.pm28
2 files changed, 93 insertions, 0 deletions
diff --git a/t/basic.t b/t/basic.t
new file mode 100644
index 0000000..3dd8d5c
--- /dev/null
+++ b/t/basic.t
@@ -0,0 +1,65 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use Test::More;
+use lib 't/lib';
+
+use Test::Games::SMTNocturne::Demons;
+
+fusion_is('Uzume', 'Uzume', undef);
+fusion_is('Uzume', 'Jack Frost', 'Forneus');
+fusion_is('Uzume', 'Mou-Ryo', undef);
+fusion_is('Uzume', 'Inugami', 'Unicorn');
+fusion_is('Uzume', 'Shikigami', 'Taraka');
+fusion_is('Uzume', 'Isora', 'Minakata');
+fusion_is('Uzume', 'Zhen', 'Baphomet');
+
+fusion_is('Jack Frost', 'Uzume', 'Forneus');
+fusion_is('Jack Frost', 'Jack Frost', undef);
+fusion_is('Jack Frost', 'Mou-Ryo', 'Choronzon');
+fusion_is('Jack Frost', 'Inugami', 'Angel');
+fusion_is('Jack Frost', 'Shikigami', 'Lilim');
+fusion_is('Jack Frost', 'Isora', 'Shiisaa');
+fusion_is('Jack Frost', 'Zhen', 'Apsaras');
+
+fusion_is('Mou-Ryo', 'Uzume', undef);
+fusion_is('Mou-Ryo', 'Jack Frost', 'Choronzon');
+fusion_is('Mou-Ryo', 'Mou-Ryo', undef);
+fusion_is('Mou-Ryo', 'Inugami', 'Bicorn');
+fusion_is('Mou-Ryo', 'Shikigami', 'Bicorn');
+fusion_is('Mou-Ryo', 'Isora', 'Nozuchi');
+fusion_is('Mou-Ryo', 'Zhen', 'Inugami');
+
+fusion_is('Inugami', 'Uzume', 'Unicorn');
+fusion_is('Inugami', 'Jack Frost', 'Angel');
+fusion_is('Inugami', 'Mou-Ryo', 'Bicorn');
+fusion_is('Inugami', 'Inugami', undef);
+fusion_is('Inugami', 'Shikigami', 'Taraka');
+fusion_is('Inugami', 'Isora', 'Forneus');
+fusion_is('Inugami', 'Zhen', 'Sudama');
+
+fusion_is('Shikigami', 'Uzume', 'Taraka');
+fusion_is('Shikigami', 'Jack Frost', 'Lilim');
+fusion_is('Shikigami', 'Mou-Ryo', 'Bicorn');
+fusion_is('Shikigami', 'Inugami', 'Taraka');
+fusion_is('Shikigami', 'Shikigami', undef);
+fusion_is('Shikigami', 'Isora', 'Taraka');
+fusion_is('Shikigami', 'Zhen', 'Jack Frost');
+
+fusion_is('Isora', 'Uzume', 'Minakata');
+fusion_is('Isora', 'Jack Frost', 'Shiisaa');
+fusion_is('Isora', 'Mou-Ryo', 'Nozuchi');
+fusion_is('Isora', 'Inugami', 'Forneus');
+fusion_is('Isora', 'Shikigami', 'Taraka');
+fusion_is('Isora', 'Isora', undef);
+fusion_is('Isora', 'Zhen', 'Inugami');
+
+fusion_is('Zhen', 'Uzume', 'Baphomet');
+fusion_is('Zhen', 'Jack Frost', 'Apsaras');
+fusion_is('Zhen', 'Mou-Ryo', 'Inugami');
+fusion_is('Zhen', 'Inugami', 'Sudama');
+fusion_is('Zhen', 'Shikigami', 'Jack Frost');
+fusion_is('Zhen', 'Isora', 'Inugami');
+fusion_is('Zhen', 'Zhen', undef);
+
+done_testing;
diff --git a/t/lib/Test/Games/SMTNocturne/Demons.pm b/t/lib/Test/Games/SMTNocturne/Demons.pm
new file mode 100644
index 0000000..5ccd8ac
--- /dev/null
+++ b/t/lib/Test/Games/SMTNocturne/Demons.pm
@@ -0,0 +1,28 @@
+package Test::Games::SMTNocturne::Demons;
+use strict;
+use warnings;
+use Exporter 'import';
+
+use Games::SMTNocturne::Demons;
+use Test::More;
+
+our @EXPORT = ('fusion_is');
+
+sub fusion_is {
+ local $Test::Builder::Level = $Test::Builder::Level + 1;
+ my ($demon1, $demon2, $expected) = @_;
+
+ my $fused = eval { Games::SMTNocturne::Demons::fuse($demon1, $demon2) };
+
+ die $@ if $@ && $@ !~ /\bnyi\b/;
+ local $TODO = $@ if $@;
+
+ if ($fused) {
+ is($fused->name, $expected);
+ }
+ else {
+ is(undef, $expected);
+ }
+}
+
+1;