File: operator_overload_runme.cs

package info (click to toggle)
swig 4.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 46,232 kB
  • sloc: cpp: 54,631; ansic: 29,122; java: 17,530; python: 12,505; cs: 10,369; ruby: 7,232; yacc: 6,477; makefile: 5,965; javascript: 5,520; sh: 5,415; perl: 4,187; php: 3,693; ml: 2,187; lisp: 2,056; tcl: 1,991; xml: 115
file content (74 lines) | stat: -rw-r--r-- 2,250 bytes parent folder | download | duplicates (2)
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
using System;
using System.Threading;
using operator_overloadNamespace;

public class runme
{
  static void Main() 
  {
    Op.sanity_check();
    {
      Op op = new Op(100);
      Op opNew = op++;
      if (op.i != 101) throw new Exception("operator++ postfix failed (op)");
      if (opNew.i != 100) throw new Exception("operator++ postfix failed (opNew)");
    }
    {
      Op op = new Op(100);
      Op opNew = op--;
      if (op.i != 99) throw new Exception("operator-- postfix failed (op)");
      if (opNew.i != 100) throw new Exception("operator-- postfix failed (opNew)");
    }
    {
      Op op = new Op(100);
      Op opNew = ++op;
      if (op.i != 101) throw new Exception("operator++ prefix failed (op)");
      if (opNew.i != 101) throw new Exception("operator++ prefix failed (opNew)");
    }
    {
      Op op = new Op(100);
      Op opNew = --op;
      if (op.i != 99) throw new Exception("operator-- prefix failed (op)");
      if (opNew.i != 99) throw new Exception("operator-- prefix failed (opNew)");
    }

    // overloaded operator class
    Op k = new OpDerived(3);
    int check_k = k.IntCast();
    Assert(check_k == 6);

    // operator== handling
    {
      Op op = new Op(100);
      Op op100 = new Op(100);
      Op op101 = new Op(101);
      bool isEqual = op == op100;
      if (!isEqual) throw new Exception("operator== failed (op == op100)");
      isEqual = op100 == op;
      if (!isEqual) throw new Exception("operator== failed (op100 == op)");

      isEqual = op == op101;
      if (isEqual) throw new Exception("operator== failed (op == op101)");
      isEqual = op101 == op;
      if (isEqual) throw new Exception("operator== failed (op101 == op)");

      Op opRef = op;
      isEqual = op == opRef;
      if (!isEqual) throw new Exception("operator== failed (op == opRef)");
      isEqual = opRef == op;
      if (!isEqual) throw new Exception("operator== failed (opRef == op)");

      isEqual = op == null;
      if (isEqual) throw new Exception("operator== failed (op == null)");

      isEqual = null == op;
      if (isEqual) throw new Exception("operator== failed (null == op)");
    }
  }

  public static void Assert(bool b) {
    if (!b)
      throw new Exception("Assertion failed");
  }
}