Merge branch 'take_and_skip' of https://github.com/bjorn/wren into bjorn-take_and_skip

This commit is contained in:
Bob Nystrom
2017-03-15 07:15:00 -07:00
5 changed files with 155 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
class TestSequence is Sequence {
construct new() {}
iterate(iterator) {
if (iterator == null) return 1
if (iterator == 3) return false
return iterator + 1
}
iteratorValue(iterator) { iterator }
}
var test = TestSequence.new().skip(0)
System.print(test is Sequence) // expect: true
System.print(test) // expect: instance of SkipSequence
// Skipping 0 changes nothing
System.print(test.toList) // expect: [1, 2, 3]
// Skipping 1 works
System.print(test.skip(1).toList) // expect: [2, 3]
// Skipping more than length of sequence produces empty list
System.print(test.skip(4).isEmpty) // expect: true
// Skipping less than 0 changes nothing
System.print(test.skip(-10).toList) // expect: [1, 2, 3]
+28
View File
@@ -0,0 +1,28 @@
class TestSequence is Sequence {
construct new() {}
iterate(iterator) {
if (iterator == null) return 1
if (iterator == 3) return false
return iterator + 1
}
iteratorValue(iterator) { iterator }
}
var test = TestSequence.new().take(3)
System.print(test is Sequence) // expect: true
System.print(test) // expect: instance of TakeSequence
// Taking 0 produces empty list
System.print(test.take(0).isEmpty) // expect: true
// Taking 1 works
System.print(test.take(1).toList) // expect: [1]
// Taking more than length of sequence produces whole sequence
System.print(test.take(4).toList) // expect: [1, 2, 3]
// Taking less than 0 produces empty list
System.print(test.take(-10).isEmpty) // expect: true