Implemented lt, gt, le, ge

This commit is contained in:
dmitrijoseph
2019-07-14 18:47:45 -04:00
parent fb3ccadc17
commit eba282dcbe
2 changed files with 40 additions and 0 deletions

View File

@@ -33,6 +33,26 @@ assert range(1, 2, 3) == range(1, 2, 3)
assert range(1, 2, 1) == range(1, 2)
assert range(2) == range(0, 2)
#__lt__
assert range(1, 2, 3).__lt__(range(1, 2, 3)) == NotImplemented
assert range(1, 2, 1).__lt__(range(1, 2)) == NotImplemented
assert range(2).__lt__(range(0, 2)) == NotImplemented
#__gt__
assert range(1, 2, 3).__gt__(range(1, 2, 3)) == NotImplemented
assert range(1, 2, 1).__gt__(range(1, 2)) == NotImplemented
assert range(2).__gt__(range(0, 2)) == NotImplemented
#__le__
assert range(1, 2, 3).__le__(range(1, 2, 3)) == NotImplemented
assert range(1, 2, 1).__le__(range(1, 2)) == NotImplemented
assert range(2).__le__(range(0, 2)) == NotImplemented
#__ge__
assert range(1, 2, 3).__ge__(range(1, 2, 3)) == NotImplemented
assert range(1, 2, 1).__ge__(range(1, 2)) == NotImplemented
assert range(2).__ge__(range(0, 2)) == NotImplemented
# __bool__
assert bool(range(1))
assert bool(range(1, 2))

View File

@@ -245,6 +245,26 @@ impl PyRange {
}
}
#[pymethod(name = "__lt__")]
fn lt(&self, _rhs: PyObjectRef, vm: &VirtualMachine) -> PyResult {
Ok(vm.ctx.not_implemented())
}
#[pymethod(name = "__gt__")]
fn gt(&self, _rhs: PyObjectRef, vm: &VirtualMachine) -> PyResult {
Ok(vm.ctx.not_implemented())
}
#[pymethod(name = "__ge__")]
fn ge(&self, _rhs: PyObjectRef, vm:&VirtualMachine) -> PyResult {
Ok(vm.ctx.not_implemented())
}
#[pymethod(name = "__le__")]
fn le(&self, _rhs: PyObjectRef, vm: &VirtualMachine) -> PyResult {
Ok(vm.ctx.not_implemented())
}
#[pymethod(name = "index")]
fn index(&self, needle: PyObjectRef, vm: &VirtualMachine) -> PyResult<PyInt> {
if let Ok(int) = needle.downcast::<PyInt>() {