puts "1..25"
x=1

puts "ok #{x} - assignment"
puts "ok #{4/2} - division"
puts "ok #{5-2} - subtraction"
puts "ok #{2*2} - multiplication"
puts "ok #{2+3} - addition"

x *= 6
puts "ok #{x} - '*=' assignment"

x += 1+1
y = x
y -= 1
puts "ok #{y} - '-=' assignment"
puts "ok #{x} - '+=' assignment"

z = 27
z /= 3

puts "ok #{z} - '/=' assignment"

puts "#{1+1==2? 'ok' : 'nok'} 10 - ternary (true)"
puts "#{1+1==3? 'nok' : 'ok'} 11 - ternary (false)"

puts "#{(false && 2)? 'nok' : 'ok'} 12 - infix &&"

xx = nil
yy = 42
puts "#{(false || 2) == 2? 'ok' : 'nok'} 13 - infix ||"
puts "#{(xx.nil? == true)? 'ok' : 'nok'} 14 - .nil? when true"
puts "#{(yy.nil? == false)? 'ok' : 'nok'} 15 - .nil? when false"

puts "ok #{2 ** 4} - exponentiation **"
puts "ok #{37 % 20} - modulus %"

puts "#{1&&false  or  1? 'ok' : 'nok'} 18 - loose 'or'"
puts "#{1||false  and  false||1? 'ok' : 'nok'} 19 - loose 'and'"

n = 22

for tst in [[20, -1, 'less than'],
            [22,  0, 'equal'],
            [24,  1, 'greater than']
           ] do
   puts "#{ (tst[0] <=> n) == tst[1]? 'ok' :'nok'} #{tst[0]} - <=> #{tst[2]}"
   puts "#{ ('x'~tst[0] cmp 'x'~n) == tst[1]? 'ok' :'nok'} #{tst[0]+1} - cmp #{tst[2]}"
end

