PageRenderTime 42ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/Examples/test-suite/ruby/li_std_vector_runme.rb

#
Ruby | 122 lines | 91 code | 22 blank | 9 comment | 10 complexity | 88562f3d72929829f953040e2f5b92ee MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. #!/usr/bin/env ruby
  2. #
  3. # Put description here
  4. #
  5. #
  6. #
  7. #
  8. #
  9. require 'swig_assert'
  10. require 'li_std_vector'
  11. include Li_std_vector
  12. iv = IntVector.new(4)
  13. swig_assert( "iv.respond_to? :each", binding )
  14. begin
  15. iv.each
  16. swig_assert( false, nil, "iv.each worked with no block!")
  17. rescue ArgumentError
  18. end
  19. swig_assert_each_line(<<'EOF', binding)
  20. iv.respond_to?(:each) == true
  21. iv.respond_to?(:each_with_index) == true
  22. EOF
  23. iv.each_with_index { |e,i|
  24. swig_assert("#{e} == 0", binding, "for iv[#{i}] == 0")
  25. }
  26. 0.upto(3) { |i| iv[i] = i }
  27. { "iv[-1]" => 3,
  28. "iv.slice(0,2).to_s" => "01",
  29. "iv.slice(1,2).to_s" => "12",
  30. "iv[0,-2]" => nil,
  31. "iv[0,3].to_s" => "012",
  32. "iv[0,10].to_s" => "012",
  33. "iv[1..2].to_s" => '12',
  34. "iv[1..3].to_s" => '123',
  35. "iv[1..4].to_s" => '123',
  36. "iv[1..-2].to_s" => '12',
  37. "iv[2..-3]" => nil,
  38. }.each do |k,v|
  39. swig_assert( "#{k} == #{v.inspect}", binding )
  40. end
  41. swig_assert_each_line(<<'EOF', binding)
  42. iv << 5
  43. iv.push 5
  44. iv.pop == 5
  45. iv.unshift(7)
  46. iv.shift == 7
  47. iv.unshift(7, 3)
  48. iv.insert(1,5)
  49. iv.insert(0, 3)
  50. iv.unshift(2,3,4)
  51. x = average(iv)
  52. y = average([1, 2, 3, 4])
  53. half([10, 10.5, 11, 11.5])
  54. EOF
  55. dv = DoubleVector.new(10)
  56. swig_assert( "dv.respond_to? :each_with_index", binding )
  57. dv.each_with_index { |e,i| swig_assert_equal("dv[#{i}]", 0.0, binding) }
  58. 0.upto(9) { |i| dv[i] = i/2.0 }
  59. { "dv[-1]" => 4.5,
  60. "dv.slice(0,2).to_s" => "0.00.5",
  61. "dv[0,-2]" => nil,
  62. "dv[0,3].to_s" => "0.00.51.0",
  63. "dv[3,3].to_s" => "1.52.02.5",
  64. }.each do |k,v|
  65. swig_assert_equal( k, v.inspect, binding )
  66. end
  67. swig_assert_each_line(<<'EOF', binding)
  68. dv.delete_at(2)
  69. dv.delete_if { |x| x == 2.0 }
  70. dv.include? 3.0
  71. dv.find {|x| x == 3.0 }
  72. dv.kind_of? DoubleVector
  73. halved = []
  74. halved = dv.map { |x| x / 2 }
  75. halve_in_place(dv)
  76. halved.to_a == dv.to_a
  77. sv = StructVector.new
  78. sv << Li_std_vector::Struct.new
  79. sv[0].class == Li_std_vector::Struct
  80. sv[1] = Li_std_vector::Struct.new
  81. EOF
  82. bv = BoolVector.new(2)
  83. [true, false, true, true].each { |i| bv.push(i) }
  84. 0.upto(bv.size-1) { |i| bv[i] = !bv[i] }
  85. bv_check = [true, true, false, true, false, false]
  86. for i in 0..bv.size-1 do
  87. swig_assert(bv_check[i] == bv[i], binding, "bv[#{i}]")
  88. end
  89. swig_assert_each_line(<<'EOF', binding)
  90. lv = LanguageVector.new
  91. lv << 1
  92. lv << [1,2]
  93. lv << 'asd'
  94. lv[0], lv[1] = lv[1], lv[0]
  95. EOF
  96. # this should assert
  97. begin
  98. lv = LanguageVector.new('crapola')
  99. rescue
  100. end