2 # Test various properties of classes defined in separate modules
4 puts "Testing the %import directive with templates"
13 puts "Creating some objects"
20 # Try calling some methods
21 puts "Testing some methods"
23 puts "Should see 'Base::A' ---> #{a.A}"
24 puts "Should see 'Base::B' ---> #{a.B}"
26 puts "Should see 'Foo::A' ---> #{b.A}"
27 puts "Should see 'Foo::B' ---> #{b.B}"
29 puts "Should see 'Bar::A' ---> #{c.A}"
30 puts "Should see 'Bar::B' ---> #{c.B}"
32 puts "Should see 'Spam::A' ---> #{d.A}"
33 puts "Should see 'Spam::B' ---> #{d.B}"
37 puts "\nTesting some casts\n"
41 puts "Should see 'Base::A' ---> #{x.A}"
42 puts "Should see 'Base::B' ---> #{x.B}"
45 puts "Should see 'Foo::A' ---> #{x.A}"
46 puts "Should see 'Base::B' ---> #{x.B}"
49 puts "Should see 'Bar::A' ---> #{x.A}"
50 puts "Should see 'Base::B' ---> #{x.B}"
53 puts "Should see 'Spam::A' ---> #{x.A}"
54 puts "Should see 'Base::B' ---> #{x.B}"
57 puts "Should see 'Bar::B' ---> #{x.B}"
59 puts "\nTesting some dynamic casts\n"
62 puts " Spam -> Base -> Foo : "
63 y = Foo::IntFoo.fromBase(x)
70 puts " Spam -> Base -> Bar : "
71 y = Bar::IntBar.fromBase(x)
78 puts " Spam -> Base -> Spam : "
79 y = Spam::IntSpam.fromBase(x)
86 puts " Foo -> Spam : "
87 y = Spam::IntSpam.fromBase(b)