Skip to content

Commit 12fe2c0

Browse files
committed
Resolved confliced and removed unnecessary codes
2 parents 44c330f + 33327c5 commit 12fe2c0

File tree

9 files changed

+74
-3
lines changed

9 files changed

+74
-3
lines changed

builtin/testfile

Lines changed: 0 additions & 1 deletion
This file was deleted.

go.mod

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,3 @@ require (
44
github.com/gopherjs/gopherwasm v1.0.0 // indirect
55
github.com/peterh/liner v1.1.0
66
)
7-
8-
go 1.13

py/bool.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,16 @@ func (a Bool) M__ne__(other Object) (Object, error) {
9393
return True, nil
9494
}
9595

96+
func notEq(eq Object, err error) (Object, error) {
97+
if err != nil {
98+
return nil, err
99+
}
100+
if eq == NotImplemented {
101+
return eq, nil
102+
}
103+
return Not(eq)
104+
}
105+
96106
// Check interface is satisfied
97107
var _ I__bool__ = Bool(false)
98108
var _ I__index__ = Bool(false)

py/dict.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,9 @@ func (a StringDict) M__ne__(other Object) (Object, error) {
193193
if err != nil {
194194
return nil, err
195195
}
196+
if res == NotImplemented {
197+
return res, nil
198+
}
196199
if res == True {
197200
return False, nil
198201
}

py/set.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,9 @@ func (a *Set) M__ne__(other Object) (Object, error) {
236236
if err != nil {
237237
return nil, err
238238
}
239+
if eq == NotImplemented {
240+
return eq, nil
241+
}
239242
if eq == True {
240243
return False, nil
241244
}

py/slice.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,31 @@ func (r *Slice) GetIndices(length int) (start, stop, step, slicelength int, err
151151
return
152152
}
153153

154+
func (a *Slice) M__eq__(other Object) (Object, error) {
155+
b, ok := other.(*Slice)
156+
if !ok {
157+
return NotImplemented, nil
158+
}
159+
160+
if a.Start != b.Start {
161+
return False, nil
162+
}
163+
164+
if a.Stop != b.Stop {
165+
return False, nil
166+
}
167+
168+
if a.Step != b.Step {
169+
return False, nil
170+
}
171+
172+
return True, nil
173+
}
174+
175+
func (a *Slice) M__ne__(other Object) (Object, error) {
176+
return notEq(a.M__eq__(other))
177+
}
178+
154179
func init() {
155180
SliceType.Dict["start"] = &Property{
156181
Fget: func(self Object) (Object, error) {

py/tests/dict.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,15 @@
4141
assert a.__contains__('hello')
4242
assert not a.__contains__('world')
4343

44+
doc="__eq__, __ne__"
45+
a = {'a': 'b'}
46+
assert a.__eq__(3) != True
47+
assert a.__ne__(3) != False
48+
assert a.__ne__(3) != True
49+
assert a.__ne__(3) != False
50+
51+
assert a.__ne__({}) == True
52+
assert a.__eq__({'a': 'b'}) == True
53+
assert a.__ne__({'a': 'b'}) == False
54+
4455
doc="finished"

py/tests/set.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,4 +81,15 @@
8181
assert 4 in c
8282
assert 5 in c
8383

84+
doc="__eq__, __ne__"
85+
a = set([1,2,3])
86+
assert a.__eq__(3) != True
87+
assert a.__ne__(3) != False
88+
assert a.__ne__(3) != True
89+
assert a.__ne__(3) != False # This part should be changed in comparison with NotImplemented
90+
91+
assert a.__ne__(set()) == True
92+
assert a.__eq__({1,2,3}) == True
93+
assert a.__ne__({1,2,3}) == False
94+
8495
doc="finished"

py/tests/slice.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,15 @@
1313
assert a.stop == 10
1414
assert a.step == 1
1515

16+
assert slice(1).__eq__(slice(1))
17+
assert slice(1) != slice(2)
18+
assert slice(1) == slice(None, 1, None)
19+
assert slice(0, 0, 0) == slice(0, 0, 0)
20+
21+
assert slice(0, 0, 1) != slice(0, 0, 0)
22+
assert slice(0, 1, 0) != slice(0, 0, 0)
23+
assert slice(1, 0, 0) != slice(0, 0, 0)
24+
assert slice(0).__ne__(slice(1))
25+
assert slice(0, None, 3).__ne__(slice(0, 0, 3))
26+
1627
doc="finished"

0 commit comments

Comments
 (0)