The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use warnings;
use strict;

use Test::More tests => 9;

BEGIN {
	use_ok "Time::UTC", qw(
		utc_start_segment utc_day_seconds
		foreach_utc_segment_when_complete
	);
}

use Math::BigRat 0.02;

{
	no warnings "redefine";
	sub Time::UTC::Segment::_download_latest_data() { 0 }
}

my $done_sseg = 0;
my $sseg = utc_start_segment();

$sseg->when_complete(sub { $done_sseg++; });

my $done_segs = 0;
my $chained_segs = 0;
my $next_seg = $sseg;
foreach_utc_segment_when_complete {
	my($seg) = @_;
	$done_segs++;
	$chained_segs++ if $seg == $next_seg;
	$next_seg = $seg->next;
};

is $done_sseg, 0;
is $done_segs, 0;

utc_day_seconds(Math::BigRat->new(2000));

is $done_sseg, 1;
is $done_segs, 41;
is $chained_segs, 41;

utc_day_seconds(Math::BigRat->new(2000));

is $done_sseg, 1;
is $done_segs, 41;
is $chained_segs, 41;

1;