=noris.netheads Name

postfach


=head1 Ziel

Testen diverser kleinerer Funktionen, die nirgends anders gut hinpassen
und für die ein eigener Testcase zu viel Aufwand ist.


=head1 Testfälle

So viele wie möglich ...

=cut


package Test::pf;
use utf8;
use warnings;
use strict; use warnings;
BEGIN { unshift(@INC,($ENV{'POPHOME'}||'@POPHOME@').'/lib')
			unless $ENV{'KUNDE_NO_PERLPATH'};
      }


use Test::More tests => 92;
use Dbase::Test;
BEGIN {
	use_ok 'Dbase::Globals', qw(rund bignum get_bitmap beendet);
	use_ok 'Dbase::Help', qw(isotime);
}
use Fehler qw(ffehler);

my $time=time;

use Dbase::Globals qw(gen_descr find_descr flag_names);

okS "test//foo",sub {gen_descr("test",1,"foo",undef,"bla","blubb");};
okS "test//bar",sub {gen_descr("test",2,"bar",undef,"grumpf");};
okS "test//baz",sub {gen_descr("test",3,"baz",undef,"blubb");};

ffehler {
	my $x = get_bitmap("test","blubb");
	is($x, (1<<1)|(1<<3));
} sub {
	fail("get_bitmap\n".join("\n",@_));
};

ffehler {
	my $x = get_bitmap("test","isnich");
	is($x, 0);
} sub {
	fail("get_bitmap gibtsnicht, nicht negiert\n".join("\n",@_));
};

ffehler {
	my $x = get_bitmap("test","grumpf,isnich");
	is($x,(1<<2));
} sub {
	fail("get_bitmap nicht negiert\n".join("\n",@_));
};

ffehler {
	my $x = get_bitmap("test","isnich",1);
	fail("get_bitmap nicht negiert, strict");
} sub {
	pass("get_bitmap gibtsnicht negiert, strict");
};

ffehler {
	my $x = get_bitmap("test","!grumpf");
	is($x, (1<<1)|(1<<3));
} sub {
	fail("get_bitmap gibts negiert\n".join("\n",@_));
};

ffehler {
	my $x = get_bitmap("test","bla,!grumpf");
	is($x, (1<<1));
} sub {
	fail("get_bitmap gibts ok+negiert\n".join("\n",@_));
};

ffehler {
	my $x = get_bitmap("test","bla,!isnich");
	is($x, (1<<1));
} sub {
	fail("get_bitmap gibts+nicht, negiert\n".join("\n",@_));
};

ffehler {
	my $x = get_bitmap("test","!isnich");
	is($x, (1<<1)|(1<<2)|(1<<3));
} sub {
	fail("get_bitmap gibtsnicht, negiert\n".join("\n",@_));
};

ffehler {
	my $x = get_bitmap("test","!isnich",1);
	pass("get_bitmap negiert strict");
} sub {
	fail("Problem: get_bitmap negiert strict");
};

my $foo = 1 << find_descr test => 'foo', 1;
my $bar = 1 << find_descr test => 'bar', 1;
my $baz = 1 << find_descr test => 'baz', 1;

is flag_names($foo,"test"),"foo","Name foo";
is flag_names($foo,"test",0),"+foo","Name +foo";
is flag_names(0,"test",$foo),"-foo","Name -foo";

is flag_names(0,"test",0),"-","Nix 1";
is flag_names($foo,"test",$foo),"-","Nix 2";

is rund(12),12,"Runde 12";
is rund(13),13,"Runde 13";
is rund(12.3),12,"Runde 12.3";
is rund(12.49999),12,"Runde 12.5-";
is rund(12.5),13,"Runde 12.5";
is rund(12.50001),13,"Runde 12.5+";
is rund(12.6),13,"Runde 12.6";

is rund(1200,2),12,"Runde 12 *100";
is rund(1300,2),13,"Runde 13 *100";
is rund(1230,2),12,"Runde 12.3 *100";
is rund(1249.9999,2),12,"Runde 12.5 *100-";
is rund(1250.0000,2),13,"Runde 12.5 *100";
is rund(1250.0001,2),13,"Runde 12.5 *100+";
is rund(1260,2),13,"Runde 12.6 *100";

is rund(1200,-2),1200,"Runde 12 *100*";
is rund(1300,-2),1300,"Runde 13 *100*";
is rund(1230,-2),1200,"Runde 12.3 *100*";
is rund(1249.9999,-2),1200,"Runde 12.5 *100*-";
is rund(1250.0000,-2),1300,"Runde 12.5 *100*";
is rund(1250.0001,-2),1300,"Runde 12.5 *100*+";
is rund(1260,-2),1300,"Runde 12.6 *100*";

is rund(-12),-12,"Runde -12";
is rund(-13),-13,"Runde -13";
is rund(-12.3),-12,"Runde -12.3";
is rund(-12.49999),-12,"Runde -12.5-";
is rund(-12.5),-13,"Runde -12.5";
is rund(-12.50001),-13,"Runde -12.5+";
is rund(-12.6),-13,"Runde -12.6";

is rund(-1200,2),-12,"Runde -12 *100";
is rund(-1300,2),-13,"Runde -13 *100";
is rund(-1230,2),-12,"Runde -12.3 *100";
is rund(-1249.9999,2),-12,"Runde -12.5 *100-";
is rund(-1250.0000,2),-13,"Runde -12.5 *100";
is rund(-1250.0001,2),-13,"Runde -12.5 *100+";
is rund(-1260,2),-13,"Runde -12.6 *100";

is rund(-1200,-2),-1200,"Runde -12 *100*";
is rund(-1300,-2),-1300,"Runde -13 *100*";
is rund(-1230,-2),-1200,"Runde -12.3 *100*";
is rund(-1249.9999,-2),-1200,"Runde -12.5 *100*-";
is rund(-1250.0000,-2),-1300,"Runde -12.5 *100*";
is rund(-1250.0001,-2),-1300,"Runde -12.5 *100*+";
is rund(-1260,-2),-1300,"Runde -12.6 *100*";

is rund(bignum(1200),2),12,"Runde Big 12 *100";
is rund(bignum(1300),2),13,"Runde Big 13 *100";
is rund(bignum(1230),2),12,"Runde Big 12.3 *100";
is rund(bignum(1249),2),12,"Runde Big 12.5 *100-";
is rund(bignum(1250),2),13,"Runde Big 12.5 *100";
is rund(bignum(1251),2),13,"Runde Big 12.5 *100+";
is rund(bignum(1260),2),13,"Runde Big 12.6 *100";

is rund(bignum(-1200),2),-12,"Runde Big -12 *100";
is rund(bignum(-1300),2),-13,"Runde Big -13 *100";
is rund(bignum(-1230),2),-12,"Runde Big -12.3 *100";
is rund(bignum(-1249),2),-12,"Runde Big -12.5 *100-";
is rund(bignum(-1250),2),-13,"Runde Big -12.5 *100";
is rund(bignum(-1251),2),-13,"Runde Big -12.5 *100+";
is rund(bignum(-1260),2),-13,"Runde Big -12.6 *100";

is rund(bignum(1200),-2),1200,"Runde Big 12 *100*";
is rund(bignum(1300),-2),1300,"Runde Big 13 *100*";
is rund(bignum(1230),-2),1200,"Runde Big 12.3 *100*";
is rund(bignum(1249),-2),1200,"Runde Big 12.5 *100*-";
is rund(bignum(1250),-2),1300,"Runde Big 12.5 *100*";
is rund(bignum(1251),-2),1300,"Runde Big 12.5 *100*+";
is rund(bignum(1260),-2),1300,"Runde Big 12.6 *100*";

is rund(bignum(-1200),-2),-1200,"Runde Big -12 *100*";
is rund(bignum(-1300),-2),-1300,"Runde Big -13 *100*";
is rund(bignum(-1230),-2),-1200,"Runde Big -12.3 *100*";
is rund(bignum(-1249),-2),-1200,"Runde Big -12.5 *100*-";
is rund(bignum(-1250),-2),-1300,"Runde Big -12.5 *100*";
is rund(bignum(-1251),-2),-1300,"Runde Big -12.5 *100*+";
is rund(bignum(-1260),-2),-1300,"Runde Big -12.6 *100*";

# TODO weitere Fälle

## beendet() braucht die Datenbank
is( beendet(undef), '', 'beendet() ohne Datum' );
{
    my $ende = time() + 86400;
    is(
        beendet($ende),
        ' (beendet ab ' . isotime($ende) . ')',
        'noch nicht beendet()'
    );
}
{
    my $ende = time() - 86400;
    is(
        beendet($ende),
        ' (beendet seit ' . isotime($ende) . ')',
        'bereits beendet()'
    );
}
