File: python_richcompare_runme.py

package info (click to toggle)
swig2.0 2.0.7-3
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 31,260 kB
  • sloc: cpp: 49,839; ansic: 25,403; java: 8,412; python: 6,579; cs: 5,773; yacc: 5,158; makefile: 5,098; sh: 4,806; ruby: 3,673; perl: 2,384; lisp: 1,741; php: 1,701; tcl: 971; ml: 619; xml: 85
file content (100 lines) | stat: -rw-r--r-- 2,986 bytes parent folder | download | duplicates (3)
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
import python_richcompare

base1 = python_richcompare.BaseClass(1)
base2 = python_richcompare.BaseClass(2)
base3 = python_richcompare.BaseClass(3)
a1 = python_richcompare.SubClassA(1)
a2 = python_richcompare.SubClassA(2)
a3 = python_richcompare.SubClassA(3)
b1 = python_richcompare.SubClassB(1)
b2 = python_richcompare.SubClassB(2)
b3 = python_richcompare.SubClassB(3)

# Check == and != within a single type
#-------------------------------------------------------------------------------

if not (base1 == base1) :
    raise RuntimeError("Object not == to itself")

if not (base1 == python_richcompare.BaseClass(1)) :
    raise RuntimeError("Object not == to an equivalent object")

if (base1 == base2) :
    raise RuntimeError("Comparing non-equivalent objects of the same type, == returned True")

if (base1 != base1) :
    raise RuntimeError("Object is != itself")

if (base1 != python_richcompare.BaseClass(1)) :
    raise RuntimeError("Object is != an equivalent object")

if not (base1 != base2) :
    raise RuntimeError("Comparing non-equivalent objects of the same type, != returned False")


# Check redefined operator== in SubClassA
#-------------------------------------------------------------------------------

if (a2 == base2) :
    raise RuntimeError("Redefined operator== in SubClassA failed")

if (a2 == b2) :
    raise RuntimeError("Redefined operator== in SubClassA failed")

if not (a1 == a2) :
    raise RuntimeError("Redefined operator== in SubClassA failed")

# Check up-casting of subclasses
#-------------------------------------------------------------------------------

if (base2 != a2) :
    raise RuntimeError("Comparing equivalent base and subclass instances, != returned True")

if (a2 == base2) :
    raise RuntimeError("Comparing non-equivalent base and subclass instances, == returned True")

if (a1 == b1) :
    raise RuntimeError("Comparing equivalent instances of different subclasses, == returned True")

if (b1 == a1) :
    raise RuntimeError("Comparing equivalent instances of different subclasses, == returned True")
    
# Check inequalities
#-------------------------------------------------------------------------------

if (a2 > b2) :
    raise RuntimeError("operator> failed")

if (a2 < b2) :
    raise RuntimeError("operator< failed")

if not (a2 >= b2) :
    raise RuntimeError("operator>= failed")

if not (a2 <= b2) :
    raise RuntimeError("operator<= failed")

# Check inequalities used for ordering
#-------------------------------------------------------------------------------

x = sorted([a2, a3, a1])

if not (x[0] is a1) :
    raise RuntimeError("Ordering failed")

if not (x[1] is a2) :
    raise RuntimeError("Ordering failed")

if not (x[2] is a3) :
    raise RuntimeError("Ordering failed")

x = sorted([base2, a3, b1])

if not (x[0] is b1) :
    raise RuntimeError("Ordering failed")

if not (x[1] is base2) :
    raise RuntimeError("Ordering failed")

if not (x[2] is a3) :
    raise RuntimeError("Ordering failed")