From fc00f92dd845e4fd1c7057a5eae696b71c15c7ca Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sun, 25 May 2014 03:38:11 -0400 Subject: start adding tests not all of them pass yet, since not everything is implemented properly yet --- t/basic.t | 65 ++++++++++++++++++++++++++++++++++ t/lib/Test/Games/SMTNocturne/Demons.pm | 28 +++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 t/basic.t create mode 100644 t/lib/Test/Games/SMTNocturne/Demons.pm (limited to 't') 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; -- cgit v1.2.3