Skip to content

Commit eba282d

Browse files
committed
Implemented lt, gt, le, ge
1 parent fb3ccad commit eba282d

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

tests/snippets/builtin_range.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,26 @@
3333
assert range(1, 2, 1) == range(1, 2)
3434
assert range(2) == range(0, 2)
3535

36+
#__lt__
37+
assert range(1, 2, 3).__lt__(range(1, 2, 3)) == NotImplemented
38+
assert range(1, 2, 1).__lt__(range(1, 2)) == NotImplemented
39+
assert range(2).__lt__(range(0, 2)) == NotImplemented
40+
41+
#__gt__
42+
assert range(1, 2, 3).__gt__(range(1, 2, 3)) == NotImplemented
43+
assert range(1, 2, 1).__gt__(range(1, 2)) == NotImplemented
44+
assert range(2).__gt__(range(0, 2)) == NotImplemented
45+
46+
#__le__
47+
assert range(1, 2, 3).__le__(range(1, 2, 3)) == NotImplemented
48+
assert range(1, 2, 1).__le__(range(1, 2)) == NotImplemented
49+
assert range(2).__le__(range(0, 2)) == NotImplemented
50+
51+
#__ge__
52+
assert range(1, 2, 3).__ge__(range(1, 2, 3)) == NotImplemented
53+
assert range(1, 2, 1).__ge__(range(1, 2)) == NotImplemented
54+
assert range(2).__ge__(range(0, 2)) == NotImplemented
55+
3656
# __bool__
3757
assert bool(range(1))
3858
assert bool(range(1, 2))

vm/src/obj/objrange.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,26 @@ impl PyRange {
245245
}
246246
}
247247

248+
#[pymethod(name = "__lt__")]
249+
fn lt(&self, _rhs: PyObjectRef, vm: &VirtualMachine) -> PyResult {
250+
Ok(vm.ctx.not_implemented())
251+
}
252+
253+
#[pymethod(name = "__gt__")]
254+
fn gt(&self, _rhs: PyObjectRef, vm: &VirtualMachine) -> PyResult {
255+
Ok(vm.ctx.not_implemented())
256+
}
257+
258+
#[pymethod(name = "__ge__")]
259+
fn ge(&self, _rhs: PyObjectRef, vm:&VirtualMachine) -> PyResult {
260+
Ok(vm.ctx.not_implemented())
261+
}
262+
263+
#[pymethod(name = "__le__")]
264+
fn le(&self, _rhs: PyObjectRef, vm: &VirtualMachine) -> PyResult {
265+
Ok(vm.ctx.not_implemented())
266+
}
267+
248268
#[pymethod(name = "index")]
249269
fn index(&self, needle: PyObjectRef, vm: &VirtualMachine) -> PyResult<PyInt> {
250270
if let Ok(int) = needle.downcast::<PyInt>() {

0 commit comments

Comments
 (0)