diff options
author | Jesse Luehrs <doy@tozt.net> | 2014-05-25 03:38:11 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2014-05-25 03:38:21 -0400 |
commit | fc00f92dd845e4fd1c7057a5eae696b71c15c7ca (patch) | |
tree | 0975bfcf77272c4e62a9267cc301337fb2d60a52 /t | |
parent | d233d8e2c9503e0be1906081fa30a845c64109ba (diff) | |
download | games-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.t | 65 | ||||
-rw-r--r-- | t/lib/Test/Games/SMTNocturne/Demons.pm | 28 |
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; |