# 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