| # file: runme.rb |
| # Test various properties of classes defined in separate modules |
| |
| puts "Testing the %import directive" |
| |
| require 'base' |
| require 'foo' |
| require 'bar' |
| require 'spam' |
| |
| # Create some objects |
| |
| puts "Creating some objects" |
| |
| a = Base::Base.new |
| b = Foo::Foo.new |
| c = Bar::Bar.new |
| d = Spam::Spam.new |
| |
| # Try calling some methods |
| puts "Testing some methods" |
| puts "Should see 'Base::A' ---> #{a.A}" |
| puts "Should see 'Base::B' ---> #{a.B}" |
| |
| puts "Should see 'Foo::A' ---> #{b.A}" |
| puts "Should see 'Foo::B' ---> #{b.B}" |
| |
| puts "Should see 'Bar::A' ---> #{c.A}" |
| puts "Should see 'Bar::B' ---> #{c.B}" |
| |
| puts "Should see 'Spam::A' ---> #{d.A}" |
| puts "Should see 'Spam::B' ---> #{d.B}" |
| |
| # Try some casts |
| |
| puts "\nTesting some casts\n" |
| |
| x = a.toBase |
| puts "Should see 'Base::A' ---> #{x.A}" |
| puts "Should see 'Base::B' ---> #{x.B}" |
| |
| x = b.toBase |
| puts "Should see 'Foo::A' ---> #{x.A}" |
| puts "Should see 'Base::B' ---> #{x.B}" |
| |
| x = c.toBase |
| puts "Should see 'Bar::A' ---> #{x.A}" |
| puts "Should see 'Base::B' ---> #{x.B}" |
| |
| x = d.toBase |
| puts "Should see 'Spam::A' ---> #{x.A}" |
| puts "Should see 'Base::B' ---> #{x.B}" |
| |
| x = d.toBar |
| puts "Should see 'Bar::B' ---> #{x.B}" |
| |
| puts "\nTesting some dynamic casts\n" |
| x = d.toBase |
| |
| puts " Spam -> Base -> Foo : " |
| y = Foo::Foo.fromBase(x) |
| if y != nil |
| puts "bad swig" |
| else |
| puts "good swig" |
| end |
| |
| puts " Spam -> Base -> Bar : " |
| y = Bar::Bar.fromBase(x) |
| if y != nil |
| puts "good swig" |
| else |
| puts "bad swig" |
| end |
| |
| puts " Spam -> Base -> Spam : " |
| y = Spam::Spam.fromBase(x) |
| if y != nil |
| puts "good swig" |
| else |
| puts "bad swig" |
| end |
| |
| puts " Foo -> Spam : " |
| y = Spam::Spam.fromBase(b) |
| if y != nil |
| puts "bad swig" |
| else |
| puts "good swig" |
| end |