41 lines
934 B
ChaiScript
41 lines
934 B
ChaiScript
load_module("test_module")
|
|
|
|
auto t0 = TestBaseType()
|
|
auto t = TestDerivedType();
|
|
|
|
assert_equal(t0.func(), 0);
|
|
assert_equal(t.func(), 1);
|
|
|
|
assert_equal(10, t0.val);
|
|
assert_equal(15, t0.const_val);
|
|
|
|
assert_equal(10, t.val);
|
|
assert_equal(15, t.const_val);
|
|
|
|
t.val = 23;
|
|
assert_equal(23, t.val)
|
|
|
|
// test_derived_factory returns a TestDerivedType contained
|
|
// in a shared_ptr<TestBaseType>. This is testing our ability
|
|
// to detect that and do the down casting for the user automatically
|
|
// at runtime
|
|
|
|
assert_equal(t.derived_only_func(), 19);
|
|
|
|
var d := derived_type_factory();
|
|
assert_equal(d.derived_only_func(), 19);
|
|
|
|
var t2 = TestMoreDerivedType();
|
|
assert_equal(t2.derived_only_func(), 19);
|
|
assert_equal(t2.base_only_func(), -9);
|
|
|
|
var md := more_derived_type_factory();
|
|
assert_equal(md.derived_only_func(), 19);
|
|
assert_equal(md.base_only_func(), -9);
|
|
|
|
assert_equal(md.func(), 1);
|
|
assert_equal(t2.func(), 1);
|
|
assert_equal(d.func(), 1);
|
|
|
|
|