PageRenderTime 43ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/Examples/test-suite/perl5/template_typedef_cplx2_runme.pl

#
Perl | 53 lines | 29 code | 13 blank | 11 comment | 0 complexity | e34b914a2b9effe10fd6065191dd38b2 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use Test::More tests => 16;
  5. BEGIN { use_ok('template_typedef_cplx2') }
  6. require_ok('template_typedef_cplx2');
  7. # adapted from ../python/template_typedef_cplx2_runme.py
  8. { # kids, don't try this at home (glob hijinks)
  9. my $cvar = *template_typedef_cplx2::;
  10. map { ${*::}{$_} = ${$cvar}{$_} } keys %{$cvar};
  11. }
  12. #
  13. # double case
  14. #
  15. my $d = eval { make_Identity_double() };
  16. ok(ref($d), 'is an object');
  17. like(ref($d), qr/ArithUnaryFunction/, "is an ArithUnaryFunction");
  18. my $e = eval { make_Multiplies_double_double_double_double($d, $d) };
  19. ok(ref($e), 'is an object');
  20. like(ref($e), qr/ArithUnaryFunction/, "is an ArithUnaryFunction");
  21. #
  22. # complex case
  23. #
  24. my $c = eval { make_Identity_complex() };
  25. ok(ref($c), 'is an object');
  26. like(ref($c), qr/ArithUnaryFunction/, "is an ArithUnaryFunction");
  27. my $f = eval { make_Multiplies_complex_complex_complex_complex($c, $c) };
  28. ok(ref($f), 'is an object');
  29. like(ref($f), qr/ArithUnaryFunction/, "is an ArithUnaryFunction");
  30. #
  31. # Mix case
  32. #
  33. my $g = eval { make_Multiplies_double_double_complex_complex($d, $c) };
  34. ok(ref($g), 'is an object');
  35. like(ref($g), qr/ArithUnaryFunction/, "is an ArithUnaryFunction");
  36. my $h = eval { make_Multiplies_complex_complex_double_double($c, $d) };
  37. ok(ref($h), 'is an object');
  38. like(ref($h), qr/ArithUnaryFunction/, "is an ArithUnaryFunction");
  39. can_ok($g, 'get_value');
  40. ok(eval { $g->get_value() }, 'get_value');