summaryrefslogtreecommitdiff
path: root/SWIG/Examples/test-suite/csharp/default_args_runme.cs
blob: d9c9f60d896b58e9857b91a6520c9954c2d079e1 (plain)
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
using System;
using default_argsNamespace;

public class runme
{
    static void Main() 
    {
      if (default_args.anonymous() != 7771)
        throw new Exception("anonymous (1) failed");
      if (default_args.anonymous(1234) != 1234)
        throw new Exception("anonymous (2) failed");

      if (default_args.booltest() != true)
        throw new Exception("booltest (1) failed");
      if (default_args.booltest(true) != true)
        throw new Exception("booltest (2) failed");
      if (default_args.booltest(false) != false)
        throw new Exception("booltest (3) failed");

      EnumClass ec = new EnumClass();
      if (ec.blah() != true)
        throw new Exception("EnumClass failed");

      if (default_args.casts1() != null)
        throw new Exception("casts1 failed");

      if (default_args.casts2() != "Hello")
        throw new Exception("casts2 failed");

      if (default_args.casts1("Ciao") != "Ciao")
        throw new Exception("casts1 not default failed");

      if (default_args.chartest1() != 'x')
        throw new Exception("chartest1 failed");

      if (default_args.chartest2() != '\0')
        throw new Exception("chartest2 failed");

      if (default_args.chartest1('y') != 'y')
        throw new Exception("chartest1 not default failed");

      if (default_args.chartest1('y') != 'y')
        throw new Exception("chartest1 not default failed");

      if (default_args.reftest1() != 42)
        throw new Exception("reftest1 failed");

      if (default_args.reftest1(400) != 400)
        throw new Exception("reftest1 not default failed");

      if (default_args.reftest2() != "hello")
        throw new Exception("reftest2 failed");

      // rename
      Foo foo = new Foo();
      foo.newname(); 
      foo.newname(10); 

      // exception specifications
      try {
        default_args.exceptionspec();
        throw new Exception("exceptionspec 1 failed");
      } catch (Exception) {
      }
      try {
        default_args.exceptionspec(-1);
        throw new Exception("exceptionspec 2 failed");
      } catch (Exception) {
      }
      try {
        default_args.exceptionspec(100);
        throw new Exception("exceptionspec 3 failed");
      } catch (Exception) {
      }
      Except ex = new Except(false);
      try {
        ex.exspec();
        throw new Exception("exspec 1 failed");
      } catch (Exception) {
      }
      try {
        ex.exspec(-1);
        throw new Exception("exspec 2 failed");
      } catch (Exception) {
      }
      try {
        ex.exspec(100);
        throw new Exception("exspec 3 failed");
      } catch (Exception) {
      }
      try {
        ex = new Except(true);
        throw new Exception("Except constructor 1 failed");
      } catch (Exception) {
      }
      try {
        ex = new Except(true, -2);
        throw new Exception("Except constructor 2 failed");
      } catch (Exception) {
      }

      // Default parameters in static class methods
      if (Statics.staticmethod() != 10+20+30)
        throw new Exception("staticmethod 1 failed");
      if (Statics.staticmethod(100) != 100+20+30)
        throw new Exception("staticmethod 2 failed");
      if (Statics.staticmethod(100,200,300) != 100+200+300)
        throw new Exception("staticmethod 3 failed");


      Tricky tricky = new Tricky();
      if (tricky.privatedefault() != 200)
        throw new Exception("privatedefault failed");
      if (tricky.protectedint() != 2000)
        throw new Exception("protectedint failed");
      if (tricky.protecteddouble() != 987.654)
        throw new Exception("protecteddouble failed");
      if (tricky.functiondefault() != 500)
        throw new Exception("functiondefault failed");
      if (tricky.contrived() != 'X')
        throw new Exception("contrived failed");

      if (default_args.constructorcall().val != -1)
        throw new Exception("constructorcall test 1 failed");

      if (default_args.constructorcall(new Klass(2222)).val != 2222)
        throw new Exception("constructorcall test 2 failed");

      if (default_args.constructorcall(new Klass()).val != -1)
        throw new Exception("constructorcall test 3 failed");

      // const methods 
      ConstMethods cm = new ConstMethods();
      if (cm.coo() != 20)
        throw new Exception("coo test 1 failed");
      if (cm.coo(1.0) != 20)
        throw new Exception("coo test 2 failed");
    }
}