File: template_default_arg_runme.pl

package info (click to toggle)
renderdoc 1.2%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 79,584 kB
  • sloc: cpp: 491,671; ansic: 285,823; python: 12,617; java: 11,345; cs: 7,181; makefile: 6,703; yacc: 5,682; ruby: 4,648; perl: 3,461; php: 2,119; sh: 2,068; lisp: 1,835; tcl: 1,068; ml: 747; xml: 137
file content (111 lines) | stat: -rw-r--r-- 3,930 bytes parent folder | download | duplicates (15)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
use strict;
use warnings;
use Test::More tests => 34;
BEGIN { use_ok('template_default_arg') }
require_ok('template_default_arg');

{
  my $helloInt = new template_default_arg::Hello_int();
  $helloInt->foo(0);
}
{
  my $x = new template_default_arg::X_int();
  is($x->meth(20.0, 200), 200, "X_int test 1");
  is($x->meth(20), 20, "X_int test 2");
  is($x->meth(), 0, "X_int test 3");
}

{
  my $y = new template_default_arg::Y_unsigned();
  is($y->meth(20.0, 200), 200, "Y_unsigned test 1");
  is($y->meth(20), 20, "Y_unsigned test 2");
  is($y->meth(), 0, "Y_unsigned test 3");
}

{
  my $x = new template_default_arg::X_longlong();
  $x = new template_default_arg::X_longlong(20.0);
  $x = new template_default_arg::X_longlong(20.0, 200);
}
{
  my $x = new template_default_arg::X_int();
  $x = new template_default_arg::X_int(20.0);
  $x = new template_default_arg::X_int(20.0, 200);
}
{
  my $x = new template_default_arg::X_hello_unsigned();
  $x = new template_default_arg::X_hello_unsigned(20.0);
  $x = new template_default_arg::X_hello_unsigned(20.0, new template_default_arg::Hello_int());
}
{
  my $y = new template_default_arg::Y_hello_unsigned();
  $y->meth(20.0, new template_default_arg::Hello_int());
  $y->meth(new template_default_arg::Hello_int());
  $y->meth();
}

{
  my $fz = new template_default_arg::Foo_Z_8();
  my $x = new template_default_arg::X_Foo_Z_8();
  my $fzc = $x->meth($fz);
}

# Templated functions
{
  # plain function: int ott(Foo<int>)
  is(template_default_arg::ott(new template_default_arg::Foo_int()), 30, "ott test 1");

  # %template(ott) ott<int, int>;
  is(template_default_arg::ott(), 10, "ott test 2");
  is(template_default_arg::ott(1), 10, "ott test 3");
  is(template_default_arg::ott(1, 1), 10, "ott test 4");

  is(template_default_arg::ott("hi"), 20, "ott test 5");
  is(template_default_arg::ott("hi", 1), 20, "ott test 6");
  is(template_default_arg::ott("hi", 1, 1), 20,"ott test 7");

  # %template(ott) ott<const char *>;
  is(template_default_arg::ottstring(new template_default_arg::Hello_int(), "hi"), 40, "ott test 8");

  is(template_default_arg::ottstring(new template_default_arg::Hello_int()), 40, "ott test 9");

  # %template(ott) ott<int>;
  is(template_default_arg::ottint(new template_default_arg::Hello_int(), 1), 50, "ott test 10");

  is(template_default_arg::ottint(new template_default_arg::Hello_int()), 50, "ott test 11");

  # %template(ott) ott<double>;
  is(template_default_arg::ott(new template_default_arg::Hello_int(), 1.0), 60, "ott test 12");

  is(template_default_arg::ott(new template_default_arg::Hello_int()), 60, "ott test 13");
}

# Above test in namespaces
{
  # plain function: int nsott(Foo<int>)
  is(template_default_arg::nsott(new template_default_arg::Foo_int()), 130, "nsott test 1");

  # %template(nsott) nsott<int, int>;
  is(template_default_arg::nsott(), 110, "nsott test 2");
  is(template_default_arg::nsott(1), 110, "nsott test 3");
  is(template_default_arg::nsott(1, 1), 110,  "nsott test 4");

  is(template_default_arg::nsott("hi"), 120, "nsott test 5");
  is(template_default_arg::nsott("hi", 1), 120, "nsott test 6");
  is(template_default_arg::nsott("hi", 1, 1), 120, "nsott test 7");

  # %template(nsott) nsott<const char *>;
  is(template_default_arg::nsottstring(new template_default_arg::Hello_int(), "hi"), 140, "nsott test 8");

  is(template_default_arg::nsottstring(new template_default_arg::Hello_int()), 140, "nsott test 9");

  # %template(nsott) nsott<int>;
  is(template_default_arg::nsottint(new template_default_arg::Hello_int(), 1), 150, "nsott test 10");

  is(template_default_arg::nsottint(new template_default_arg::Hello_int()), 150, "nsott test 11");

  # %template(nsott) nsott<double>;
  is(template_default_arg::nsott(new template_default_arg::Hello_int(), 1.0), 160, "nsott test 12");

  is(template_default_arg::nsott(new template_default_arg::Hello_int()), 160, "nsott test 13");
}