summaryrefslogtreecommitdiff
path: root/Examples/test-suite/ruby/std_containers_runme.rb
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2009-08-18 20:56:02 +0000
committerLorry <lorry@roadtrain.codethink.co.uk>2012-09-25 16:59:08 +0000
commit9f8a09ed743cedd9547bf0661d518647966ab114 (patch)
tree9c7803d3b27a8ec22e91792ac7f7932efa128b20 /Examples/test-suite/ruby/std_containers_runme.rb
downloadswig-tarball-master.tar.gz
Imported from /srv/lorry/lorry-area/swig-tarball/swig-1.3.40.tar.gz.HEADswig-1.3.40master
Diffstat (limited to 'Examples/test-suite/ruby/std_containers_runme.rb')
-rwxr-xr-xExamples/test-suite/ruby/std_containers_runme.rb119
1 files changed, 119 insertions, 0 deletions
diff --git a/Examples/test-suite/ruby/std_containers_runme.rb b/Examples/test-suite/ruby/std_containers_runme.rb
new file mode 100755
index 0000000..73d4432
--- /dev/null
+++ b/Examples/test-suite/ruby/std_containers_runme.rb
@@ -0,0 +1,119 @@
+#!/usr/bin/env ruby
+#
+# Standard containers test suite. Tests:
+# std::complex, std::vector, std::set and std::map,
+# and IN/OUT functions for them.
+#
+#
+#
+#
+#
+
+require 'swig_assert'
+require 'std_containers'
+include Std_containers
+
+swig_assert_each_line(<<'EOF', binding)
+
+cube = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
+
+icube = cident(cube)
+icube.each_index { |i| swig_assert_equal("cube[#{i}]","icube[#{i}]", binding, 'cident') }
+
+
+p = [1,2]
+p == pident(p)
+
+v = [1,2,3,4,5,6]
+iv = vident(v)
+iv.each_index { |i| swig_assert_equal("iv[#{i}]","v[#{i}]", binding, 'vident') }
+
+
+
+iv = videntu(v)
+iv.each_index { |i| swig_assert_equal("iv[#{i}]","v[#{i}]", binding, 'videntu') }
+
+
+vu = Vector_ui.new(v)
+vu[2] == videntu(vu)[2]
+
+v[0,3][1] == vu[0,3][1]
+
+m = [[1,2,3],[2,3],[3,4]]
+im = midenti(m)
+
+0.upto(m.size-1){ |i| 0.upto(m[i].size-1) { |j| swig_assert_equal("m[#{i}][#{j}]","im[#{i}][#{j}]", binding, 'getslice') } }
+
+
+m = [[1,0,1],[1,1],[1,1]]
+im = midentb(m)
+
+0.upto(m.size-1){ |i| 0.upto(m[i].size-1) { |j| swig_assert_equal("(m[#{i}][#{j}]==1)","im[#{i}][#{j}]", binding, 'getslice') } }
+
+mi = Imatrix.new(m)
+mc = Cmatrix.new(m)
+mi[0][0] == mc[0][0] # or bad matrix
+
+map ={}
+map['hello'] = 1
+map['hi'] = 2
+map['3'] = 2
+
+imap = Std_containers.mapident(map)
+map.each_key { |k| swig_assert_equal("map['#{k}']", "imap['#{k}']", binding) }
+
+mapc ={}
+c1 = C.new
+c2 = C.new
+mapc[1] = c1
+mapc[2] = c2
+
+mapidentc(mapc)
+
+vi = Vector_i.new([2,2,3,4])
+v1 = vi.dup
+v1.class == vi.class
+v1 != vi
+v1.object_id != vi.object_id
+
+v = [1,2]
+v1 = v_inout(vi)
+vi[1] == v1[1]
+# vi.class == v1.class # only if SWIG_RUBY_EXTRA_NATIVE_CONTAINERS was set
+
+v1,v2 = [[1,2],[3,4]]
+v1,v2 = v_inout2(v1,v2)
+v2 == [1,2]
+v1 == [3,4]
+
+a1 = A.new(1)
+a2 = A.new(2)
+
+p1 = [1,a1]
+p2 = [2,a2]
+v = [p1,p2]
+v2 = pia_vident(v)
+
+
+
+# v2[0][1].a
+# v2[1][1].a
+
+# v3 = Std_containers.vector_piA(v2)
+
+# v3[0][1].a
+# v3[1][1].a
+
+
+
+
+s = Set_i.new
+s.push(1)
+s.push(2)
+s.push(3)
+j = 1
+s.each { |i| swig_assert_equal("#{i}","#{j}", binding, "for s[#{i}]"); j += 1 }
+
+
+EOF
+