# Copyright Bruno da Silva de Oliveira 2003. Use, modification and 
# distribution is subject to the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at 
# http:#www.boost.org/LICENSE_1_0.txt)
import unittest
from _inherit import *

class InheritExampleTest(unittest.TestCase):

    def testIt(self):
        a = A_int()        
        b = B()
        self.assert_(isinstance(b, A_int))
        self.assert_(issubclass(B, A_int))
        a.set(10)
        self.assertEqual(a.get(), 10)        
        b.set(1)
        self.assertEqual(b.go(), 1)
        self.assertEqual(b.get(), 1)

        d = D()
        self.assert_(issubclass(D, B))
        self.assertEqual(d.x, 0)
        self.assertEqual(d.y, 0)
        self.assertEqual(d.s, 1)
        self.assertEqual(D.s, 1)
        self.assertEqual(d.f1(), 1)
        self.assertEqual(d.f2(), 2)



if __name__ == '__main__':
    unittest.main() 
