The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# -*- perl -*-

# t/004_podcoverage.t - check function

use Test::More tests => 52;
use DateTime;
use DateTime::Event::Zodiac qw(zodiac_date_name zodiac_date_symbol zodiac_astro_name zodiac_astro_symbol);

my @data = (
    [10 , 10, 2000, 'libra', 'libra'],
    [31 , 12, 2000, 'capricornus', 'capricornus'],
    [1 , 1, 2000, 'capricornus', 'capricornus'],
    [19 , 1, 2000, 'capricornus', 'capricornus'],
    [20 , 1, 2000, 'aquarius', 'capricornus'],
    [4 , 6, 2000, 'gemini', 'gemini'],
    [11 , 10, 1977, 'libra', 'libra'],
    [30 , 6, 1978, 'cancer', 'cancer'],
    [26 , 2, 1976, 'pisces', 'pisces'],
    [27 , 03, 1979, 'aries', 'aries'],
    # http://www.themamundi.de/aws/tabellen/ingress.htm
    [22 , 8, 2004, 'leo', 'leo',18], 
    [22 , 8, 2004, 'leo', 'virgo',21],
    [21 , 5, 2003, 'gemini', 'taurus',10], 
    
    [21 , 5, 2003, 'gemini', 'gemini',12],
);

foreach (@data) {
    my $dt = DateTime->new( 
        year   => $_->[2],
        month  => $_->[1],
        day    => $_->[0],
        hour   => ($_->[5] || 12),
        minute => 0,
    );
    
    is(zodiac_date_name($dt),$_->[3],$dt->dmy.' '.$_->[3]);
    is(zodiac_astro_name($dt),$_->[4],$dt->dmy.' '.$_->[4]);
}

my @symbols = (
    "\x{2651}",
    "\x{2652}",
    "\x{2653}",
    "\x{2648}",
    "\x{2649}",
    "\x{264a}",
    "\x{264b}",
    "\x{264c}",
    "\x{264d}",
    "\x{264e}",
    "\x{264f}",
    "\x{2650}"
);

my $dt = DateTime->new( 
    year   => 2008,
    month  => 1,
    day    => 1,
);
for (1..12) {
   $dt->set(month => $_); 
   is(zodiac_astro_symbol($dt),$symbols[$_ -1],$dt->dmy.' symbol astro');
   is(zodiac_date_symbol($dt),$symbols[$_ -1],$dt->dmy.' symbol date');
}