summaryrefslogtreecommitdiff
path: root/libs/python/pyste/tests/basicUT.py
diff options
context:
space:
mode:
Diffstat (limited to 'libs/python/pyste/tests/basicUT.py')
-rw-r--r--libs/python/pyste/tests/basicUT.py73
1 files changed, 73 insertions, 0 deletions
diff --git a/libs/python/pyste/tests/basicUT.py b/libs/python/pyste/tests/basicUT.py
new file mode 100644
index 000000000..9a18bcbf3
--- /dev/null
+++ b/libs/python/pyste/tests/basicUT.py
@@ -0,0 +1,73 @@
+# 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()