#!/usr/bin/env ruby # # Put description here # # # # # require 'swig_assert' require 'director_wombat' include Director_wombat # Test base class functionality barObj = Bar.new # Bar#meth should return a Foo_integers instance fooIntsObj = barObj.meth raise RuntimeError unless fooIntsObj.instance_of?(Foo_integers) # Foo_integers#meth(n) should return n raise RuntimeError if fooIntsObj.meth(42) != 42 # # Now subclass Foo_integers, but override its virtual method # meth(n) so that it returns the number plus one. # class MyFooInts < Foo_integers def meth(n) n + 1 end end # # Subclass Bar and override its virtual method meth() # so that it returns a new MyFooInts instance instead of # a Foo_integers instance. # class MyBar < Bar def meth MyFooInts.new end end # # Now repeat previous tests: # # Create a MyBar instance... # barObj = MyBar.new # MyBar#meth should return a MyFooInts instance fooIntsObj = barObj.meth raise RuntimeError unless fooIntsObj.instance_of?(MyFooInts) # MyFooInts#meth(n) should return n+1 raise RuntimeError if fooIntsObj.meth(42) != 43