123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- #!/usr/bin/ruby
- assert_eq(
- gather {
- var i = 4
- while (--i) { |a|
- take(a)
- }
- },
- [3,2,1]
- )
- assert_eq(
- gather {
- var i = 4
- while (--i) { |a|
- take(\a)
- }
- }.map {|x| *x },
- [3,2,1]
- )
- assert_eq(
- gather {
- for i in (1..5) {
- var x = i**2
- take(\x)
- }
- }.map {|x| *x },
- [1, 4, 9, 16, 25]
- )
- assert_eq(
- gather {
- var i = 1
- while (i <= 5) {
- var x = i**2
- take(\x)
- ++i
- }
- }.map {|x| *x },
- [1, 4, 9, 16, 25]
- )
- assert_eq(
- gather {
- var i = 1
- loop {
- break if (i > 5)
- var x = i**2
- take(\x)
- ++i
- }
- }.map {|x| *x },
- [1, 4, 9, 16, 25]
- )
- assert_eq(
- gather {
- for (var i = 1; i <= 5; ++i) {
- var x = i**2
- take(\x)
- }
- }.map {|x| *x },
- [1, 4, 9, 16, 25]
- )
- assert_eq(
- gather {
- for n in [1,2,3,4] {
- take(\n)
- }
- }.map {|x| *x },
- [1,2,3,4]
- )
- assert_eq(
- gather {
- for a,b in [[1,2],[3,4]] {
- take(\a, \b)
- }
- }.map {|x| *x },
- [1,2,3,4]
- )
- assert_eq(
- gather {
- var n = 0
- @:HERE if (true) {
- var x = n;
- take(\x)
- goto :HERE if (++n < 3)
- }
- }.map{ *_ },
- [0, 1, 2]
- )
- say "** Test passed!"
|