/trunk/Examples/test-suite/perl5/virtual_poly_runme.pl
Perl | 36 lines | 19 code | 10 blank | 7 comment | 0 complexity | 4e7dbd1c5f8ec5a86440206c9bc1c210 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- #!/usr/bin/perl
- use strict;
- use warnings;
- use Test::More tests => 8;
- BEGIN { use_ok('virtual_poly') }
- require_ok('virtual_poly');
- my $d = virtual_poly::NDouble->new(3.5);
- my $i = virtual_poly::NInt->new(2);
- #
- # the copy methods return the right polymorphic types
- #
- my $dc = $d->copy();
- my $ic = $i->copy();
- is($d->get(), $dc->get());
- is($i->get(), $ic->get());
- virtual_poly::incr($ic);
- is($i->get() + 1, $ic->get());
- my $dr = $d->ref_this();
- is($d->get(), $dr->get());
- #
- # 'narrowing' also works
- #
- my $ddc = virtual_poly::NDouble::narrow($d->nnumber());
- is($d->get, $ddc->get());
- my $dic = virtual_poly::NInt::narrow($i->nnumber());
- is($i->get(), $dic->get());