1#!/usr/bin/perl 2use strict; 3use warnings; 4use Test::More tests => 16; 5BEGIN { use_ok('template_typedef_cplx3') } 6require_ok('template_typedef_cplx3'); 7 8# adapted from ../python/template_typedef_cplx3_runme.py 9 10{ # kids, don't try this at home (glob hijinks) 11 my $cvar = *template_typedef_cplx3::; 12 map { ${*::}{$_} = ${$cvar}{$_} } keys %{$cvar}; 13} 14 15my $s = Sin->new(); 16is($s->get_base_value(), 0); 17is($s->get_value(), 1); 18is($s->get_arith_value(), 2); 19is(my_func_r($s), 0); 20isa_ok(make_Multiplies_double_double_double_double($s,$s), 21 "template_typedef_cplx3::ArithUnaryFunction_double_double"); 22 23my $z = CSin->new(); 24is($z->get_base_value(), 0); 25is($z->get_value(), 1); 26is($z->get_arith_value(), 2); 27is(my_func_c($z), 1); 28isa_ok(make_Multiplies_complex_complex_complex_complex($z,$z), 29 "template_typedef_cplx3::ArithUnaryFunction_complex_complex"); 30 31my $d = eval { make_Identity_double() }; 32isa_ok($d, "template_typedef_cplx3::ArithUnaryFunction_double_double"); 33is(my_func_r($d), 0); 34 35my $c = eval { make_Identity_complex() }; 36isa_ok($d, "template_typedef_cplx3::ArithUnaryFunction_double_double"); 37is(my_func_c($c), 1); 38 39 40 41 42