import source from 1.3.40
[external/swig.git] / Examples / ruby / import_template / runme.rb
1 # file: runme.rb
2 # Test various properties of classes defined in separate modules
3
4 puts "Testing the %import directive with templates"
5
6 require 'base'
7 require 'foo'
8 require 'bar'
9 require 'spam'
10
11 # Create some objects
12
13 puts "Creating some objects"
14
15 a = Base::IntBase.new
16 b = Foo::IntFoo.new
17 c = Bar::IntBar.new
18 d = Spam::IntSpam.new
19
20 # Try calling some methods
21 puts "Testing some methods"
22 puts ""
23 puts "Should see 'Base::A' ---> #{a.A}"
24 puts "Should see 'Base::B' ---> #{a.B}"
25
26 puts "Should see 'Foo::A' ---> #{b.A}"
27 puts "Should see 'Foo::B' ---> #{b.B}"
28
29 puts "Should see 'Bar::A' ---> #{c.A}"
30 puts "Should see 'Bar::B' ---> #{c.B}"
31
32 puts "Should see 'Spam::A' ---> #{d.A}"
33 puts "Should see 'Spam::B' ---> #{d.B}"
34
35 # Try some casts
36
37 puts "\nTesting some casts\n"
38 puts ""
39
40 x = a.toBase
41 puts "Should see 'Base::A' ---> #{x.A}"
42 puts "Should see 'Base::B' ---> #{x.B}"
43
44 x = b.toBase
45 puts "Should see 'Foo::A' ---> #{x.A}"
46 puts "Should see 'Base::B' ---> #{x.B}"
47
48 x = c.toBase
49 puts "Should see 'Bar::A' ---> #{x.A}"
50 puts "Should see 'Base::B' ---> #{x.B}"
51
52 x = d.toBase
53 puts "Should see 'Spam::A' ---> #{x.A}"
54 puts "Should see 'Base::B' ---> #{x.B}"
55
56 x = d.toBar
57 puts "Should see 'Bar::B' ---> #{x.B}"
58
59 puts "\nTesting some dynamic casts\n"
60 x = d.toBase
61
62 puts " Spam -> Base -> Foo : "
63 y = Foo::IntFoo.fromBase(x)
64 if y != nil
65       puts "bad swig"
66 else
67       puts "good swig"
68 end
69
70 puts " Spam -> Base -> Bar : "
71 y = Bar::IntBar.fromBase(x)
72 if y != nil
73       puts "good swig"
74 else
75       puts "bad swig"
76 end
77       
78 puts " Spam -> Base -> Spam : "
79 y = Spam::IntSpam.fromBase(x)
80 if y != nil
81       puts "good swig"
82 else
83       puts "bad swig"
84 end
85
86 puts " Foo -> Spam : "
87 y = Spam::IntSpam.fromBase(b)
88 if y != nil
89       puts "bad swig"
90 else
91       puts "good swig"
92 end