def test1PassByConstRef( self ):
      """Test passing arguments by const reference"""

      tnames = [ "bool", "short", "int", "long" ]
      for i in range(len(tnames)):
         gInterpreter.LoadText(
            "bool PyROOT_Regression_TakesRef%d(const %s& arg) { return arg; }" % (i, tnames[i]) )
         self.assert_( not eval( "ROOT.PyROOT_Regression_TakesRef%d(0)" % (i,) ) )
         self.assert_( eval( "ROOT.PyROOT_Regression_TakesRef%d(1)" % (i,) ) )
      self.assertEqual( len(tnames)-1, i )
    def test1DowncastOfInterpretedClass(self):
        """Auto-downcast of interpreted class"""

        code = """namespace RG18 {
class Base {
public:
  virtual ~Base(){}
};

class Derived : public Base {
  virtual ~Derived() {}
};

Base* g() { return new Derived(); }
}"""
        gInterpreter.LoadText(code)

        self.assertEqual(type(ROOT.RG18.g()), ROOT.RG18.Derived)