li_boost_shared_ptr testcase for R

Synchronise test with Python version of testcase
This commit is contained in:
William S Fulton 2022-10-26 19:03:38 +01:00
commit 24b0e68391

View file

@ -90,16 +90,6 @@ testSuite <- function() {
testSuite_verifyCount(2, kret) testSuite_verifyCount(2, kret)
} }
{
# pass by shared_ptr pointer reference
k = Klass("me oh my");
kret = smartpointerpointerreftest(k);
val = kret$getValue()
unittest("me oh my smartpointerpointerreftest", val);
testSuite_verifyCount(2, k);
testSuite_verifyCount(2, kret);
}
# const pass by shared_ptr # const pass by shared_ptr
{ {
k = Klass("me oh my"); k = Klass("me oh my");
@ -250,47 +240,110 @@ testSuite <- function() {
} }
# #
# ###################### Derived and base class mixed ###################### # ###################### Derived class ######################
# #
# derived pass by shared_ptr
{
k = KlassDerived("me oh my")
kret = derivedsmartptrtest(k)
val = kret$getValue()
unittest("me oh my derivedsmartptrtest-Derived", val)
testSuite_verifyCount(2, k)
testSuite_verifyCount(2, kret)
}
# derived pass by shared_ptr pointer
{
k = KlassDerived("me oh my")
kret = derivedsmartptrpointertest(k)
val = kret$getValue()
unittest("me oh my derivedsmartptrpointertest-Derived", val)
testSuite_verifyCount(2, k)
testSuite_verifyCount(2, kret)
}
# derived pass by shared_ptr ref
{
k = KlassDerived("me oh my")
kret = derivedsmartptrreftest(k)
val = kret$getValue()
unittest("me oh my derivedsmartptrreftest-Derived", val)
testSuite_verifyCount(2, k)
testSuite_verifyCount(2, kret)
}
# derived pass by shared_ptr pointer ref
{
k = KlassDerived("me oh my")
kret = derivedsmartptrpointerreftest(k)
val = kret$getValue()
unittest("me oh my derivedsmartptrpointerreftest-Derived", val)
testSuite_verifyCount(2, k)
testSuite_verifyCount(2, kret)
}
# derived pass by pointer
{
k = KlassDerived("me oh my")
kret = derivedpointertest(k)
val = kret$getValue()
unittest("me oh my derivedpointertest-Derived", val)
testSuite_verifyCount(1, k)
testSuite_verifyCount(1, kret)
}
# derived pass by ref
{
k = KlassDerived("me oh my")
kret = derivedreftest(k)
val = kret$getValue()
unittest("me oh my derivedreftest-Derived", val)
testSuite_verifyCount(1, k)
testSuite_verifyCount(1, kret)
}
#
# ###################### Derived and base class mixed ######################
#
# pass by shared_ptr (mixed) # pass by shared_ptr (mixed)
{ {
k = KlassDerived("me oh my"); k = KlassDerived("me oh my")
kret = derivedsmartptrtest(k); kret = smartpointertest(k)
val = kret$getValue(); val = kret$getValue()
unittest("me oh my derivedsmartptrtest-Derived", val); unittest("me oh my smartpointertest-Derived", val)
testSuite_verifyCount(2, k); #testSuite_verifyCount(2, k)
testSuite_verifyCount(2, kret); #testSuite_verifyCount(2, kret)
} }
# pass by shared_ptr pointer (mixed) # pass by shared_ptr pointer (mixed)
{ {
k = KlassDerived("me oh my"); k = KlassDerived("me oh my")
kret = derivedsmartptrpointertest(k); kret = smartpointerpointertest(k)
val = kret$getValue(); val = kret$getValue()
unittest("me oh my derivedsmartptrpointertest-Derived", val); unittest("me oh my smartpointerpointertest-Derived", val)
testSuite_verifyCount(2, k); #testSuite_verifyCount(2, k)
testSuite_verifyCount(2, kret); #testSuite_verifyCount(2, kret)
} }
# pass by shared_ptr ref (mixed) # pass by shared_ptr reference (mixed)
{ {
k = KlassDerived("me oh my"); k = KlassDerived("me oh my")
kret = derivedsmartptrreftest(k); kret = smartpointerreftest(k)
val = kret$getValue(); val = kret$getValue()
unittest("me oh my derivedsmartptrreftest-Derived", val); unittest("me oh my smartpointerreftest-Derived", val)
testSuite_verifyCount(2, k); #testSuite_verifyCount(2, k)
testSuite_verifyCount(2, kret); #testSuite_verifyCount(2, kret)
} }
# pass by shared_ptr pointer reference (mixed) # pass by shared_ptr pointer reference (mixed)
{ {
k = KlassDerived("me oh my"); k = KlassDerived("me oh my")
kret = smartpointerpointerreftest(k); kret = smartpointerpointerreftest(k)
val = kret$getValue(); val = kret$getValue()
unittest("me oh my smartpointerpointerreftest-Derived", val); unittest("me oh my smartpointerpointerreftest-Derived", val)
#testSuite_verifyCount(2, k); # includes two extra references for upcasts in the proxy classes #testSuite_verifyCount(2, k)
#testSuite_verifyCount(2, kret); #testSuite_verifyCount(2, kret)
} }
# pass by value (mixed) # pass by value (mixed)
@ -299,38 +352,31 @@ testSuite <- function() {
kret = valuetest(k) kret = valuetest(k)
val = kret$getValue() val = kret$getValue()
unittest("me oh my valuetest", val) # note slicing unittest("me oh my valuetest", val) # note slicing
testSuite_verifyCount(2, k) #testSuite_verifyCount(1, k)
testSuite_verifyCount(1, kret) #testSuite_verifyCount(1, kret)
# --> these are the python expected counting
# testSuite_verifyCount(1, k)
# testSuite_verifyCount(1, kret)
} }
# pass by pointer (mixed) # pass by pointer (mixed)
{ {
k = KlassDerived("me oh my"); k = KlassDerived("me oh my")
kret = derivedpointertest(k); kret = pointertest(k)
val = kret$getValue(); val = kret$getValue()
unittest("me oh my derivedpointertest-Derived", val); unittest("me oh my pointertest-Derived", val)
testSuite_verifyCount(1, k); #testSuite_verifyCount(1, k)
testSuite_verifyCount(1, kret); #testSuite_verifyCount(1, kret)
} }
# pass by ref (mixed) # pass by ref (mixed)
{ {
k = KlassDerived("me oh my"); k = KlassDerived("me oh my")
kret = reftest(k); kret = reftest(k)
val = kret$getValue(); val = kret$getValue()
unittest("me oh my reftest-Derived", val); unittest("me oh my reftest-Derived", val)
testSuite_verifyCount(2, k); #testSuite_verifyCount(1, k)
testSuite_verifyCount(1, kret); #testSuite_verifyCount(1, kret)
# --> these are the python expected counting
#testSuite_verifyCount(1, k);
#testSuite_verifyCount(1, kret);
} }
# #
# ################# Overloading tests ################## # ################# Overloading tests ##################
# #
@ -369,15 +415,12 @@ testSuite <- function() {
{ {
k = Klass3rdDerived("me oh my") k = Klass3rdDerived("me oh my")
unittest(overload_rawbyval(k), "rawbyval") val = k$getValue()
unittest(overload_rawbyref(k), "rawbyref") unittest("me oh my-3rdDerived", val)
unittest(overload_rawbyptr(k), "rawbyptr") testSuite_verifyCount(1, k)
unittest(overload_rawbyptrref(k), "rawbyptrref") val = test3rdupcast(k)
unittest("me oh my-3rdDerived", val)
unittest(overload_smartbyval(k), "smartbyval") # testSuite_verifyCount(1, k)
unittest(overload_smartbyref(k), "smartbyref")
unittest(overload_smartbyptr(k), "smartbyptr")
unittest(overload_smartbyptrref(k), "smartbyptrref")
} }
# #
@ -394,7 +437,7 @@ testSuite <- function() {
unittest("smart member value", val); unittest("smart member value", val);
testSuite_verifyCount(2, k); testSuite_verifyCount(2, k);
kmember = m$SmartMemberPointer; kmember = m$SmartMemberValue;
val = kmember$getValue(); val = kmember$getValue();
unittest("smart member value", val); unittest("smart member value", val);
testSuite_verifyCount(3, kmember); testSuite_verifyCount(3, kmember);
@ -434,14 +477,14 @@ testSuite <- function() {
unittest("smart member reference", val); unittest("smart member reference", val);
testSuite_verifyCount(2, k); testSuite_verifyCount(2, k);
kmember = m$SmartMemberPointer; kmember = m$SmartMemberReference;
val = kmember$getValue(); val = kmember$getValue();
unittest("smart member reference", val); unittest("smart member reference", val);
testSuite_verifyCount(3, kmember); testSuite_verifyCount(3, kmember);
testSuite_verifyCount(3, k); testSuite_verifyCount(3, k);
# The C++ reference refers to SmartMemberValue... # The C++ reference refers to SmartMemberValue...
kmemberVal = m$SmartMemberReference; kmemberVal = m$SmartMemberValue;
val = kmember$getValue(); val = kmember$getValue();
unittest("smart member reference", val); unittest("smart member reference", val);
testSuite_verifyCount(4, kmemberVal); testSuite_verifyCount(4, kmemberVal);
@ -634,9 +677,9 @@ testSuite <- function() {
# #
{ {
pid = PairIntDouble(10, 20.2); pid = PairIntDouble(10, 20.2);
if (BaseIntDouble_baseVal1_get(pid) != 20 || BaseIntDouble_baseVal2_get(pid) != 40.4) if (pid$baseVal1 != 20 || pid$baseVal2 != 40.4)
stop("Base values wrong"); stop("Base values wrong");
if (PairIntDouble_val1_get(pid) != 10 || PairIntDouble_val2_get(pid) != 20.2) if (pid$val1 != 10 || pid$val2 != 20.2)
stop("Derived Values wrong"); stop("Derived Values wrong");
} }