Files
wren/test/range/to.wren
T
Bob Nystrom cf5a34025b feat: add isInclusive field to ObjRange and implement proper exclusive range iteration
Add isInclusive boolean to ObjRange struct to distinguish between inclusive (..) and exclusive (...) ranges. Update wrenNewRange signature to accept isInclusive parameter. Implement correct iteration logic for both ascending and descending ranges, handling empty exclusive ranges and floating-point iteration. Add type validation for range RHS operands. Update min/max/to properties to return raw endpoint values instead of adjusted ones. Add comprehensive test coverage for inclusive/exclusive ranges, negative ranges, empty ranges, floating-point iteration, isInclusive property, toString, and type error cases.
2014-01-20 21:20:22 +00:00

26 lines
720 B
Plaintext

// Ordered range.
IO.print((2..5).to) // expect: 5
IO.print((3..3).to) // expect: 3
IO.print((0..3).to) // expect: 3
IO.print((-5..3).to) // expect: 3
IO.print((-5..-2).to) // expect: -2
// Backwards range.
IO.print((5..2).to) // expect: 2
IO.print((3..0).to) // expect: 0
IO.print((3..-5).to) // expect: -5
IO.print((-2..-5).to) // expect: -5
// Exclusive ordered range.
IO.print((2...5).to) // expect: 5
IO.print((3...3).to) // expect: 3
IO.print((0...3).to) // expect: 3
IO.print((-5...3).to) // expect: 3
IO.print((-5...-2).to) // expect: -2
// Exclusive backwards range.
IO.print((5...2).to) // expect: 2
IO.print((3...0).to) // expect: 0
IO.print((3...-5).to) // expect: -5
IO.print((-2...-5).to) // expect: -5