You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
1.5 KiB
82 lines
1.5 KiB
print("Now comes the language constructions tests.")
|
|
|
|
# function
|
|
def test_func():
|
|
def test_sub_func():
|
|
print("test_function")
|
|
|
|
test_sub_func()
|
|
|
|
# closure
|
|
def test_closure(msg):
|
|
|
|
def make_closure():
|
|
print(msg)
|
|
|
|
return make_closure
|
|
|
|
# exception
|
|
def test_exception():
|
|
try:
|
|
raise Exception("test_exception")
|
|
|
|
except Exception:
|
|
pass
|
|
|
|
finally:
|
|
pass
|
|
|
|
# listcomp
|
|
def test_listcomp():
|
|
print("test_listcomp", [x for x in range(3)])
|
|
|
|
# lambda
|
|
def test_lambda():
|
|
func_obj_1 = lambda a, b: a + b
|
|
print(func_obj_1(10, 20))
|
|
|
|
# import
|
|
def test_import():
|
|
from sys_settrace_subdir import trace_importme
|
|
trace_importme.dummy()
|
|
trace_importme.saysomething()
|
|
|
|
# class
|
|
class TLClass():
|
|
def method():
|
|
pass
|
|
pass
|
|
|
|
def test_class():
|
|
class TestClass:
|
|
__anynum = -9
|
|
def method(self):
|
|
print("test_class_method")
|
|
self.__anynum += 1
|
|
|
|
def prprty_getter(self):
|
|
return self.__anynum
|
|
|
|
def prprty_setter(self, what):
|
|
self.__anynum = what
|
|
|
|
prprty = property(prprty_getter, prprty_setter)
|
|
|
|
cls = TestClass()
|
|
cls.method()
|
|
print("test_class_property", cls.prprty)
|
|
cls.prprty = 12
|
|
print("test_class_property", cls.prprty)
|
|
|
|
|
|
def run_tests():
|
|
test_func()
|
|
test_closure_inst = test_closure("test_closure")
|
|
test_closure_inst()
|
|
test_exception()
|
|
test_listcomp()
|
|
test_lambda()
|
|
test_class()
|
|
test_import()
|
|
|
|
print("And it's done!")
|
|
|