mirror of https://gitee.com/bigwinds/arangodb
74 lines
2.3 KiB
Python
74 lines
2.3 KiB
Python
# 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 _basic import *
|
|
|
|
class BasicExampleTest(unittest.TestCase):
|
|
|
|
def testIt(self):
|
|
|
|
# test virtual functions
|
|
class D(C):
|
|
def f(self, x=10):
|
|
return x+1
|
|
|
|
d = D()
|
|
c = C()
|
|
|
|
self.assertEqual(c.f(), 20)
|
|
self.assertEqual(c.f(3), 6)
|
|
self.assertEqual(d.f(), 11)
|
|
self.assertEqual(d.f(3), 4)
|
|
self.assertEqual(call_f(c), 20)
|
|
self.assertEqual(call_f(c, 4), 8)
|
|
self.assertEqual(call_f(d), 11)
|
|
self.assertEqual(call_f(d, 3), 4)
|
|
|
|
# test data members
|
|
def testValue(value):
|
|
self.assertEqual(c.value, value)
|
|
self.assertEqual(d.value, value)
|
|
self.assertEqual(get_value(c), value)
|
|
self.assertEqual(get_value(d), value)
|
|
testValue(1)
|
|
c.value = 30
|
|
d.value = 30
|
|
testValue(30)
|
|
self.assertEqual(c.const_value, 0)
|
|
self.assertEqual(d.const_value, 0)
|
|
def set_const_value():
|
|
c.const_value = 12
|
|
self.assertRaises(AttributeError, set_const_value)
|
|
|
|
# test static data-members
|
|
def testStatic(value):
|
|
self.assertEqual(C.static_value, value)
|
|
self.assertEqual(c.static_value, value)
|
|
self.assertEqual(D.static_value, value)
|
|
self.assertEqual(d.static_value, value)
|
|
self.assertEqual(get_static(), value)
|
|
testStatic(3)
|
|
C.static_value = 10
|
|
testStatic(10)
|
|
self.assertEqual(C.const_static_value, 100)
|
|
def set_const_static():
|
|
C.const_static_value = 1
|
|
self.assertRaises(AttributeError, set_const_static)
|
|
|
|
# test static function
|
|
def test_mul(result, *args):
|
|
self.assertEqual(C.mul(*args), result)
|
|
self.assertEqual(c.mul(*args), result)
|
|
test_mul(16, 8, 2)
|
|
test_mul(6.0, 2.0, 3.0)
|
|
self.assertEqual(C.square(), 4)
|
|
self.assertEqual(c.square(), 4)
|
|
self.assertEqual(C.square(3), 9)
|
|
self.assertEqual(c.square(3), 9)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|