feat: move List.contains to Sequence.contains and add tests for List and Range

The contains method is promoted from List to the Sequence base class, making it available to all sequence types (including Range). Tests are added for both List.contains and Range.contains, covering ordered, backwards, and exclusive ranges.
This commit is contained in:
Bob Nystrom
2015-03-18 14:54:55 +00:00
5 changed files with 51 additions and 18 deletions
+6
View File
@@ -0,0 +1,6 @@
var list = [1, 2, 3, 4, "foo"]
IO.print(list.contains(2)) // expect: true
IO.print(list.contains(5)) // expect: false
IO.print(list.contains("foo")) // expect: true
IO.print(list.contains("bar")) // expect: false
+23
View File
@@ -0,0 +1,23 @@
// Ordered range.
IO.print((2..5).contains(1)) // expect: false
IO.print((2..5).contains(2)) // expect: true
IO.print((2..5).contains(5)) // expect: true
IO.print((2..5).contains(6)) // expect: false
// Backwards range.
IO.print((5..2).contains(1)) // expect: false
IO.print((5..2).contains(2)) // expect: true
IO.print((5..2).contains(5)) // expect: true
IO.print((5..2).contains(6)) // expect: false
// Exclusive ordered range.
IO.print((2...5).contains(1)) // expect: false
IO.print((2...5).contains(2)) // expect: true
IO.print((2...5).contains(5)) // expect: false
IO.print((2...5).contains(6)) // expect: false
// Exclusive backwards range.
IO.print((5...2).contains(1)) // expect: false
IO.print((5...2).contains(2)) // expect: false
IO.print((5...2).contains(5)) // expect: true
IO.print((5...2).contains(6)) // expect: false