/
niceSOFT
/
swig
Обзор
Документация
Войти
/
niceSOFT
/
swig
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Examples/test-suite/lua/cpp11_shared_ptr_upcast_runme.lua
65 строк
2 KB
Erez Geva
Remove Lua 5.0 and Lua 5.1 and Lua options
30 май 2026, 19:24
30 май 2026, 19:24
74ff929
Код
Авторство
О чём код?
require("cpp11_shared_ptr_upcast") local s = cpp11_shared_ptr_upcast -- Test single shared_ptr upcast (Derived -> Base) assert(s.derived_num1(s.Derived(7)) == 7) assert(s.base_num1(s.Derived(7)) == -1) -- Upcast works for single shared_ptr -- Test with nil assert(s.derived_num1(nil) == 999) assert(s.base_num1(nil) == 999) -- Test collections with matching types (no upcast needed) local derivedList = s.DerivedList() derivedList:push_back(s.Derived(7)) assert(s.derived_num2(derivedList) == 7) local derivedMap = s.DerivedMap() derivedMap:set(0, s.Derived(7)) assert(s.derived_num3(derivedMap) == 7) local baseList = s.BaseList() baseList:push_back(s.Base()) assert(s.base_num2(baseList) == -1) local baseMap = s.BaseMap() baseMap:set(0, s.Base()) assert(s.base_num3(baseMap) == -1) -- Test collections with nil local derivedListNil = s.DerivedList() derivedListNil:push_back(nil) assert(s.derived_num2(derivedListNil) == 999) local derivedMapNil = s.DerivedMap() derivedMapNil:set(0, nil) assert(s.derived_num3(derivedMapNil) == 999) local baseListNil = s.BaseList() baseListNil:push_back(nil) assert(s.base_num2(baseListNil) == 999) local baseMapNil = s.BaseMap() baseMapNil:set(0, nil) assert(s.base_num3(baseMapNil) == 999) -- Test overloaded functions with matching types assert(s.derived_num(s.Derived(7)) == 7) assert(s.base_num(s.Derived(7)) == -1) local derivedList2 = s.DerivedList() derivedList2:push_back(s.Derived(7)) assert(s.derived_num(derivedList2) == 7) local derivedMap2 = s.DerivedMap() derivedMap2:set(0, s.Derived(7)) assert(s.derived_num(derivedMap2) == 7) -- ptr to shared_ptr tests (simpler cases only - collections of ptr to shared_ptr not yet supported) assert(s.derived2_num1(s.Derived2(7)) == 7) assert(s.base2_num1(s.Derived2(7)) == -1) -- Upcast works for pointer to shared_ptr -- Test nil cases for ptr to shared_ptr assert(s.derived2_num1(nil) == 888) assert(s.base2_num1(nil) == 888)